假设我正在用 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/