html - ABBR HTML 标记的标题和内容中的不同语言

标签 html semantic-markup lang abbr

假设我正在用 HTML 写一篇文章。这篇文章的语言是瑞典语,所以我有<html lang="sv"> .现在我想在以下文本中正确标记缩写:

HTML kan användas till mycket.

为此,我先做

<abbr title="HyperText Markup Language">HTML</abbr> kan användas till mycket.

然而,仅此还不够好,因为 title 的语言属性是瑞典语 ( sv )。这除了是一个理论问题外,还会使屏幕阅读器以一种非常尴尬的方式读出标题。为了解决这个问题,我可以做

<abbr title="HyperText Markup Language" lang="en">HTML</abbr> kan användas
  till mycket.

不过,情况更糟,因为现在缩写“HTML”将以英语而不是瑞典语阅读[因此从瑞典语的角度来看,它听起来像“ejtsch-ti-emm-ell”而不是“hå-te-emm-ell"]。

因此,abbr 的缩写或文本内容节点,应该是瑞典语,但是 title属性应该是英文的。标记它的首选(HTML5)方式是什么?是吗

<abbr title="HyperText Markup Language" lang="en">
  <span lang="sv">HTML</span>
</abbr> kan användas till mycket.

?

最佳答案

您的结论是正确的:在 HTML 的语言标记中,您不能将元素的内容指示为使用其属性值以外的语言,因为 lang attribute设置他们两个。解决方法是您找到的解决方法:对内容使用内部标记。 HTML 4 和 HTML5 之间没有区别。

但是,这是一个理论性很强的问题。

首先,the abbr markup is almost useless在实践中。缩略语应在需要时在正常文本内容中进行解释,而不是在属性中。语音浏览器可能有选择地读取title属性值,但在正常模式下,它们会忽略它们——使用语音浏览器的人更喜欢快速阅读,并且通常习惯于相当高的语速,并且拼写缩写会打扰这一点。

其次,像“HTML”这样的“缩写词”(这实际上是一个合适的名称,而不是其他任何东西)应该很少在演讲中拼写出来。你不会想听到这样的演讲:“超文本标记语言的新版本是超文本标记语言五,它对超文本标记语言四有许多扩展。”

第三,语言标记在很大程度上是只写的。在大多数情况下,它只是被忽略了。谷歌不在乎。浏览器可能会使用它来决定要使用的默认字体,但大多数页面都指定了自己的字体,因此默认值无关紧要。一些语音浏览器可能会从 lang 属性中识别出一些语言,但大多数不能:它们根据用户选择的语言规则来阅读内容。那些使用语言标记的人可能会区分英国英语和美国英语,因此如果您仍然认为语言标记相关,请考虑在这种情况下使用 lang="en-GB"。 (我假设大多数说瑞典语的人会发现 Received 发音比标准美语更容易理解和自然,但我可能错了。)

关于html - ABBR HTML 标记的标题和内容中的不同语言,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17946519/

相关文章:

html - 有两个跨度在一个跨度旁边排列吗?

ruby - 解析 RDFa、微数据等的最佳方式是什么,使用统一的模式/词汇(例如 schema.org)存储和显示信息

html - 哪个语言属性是正确的?

jquery - 如何为页面的不同语言设置不同的CSS文件?

Java - 空指针异常错误

javascript - 用户在输入标签中写入后,如何立即将用户英文号码更改为波斯语/阿拉伯语?

javascript - 将增量值分配给 knockout 中动态生成的复选框

html - 可以将 id/class 添加到 <link> 标签吗?

html - 哪个语义 HTML 标记用于显示旁注和警告?

html - 转义 h 大纲