20

我想知道使用“lang”属性有什么意义,它与使用元“Content-Language”标签有何不同?

考虑以下代码:

<html lang="en">
    <head>
        <meta http-equiv="Content-Language" content="en-US">
    </head>...

我的假设是浏览器正在读取元标记的值,但 DOM 与“lang”属性有关。它是否正确?有什么我不知道的细微差别吗?

4

3 回答 3

17

lang 属性(在 HTML 元素上)指定文档的语言(除非被另一个可以更改文档部分语言的 lang 属性覆盖)。

Content-Language HTTP 标头指定目标受众的语言。这与文档实际编写的语言不同。例如,法语课程的一部分可能包含用法语编写的页面,但 Content-Language 将是en,因为它是为学习法语的英语人士设计的。

规格

Content-Language entity-header 字段描述了封闭实体的目标受众的自然语言。请注意,这可能不等同于实体主体中使用的所有语言。

Meta HTTP-equiv 是穷人的 HTTP 标头。它具有真正 HTTP 标头的所有含义,但较少尊重(和支持)。

根据经验,Content-Language 对搜索引擎更感兴趣,而 lang 属性对屏幕阅读器更感兴趣。

于 2010-12-14T06:50:53.143 回答
11

HTML5 更新meta http-equiv="Content-Language" 已过时,该lang属性可用于所有元素

于 2014-02-01T12:17:58.787 回答
3

它们的含义相同——设置相关内容的语言——但是lang属性具有更高的优先级。请参阅8.1.2 语言代码的继承。它们处理不同的用例——lang属性可以<i lang=la>exempla gratis</i>在单个元素上设置,而Content-Language标题可以由服务器全局配置以应用于整个文档集。

您的示例显示了设置元素语言的两种等效方法html,但是由于lang属性优先,因此值将是"en"和非"en-US"

于 2010-12-14T06:40:29.790 回答