Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/76.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ionic-framework/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
ABBR HTML标记的标题和内容使用不同的语言_Html_Semantic Markup_Lang_Abbr - Fatal编程技术网

ABBR HTML标记的标题和内容使用不同的语言

ABBR HTML标记的标题和内容使用不同的语言,html,semantic-markup,lang,abbr,Html,Semantic Markup,Lang,Abbr,假设我正在用HTML写一篇文章。这篇文章的语言是瑞典语,所以我有。现在我想在以下文本中正确标记缩写: HTML kan användas till mycket. 为此,我首先做 <abbr title="HyperText Markup Language">HTML</abbr> kan användas till mycket. 但更糟糕的是,因为现在缩略语“HTML”将用英语而不是瑞典语阅读[因此从瑞典语的角度来看,它听起来像“ejtsch ti emm ell

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

HTML kan användas till mycket.
为此,我首先做

<abbr title="HyperText Markup Language">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
直到麦科特。

?

您的结论是正确的:在HTML语言标记中,您不能将元素的内容指示为除属性值之外的其他语言,因为属性值同时设置了这两种语言。您已经找到了解决方法:对内容使用内部标记。HTML4和HTML5之间没有区别

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

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

第二,像“HTML”这样的“缩写”(实际上是一个专有名称,而不是其他任何名称)不应该在演讲中拼写出来。你不想听到“超文本标记语言的新版本是超文本标记语言5,它对超文本标记语言4有很多扩展。”


第三,语言标记在很大程度上是只写的。在大多数情况下,它只是被忽略。谷歌并不在乎。浏览器可以使用它来决定要使用的默认字体,但是大多数页面都指定自己的字体,所以默认字体并不重要。一些语音浏览器可能会从
lang
属性中识别一些语言,但大多数浏览器不会:它们根据用户选择的语言规则读取内容。使用语言标记的人可以区分英式英语和美式英语,所以如果你仍然认为语言标记是相关的,那么在这一上下文中考虑使用<代码> LAN=“EN GB”< /代码>。(我假设大多数讲瑞典语的人会发现他们所接受的发音比标准的美国人更容易理解和自然,但我可能错了。)

如果你想这样做,那就一定要使用它。(我没有瑞典文本阅读器,所以我无法检查它是否正常工作!)李斯特先生:我根本没有任何屏幕阅读器来测试。。。不,相反<代码>首字母缩略词已过时;今天所有的缩略语都使用
abbr
(我只是从上到下阅读了HTML5规范)。顺便说一句,这里有将近200000个关于HTML的问题,所以我认为你说得对。哦,对不起,这个缩略语。脑屁!谢谢你的回答,还有+1。我只想补充一件事:我相信标记缩写不仅仅是,甚至可能不是主要的,为了屏幕阅读器的利益。在我看来,它可能对不熟悉术语的人非常有用(如果页面主要针对熟悉它的人),尤其是在缩写和拼写文本之间没有双射的情况下。例如,“CAD”代表“冠心病”还是“计算机辅助设计”?如果文本的目标是精通计算机的人或医学专业人士,您可能不会拼写它。此外,即使您(基本上)知道缩写代表什么,您可能希望检查文本的精确拼写,在浏览器中,
title
属性的实现很糟糕(微小的文本消失了等等),作者越来越多地使用“CSS工具提示”(例如,使用一个最初隐藏的元素,但当鼠标移到某个元素上时变为可见)。这样的方法没有这里讨论的语言标记问题,因为文本内容不出现在属性中,而是作为元素内容出现。我同意当前实现的问题。但是,如果您使用隐藏的
div
,您将失去语义(除非您做了一些复杂的事情来重新获得它)。另一种解决方案是仍然使用
title
和类似
abbr[title]:hover:after{content:attr(title);border:1px纯黑;padding;2px}
(但最好更好),但我是“KISS”原则的忠实粉丝。
<abbr title="HyperText Markup Language" lang="en">
  <span lang="sv">HTML</span>
</abbr> kan användas till mycket.