HTML5属性xmlns,lang,xml:lang

时间:2010-12-01 00:30:49

标签: xml html5 xml-namespaces

我不理解开场<html>标记的HTML5 specifications for the lang and xml:lang attributes。向上滚动一点,我知道xmlns是一个“护身符”(没有效果),但是langxml:lang呢?他们应该被使用吗?如果是这样,他们应该设置什么?

3 个答案:

答案 0 :(得分:36)

我见过和听过的一切都表明你应该坚持

<!DOCTYPE html>
<html>
  <head>
    <meta charset='UTF-8'>

(或者你真正想要的任何字符集)。如果您想要与该页面关联的语言,可以使用<html>标记上的“lang”属性。

由于HTML5 不是 XML,实际上,我个人会觉得使用任何xml:命名空间都很奇怪。

答案 1 :(得分:17)

文本/ html序列化中的xml:lang就是允许作者编写多语言文档 - 有效XHTML5和有效HTML5的文档。

在HTML中(与XHTML相反),xml:lang根本不是XML命名空间中的属性,它是null命名空间中名为xml:lang的属性。即冒号根本没有魔法属性,它只是属性名称中的另一个角色,就像任何其他角色一样。


回答您最初关于en-US-x-hixie的问题:

en-US-x-hixieen-US(即美国英语)加上私人使用子标签-x-hixie,意为美国英语的变体,由HTML5的编辑Ian Hickson编写。

私人使用子标签在RFC中定义:5646,BCP 47 http://www.ietf.org/rfc/bcp/bcp47.txt  第2.2.7. Private Use Subtags部分

答案 2 :(得分:0)

对于使用屏幕阅读器的用户来说,lang属性在html文档上有很大的不同。 因此,考虑到你肯定会想要使用它。 这段视频是最好的论据:https://youtu.be/0uzxu9dQnuU&#34; lang属性对JAWS语音的影响&#34;。它显示了屏幕阅读器如何发出带有西班牙语,法语或德语发音的英语文本(这很难理解),因为每次都将lang attr设置为这些语言。

同时检查:https://www.w3.org/International/questions/qa-lang-why.en提到的一些好理由是:

  • 样式(例如,不同语言的不同字体)
  • 拼写和语法检查员
  • 翻译工具
  • 搜索结果(页面内部标记可用于根据用户的语言偏好提高质量)