假设我正在用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'将在Enligsh而不是瑞典语中阅读[所以从瑞典的角度来看,它听起来像“ejtsch-ti-emm-ell”而不是“ HA-TE-EMM-ELL“]。
因此,abbr
节点的缩写或文本内容应为瑞典语,但title
属性应为英语。标记这个的首选(HTML5)方式是什么?是吗
<abbr title="HyperText Markup Language" lang="en">
<span lang="sv">HTML</span>
</abbr> kan användas till mycket.
?
答案 0 :(得分:2)
您的结论是正确的:在HTML中的语言标记中,您不能将元素的内容指定为其属性值以外的语言,因为lang
attribute设置了它们。解决方法是您找到的解决方法:对内容使用内部标记。 HTML 4和HTML5之间没有区别。
然而,这是一个非常理论化的问题。
首先,the abbr
markup is almost useless在实践中。必要时,应在正常文本内容中而不是在属性中解释缩写。语音浏览器可能可选地读取title
属性值,但在正常模式下,他们会忽略它们 - 使用语音浏览器的人更喜欢快速阅读,并且通常习惯于相当高的语速,并拼写出缩写词会打扰这个。
其次,“缩写”如“HTML”(实际上是一个正确的名称而不是其他任何东西)应该很少在语音中拼写出来。您不希望听到类似“超文本标记语言的新版本是超文本标记语言五,其中有超文本标记语言四的许多扩展。”
第三,语言标记主要是只写的。在大多数情况下,它只是被忽略了。谷歌并不在乎。浏览器可以使用它来决定要使用的默认字体,但大多数页面都指定了自己的字体,因此默认值无关紧要。某些语音浏览器可能会识别lang
属性中的一些语言,但大多数语言浏览器不会识别:它们通过用户选择的语言规则读取内容。那些使用语言标记的人可以区分英国和美国英语,所以如果您仍然认为语言标记是相关的,请考虑在此上下文中使用lang="en-GB"
。 (我假设大多数讲瑞典语的人会发现接收发音比标准美国人更容易理解和自然,但我可能错了。)