37

在 HTML 中,最好有一个lang属性<html>,例如<html lang="en">.

这有什么用?

如果这是用于翻译,即使语言设置为英文并且文档中的所有中文文本谷歌翻译都会将其检测为中文,而不是英文(这意味着谷歌会忽略该lang属性)

4

6 回答 6

30

我从W3C引用这个:

在 HTML 中声明语言

始终使用html标签上的语言属性来声明页面中文本的默认语言。当页面包含另一种语言的内容时,将语言属性添加到围绕该内容的元素。

lang对作为 HTML 的页面使用该属性,xml:lang对作为 XML 的页面使用该属性。对于 XHTML 1.x 和 HTML5 多语言文档,请一起使用。

使用IANA 语言子标签注册表中的语言标签。

还有一个很好的阅读是为什么使用语言属性?.

于 2013-02-01T15:40:54.270 回答
11

你问“这有什么用”。

“该<lang=>属性可用于声明网页或网页的一部分的语言。这是为了协助搜索引擎蜘蛛、页面格式化和屏幕阅读器技术”

来源:http://symbolcodes.tlt.psu.edu/web/tips/langtag.html(Wayback Machine 链接

没有提到翻译——但搜索引擎蜘蛛通常不想“用错误的语言”解析文档——它的索引文件会增长(很多新词),结果对用户没有用(谁无法阅读该语言,以及谁使用了错误的搜索词)。

智能翻译技术(如上面提到的谷歌)的出现意味着一些搜索引擎可以看到一种语言的页面,翻译它,并找出搜索“cow”的人可能对这个提到“vache”的页面感兴趣“并且有<lang="fr">

于 2013-02-01T15:41:47.430 回答
2

lang属性告诉客户端文档(或文档的一部分)是用什么语言编写的。这对于任何关心语言的软件都很有用。

一个关键用途是可访问性。WCAG中提到:

此成功标准有助于:

  • 使用屏幕阅读器或其他将文本转换为合成语音技术的人;
  • 难以流畅准确地阅读书面材料的人,例如识别字符和字母或解码单词;
  • 使用文字转语音软件的有一定认知、语言和学习障碍的人
  • 依赖字幕同步媒体的人。

Adrian Roselli描述了一些好处:

连字符

通过使用 lang,您可以在(现代)浏览器中获得连字符支持的好处,否则您将无法获得(假设您在 CSS 中使用连字符:auto)。

可访问性

至少,语言对屏幕阅读器用户来说是一个好处,尤其是当您的用户没有与您的网站相同的主要语言时。当页面被读出时,它允许正确的发音和变形。

…以及引用 WCAG 并指向W3C 的这份文档,其中列出了一些好处,例如能够编写 CSS 样式元素基于它们所用的语言(因此不同的字体可以用于不同的语言),自动选择字体为一种语言提供正确的字形版本,帮助搜索引擎、拼写检查和翻译工具,帮助语音合成器和盲文翻译,以及自定义脚本。

于 2020-06-19T21:05:00.593 回答
1

据我所知,对于单语言网站(希望您能推测出它对多语言网站的实用性),唯一真正、实际、切实的用途是它使“连字符”CSS 属性按预期工作。 . 这不是很多,但比没有更多。(不过,恐怕我还没有在浏览器中实际测试过这个,这是我们都应该做的事情来确定事情。)

通过:http ://blog.adrianroselli.com/2015/01/on-use-of-lang-attribute.html (这也充满了使用它的不相关的“理由”,除了提到的)。

于 2016-09-06T16:47:40.233 回答
0
于 2022-01-01T21:53:01.613 回答
-2

lang和自定义属性的区别在于lang继承,因此即使是具有属性的元素的子元素lang=en也可以使用选择器选择div:lang(en){}

于 2017-06-15T08:32:21.517 回答