6

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

?

4

1 回答 1

2

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

然而,这是一个非常理论化的问题。

首先,标记abbr在实践中几乎毫无用处。需要时,应在普通文本内容中而不是在属性中解释缩写词。语音浏览器可以选择性地读取title属性值,但在正常模式下,它们会忽略它们——使用语音浏览器的人更喜欢快速阅读,并且通常习惯于相当高的语速,拼写缩写会干扰这一点。

其次,像“HTML”这样的“缩写”(它实际上是一个专有名称,而不是其他任何东西)应该很少在语音中拼写出来。你不会想听到像“新版超文本标记语言是超文本标记语言五,它对超文本标记语言四有很多扩展。”之类的话。</p>

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

于 2013-07-30T13:10:07.817 回答