And*_*and 6 html html5 semantic-markup abbr lang
假设我正在用HTML写一篇文章.这篇文章的语言是瑞典语,所以我有<html lang="sv">.现在我想在以下文本中正确标记缩写:
HTML kan användas till mycket.
Run Code Online (Sandbox Code Playgroud)
为此,我先做
<abbr title="HyperText Markup Language">HTML</abbr> kan användas till mycket.
Run Code Online (Sandbox Code Playgroud)
然而,仅此一点还不够好,因为该title属性的语言是Swedish(sv).除了是一个理论问题,这将使屏幕阅读器以极其尴尬的方式发布标题.为了解决这个问题,我能做到
<abbr title="HyperText Markup Language" lang="en">HTML</abbr> kan användas
till mycket.
Run Code Online (Sandbox Code Playgroud)
但更糟糕的是,因为现在缩写'HTML'将在Enligsh中读取而不是瑞典语[因此从瑞典的角度来看,它听起来像"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.
Run Code Online (Sandbox Code Playgroud)
?
您的结论是正确的:在 HTML 中的语言标记中,您不能将元素的内容指示为其属性值以外的语言,因为属性lang设置了这两种语言。解决方法就是您找到的方法:对内容使用内部标记。HTML 4 和 HTML5 之间没有\xe2\x80\x99s 区别。
然而,这是一个非常理论化的问题。
\n\n首先,标记在实践中abbr几乎没有用处。必要时,应在普通文本内容中而不是在属性中对缩写进行解释。语音浏览器可以选择读取title属性值,但在正常模式下,它们会忽略它们 \xe2\x80\x93 使用语音浏览器的人更喜欢快速阅读,并且通常习惯于相当高的语速,而拼写出缩写会干扰这一点。
其次,像 \xe2\x80\x9cabbreviations\xe2\x80\x9d 这样的 \xe2\x80\x9cHTML\xe2\x80\x9d (实际上是一个专有名称而不是其他名称)应该很少在语音中拼写出来。你不会\xe2\x80\x99想要听到像\xe2\x80\x9c这样的语音。超文本标记语言的新版本是超文本标记语言五,它对超文本标记语言四有许多扩展。\xe2\x80\x9d
\n\n第三,语言标记主要是只写的。在大多数情况下,它只是被忽略。谷歌不在乎。浏览器可以使用它来决定使用的默认字体,但大多数页面都指定自己的字体,因此默认值 don\xe2\x80\x99 并不重要。某些语音浏览器可能会从属性中识别几种语言lang,但大多数都不会\xe2\x80\x99t:它们按照用户选择的语言的规则读取内容。使用语言标记的人可能会区分英国英语和美国英语,因此如果您仍然认为语言标记相关,请考虑lang="en-GB"在这种情况下使用。(我\xe2\x80\x99m 假设大多数瑞典语人士会发现标准发音比标准美式更容易理解和自然,但我可能是错的。)