我不明白开放的HTML5 specifications for the lang
and xml:lang
attributes标签的<html>
。滚动了一下,我明白xmlns
是一个“护身符”(没有效果),但lang
和xml:lang
怎么样?他们应该被使用吗?如果是这样,他们应该设置什么?
我所看到和听到的一切都表明你应该坚持下去
<!DOCTYPE html>
<html>
<head>
<meta charset='UTF-8'>
(或者你真正想要的任何字符集)。如果您想要与页面关联的语言,可以使用<html>
标记上的“lang”属性。
由于HTML5不是XML,实际上,我个人会觉得使用任何xml:
命名空间的东西都很奇怪。
文本/ html序列化中的xml:lang就是允许作者编写多语言文档 - 有效XHTML5和有效HTML5的文档。
在HTML(而不是XHTML)中,xml:lang根本不是XML命名空间中的属性,它是null命名空间中名为xml:lang
的属性。即冒号根本没有魔法属性,它只是属性名称中的另一个角色,就像任何其他角色一样。
要回答你最初关于en-US-x-hixie
的问题:
en-US-x-hixie
是en-US
(即美国英语)加上私人使用子标签-x-hixie
,意思是美国英语的变体,由HTML5的编辑Ian Hickson编写。
私有使用子标签在RFC中定义:5646,BCP 47 http://www.ietf.org/rfc/bcp/bcp47.txt Section 2.2.7. Private Use Subtags
对于使用屏幕阅读器的用户来说,lang属性在html文档上有很大的不同。因此,考虑到你肯定会想要使用它。这段视频是最好的论据:https://youtu.be/0uzxu9dQnuU“lang属性对JAWS演讲的影响”。它显示了屏幕阅读器如何发出带有西班牙语,法语或德语发音的英语文本(这很难理解),因为每次都将lang attr设置为这些语言。
另外检查:https://www.w3.org/International/questions/qa-lang-why.en提到的一些很好的理由是: