lang
**lang
** 全局属性 用于定义元素的语言:非可编辑元素的书写语言,或用户应使用该语言书写可编辑元素的语言。该属性包含一个在 RFC 5646:语言标识标签(也称为 BCP 47) 中定义的格式中的单个“语言标签”。
注意:lang
的默认值为空字符串,这意味着语言未知。因此,建议始终为该属性指定适当的值。
试一试
语言标签语法
完整的 BCP47 语法非常详细,足以标记极其具体的语言方言,但大多数使用情况要简单得多。
语言标签由用连字符分隔的语言子标签组成,其中每个子标签表示语言的特定属性。3 个最常见的子标签是
- 语言子标签
-
必需。一个 2 或 3 个字符的代码,用于定义基本语言,通常用小写字母编写。例如,英语的语言代码是
en
,Badeshi 的代码是bdz
。 - 脚本子标签
-
可选。此子标签定义用于该语言的书写系统,始终为 4 个字符长,第一个字母大写。例如,法语盲文是
fr-Brai
,而ja-Kana
是用片假名字母表书写的日语。如果语言以非常典型的方式书写,例如英语用拉丁字母表,则无需使用此子标签。 - 区域子标签
-
可选。此子标签定义来自特定位置的基本语言的方言,可以是匹配国家代码的 2 个大写字母,也可以是匹配非国家地区的 3 个数字。例如,
es-ES
指的是西班牙语(西班牙语),es-013
指的是西班牙语(中美洲)。“国际西班牙语”只是es
。
如果同时存在脚本子标签和区域子标签,则脚本子标签在区域子标签之前 - ru-Cyrl-BY
指的是俄语,用西里尔字母书写,在白俄罗斯使用。
要查找语言的正确子标签代码,请尝试 语言子标签查找。
无障碍问题
WCAG 成功准则 3.1.1 要求页面语言以可“以编程方式确定”的方式指定(即通过lang
属性)。
WCAG 成功准则 3.1.2 要求具有部分不同语言的页面也指定这些部分的语言。同样,lang
属性是此操作的正确机制。
这些要求的主要目的是允许屏幕阅读器等辅助技术调用正确的发音。
例如,本网站 (MDN) 上的语言菜单为每个条目包含一个lang
属性
<div class="dropdown-container language-menu">
<button
id="header-language-menu"
type="button"
class="dropdown-menu-label"
aria-haspopup="true"
aria-owns="language-menu"
aria-label="Current language is English. Choose your preferred language.">
English
<span class="dropdown-arrow-down" aria-hidden="true">▼</span>
</button>
<ul
id="language-menu"
class="dropdown-menu-items right show"
aria-expanded="true"
role="menu">
<li lang="ca" role="menuitem">
<a href="/ca/docs/Web/HTML/Global_attributes/lang" title="Catalan">
<bdi>Català</bdi>
</a>
</li>
<li lang="de" role="menuitem">
<a href="/de/docs/Web/HTML/Globale_Attribute/lang" title="German">
<bdi>Deutsch</bdi>
</a>
</li>
<li lang="es" role="menuitem">
<a href="/es/docs/Web/HTML/Atributos_Globales/lang" title="Spanish">
<bdi>Español</bdi>
</a>
</li>
<li lang="fr" role="menuitem">
<a href="/fr/docs/Web/HTML/Attributs_universels/lang" title="French">
<bdi>Français</bdi>
</a>
</li>
<li lang="ja" role="menuitem">
<a href="/ja/docs/Web/HTML/Global_attributes/lang" title="Japanese">
<bdi>日本語</bdi>
</a>
</li>
<li lang="ko" role="menuitem">
<a href="/ko/docs/Web/HTML/Global_attributes/lang" title="Korean">
<bdi>한국어</bdi>
</a>
</li>
<li lang="pt-BR" role="menuitem">
<a
href="/pt-BR/docs/Web/HTML/Global_attributes/lang"
title="Portuguese (Brazilian)">
<bdi>Português (do Brasil)</bdi>
</a>
</li>
<li lang="ru" role="menuitem">
<a href="/ru/docs/Web/HTML/Global_attributes/lang" title="Russian">
<bdi>Русский</bdi>
</a>
</li>
<li lang="uk" role="menuitem">
<a
href="/uk/docs/Web/HTML/%D0%97%D0%B0%D0%B3%D0%B0%D0%BB%D1%8C%D0%BD%D1%96_%D0%B0%D1%82%D1%80%D0%B8%D0%B1%D1%83%D1%82%D0%B8/lang"
title="Ukrainian">
<bdi>Українська</bdi>
</a>
</li>
<li lang="zh-Hans" role="menuitem">
<a
href="/zh-CN/docs/Web/HTML/Global_attributes/lang"
title="Chinese (Simplified)">
<bdi>中文 (简体)</bdi>
</a>
</li>
<li>
<a
href="/en-US/docs/Web/HTML/Global_attributes/lang$locales"
rel="nofollow"
id="translations-add">
Add a translation
</a>
</li>
</ul>
</div>
继承
如果元素没有 lang
属性,它将继承其父节点上设置的 lang
值,该值又可能从其父节点继承,依此类推。
规范
规范 |
---|
HTML 标准 # attr-lang |
浏览器兼容性
BCD 表格仅在浏览器中加载
另请参阅
- 所有全局属性。
Content-Language
HTTP 标头- HTML
translate
属性