下面显示的 2 行之间有什么区别?:
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-GB">
<meta http-equiv="content-language" content="en-GB" />
如果我没有元标记,会有什么后果?
元一会影响屏幕阅读器而顶部不影响?我对他们到底做了什么感到有点困惑。
提前感谢您的帮助
最好的祝福
跳过。
下面显示的 2 行之间有什么区别?:
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-GB">
<meta http-equiv="content-language" content="en-GB" />
如果我没有元标记,会有什么后果?
元一会影响屏幕阅读器而顶部不影响?我对他们到底做了什么感到有点困惑。
提前感谢您的帮助
最好的祝福
跳过。
Dive Into Accessibility 的识别您的语言页面建议添加尽可能多的屏幕阅读器来处理尽可能多的屏幕阅读器,具体取决于您的文档类型:
如果您使用的是 HTML 4 的任何变体,请将您的标签更改为此(如果不是英语,请使用您自己的语言代码):
<html lang="en">
如果您使用的是 XHTML 1.0 的任何变体,请将您的标签更改为此(在两个地方都使用您的语言代码):
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
如果您使用的是 XHTML 1.1,请将您的标签更改为此(再次插入您自己的语言代码):
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
同一篇文章还引用了ISO 639.2来确定 xml:lang 的值,尽管 XML 规范引用了一个单独的文档RFC4646 Best Current Practice - Tags For Identification Languages,这似乎表明您的“en-GB”值已验证。
Google 的Web Authoring Statistics (2005) 对此有以下说法:
接下来是 Content-Language 值(用于 http-equiv 属性)。几乎和在 html 元素上指定 lang 属性一样多的人使用它。在当前的 HTML5 规范中,http-equiv 属性只允许用于设置字符编码的一种情况,如上图所示,它不能真正被删除。但是,至少有一个浏览器支持 http-equiv="Content-Language",而且正如我们在此处看到的,它被广泛使用——也许 http-equiv 毕竟不应该被删除。
此外,webproworld 上的一个帖子讨论了使用 http-equiv=content-language 和 name=language 来描述文档语言之间的区别,并暗示两者都是必要的。
最后,请参阅 W3C 的HTML 技术用于 Web 内容可访问性指南 1.0文档以获取更多建议,特别是识别主要语言。
总之,看起来屏幕阅读器正在查看语言属性而不是内容语言元信息,但我看到的大多数建议都建议使用元数据。尤其是谷歌的统计数据似乎很相关,所以也许你应该把两者都留在里面。
我相信该版本的一个优点<meta>
是您可以指定多种语言,<meta http-equiv="Content-Language" content="en-GB, fr" />
例如在 中。请查看此内容以更深入地检查该主题。
Content-Language
在 XHTML5 中不符合标准。
虽然它确实允许您指定一种以上的语言,但您不应该这样做(它对任何人都没有帮助)。您应该xml:lang
在特定元素上使用属性,例如
<p xml:lang="en">Hello <span xml:lang="de">Welt!</span></p>
W3C I18N FAQ也明确反对<meta>
:
HTTP 标头或元元素信息与此处无关。通过扩展,您应该通过使用标签中的和/或属性来指定整个内容的文本处理语言
lang
xml:lang
html
。
据我所知,只有 HTML 文档(不是 XHTML)需要 meta http-equiv (如果有的话),因为 XHTML 允许使用xml:lang指定语言。
所以,没有区别,第二行只是多余的。
HTTP/1.0 RFC 1945 说 Content-Language 标头字段代表“目标受众的语言”。
Content-Language entity-header 字段描述了封闭实体的目标受众的自然语言。请注意,这可能不等同于实体中使用的所有语言。
HTML4 和 XHTML1.x 将元 http-equiv 标记视为嵌入在 html 文档中的相同信息,而不是 HTTP 标头。
另一方面,xml:lang 和 html lang 属性标识文档的语言,或包含在该属性出现的元素中的片段。
因此,假设您有一个主要是法语的文档,目的是向讲英语的人教授法语,内容语言是 en-GB,en-US(比如说),而 xml:lang 属性是 fr-FR .
然而,HTML 5 改变了这一点,元 http-equiv="content-language" 被认为是不符合标准的 HTML,它仍然定义了文档范围的默认语言,并且只支持一种语言,因此实际上与 xml:lang on html 元素。我不能说我理解这种变化背后的原因,但 Daniel Glazman 和 Ian Hickson 在从http://lists.w3.org/Archives/Public/public-html/2008Nov/0083.html开始的线程中讨论它