lang - HTML: HyperText Markup Language 编辑

Language tag syntax

The lang global attribute helps define the language of an element: the language that non-editable elements are written in, or the language that the editable elements should be written in by the user. The attribute contains a single “language tag” in the format defined in Tags for Identifying Languages (BCP47).

The default value of lang is unknown, therefore it is recommended to always specify this attribute with the appropriate value.

If the attribute value is the empty string (lang=""), the language is set to unknown; if the language tag is not valid according to BCP47, it is set to invalid.

The full BCP47 syntax is in-depth enough to mark extremely specific language dialects, but most usage is much simpler.

A language tag is made of hyphen-separated language subtags, where each subtag indicates a certain property of the language. The 3 most common subtags are:

Language subtag
Required. A 2-or-3-character code that defines the basic language, typically written in all lowercase. For example, the language code for English is en, and the code for Badeshi is bdz.
Script subtag
Optional. This subtag defines the writing system used for the language, and is always 4 characters long, with the first letter capitalized. For example, French-in-Braille is fr-Brai and ja-Kana is Japanese written with the Katakana alphabet. If the language is written in a highly typical way, like English in the Latin alphabet, there is no need to use this subtag.
Region subtag
Optional. This subtag defines a dialect of the base language from a particular location, and is either 2 letters in ALLCAPS matching a country code, or 3 numbers matching a non-country area. For example, es-ES is for Spanish as spoken in Spain, and es-013 is Spanish as spoken in Central America. “International Spanish” would just be es.

The script subtag precedes the region subtag if both are present — ru-Cyrl-BY is Russian, written in the Cyrillic alphabet, as spoken in Belarus.

To find the correct subtag codes for a language, try the Language Subtag Lookup.

Even if the lang attribute is set, it may not be taken into account, as the xml:lang attribute has priority.

For the CSS pseudo-class :lang, two invalid language names are different if their names are different. So while :lang(es) matches both lang="es-ES" and lang="es-419", :lang(xyzzy) would not match lang="xyzzy-Zorp!".

Accessibility

WCAG Success Criterion 3.1.1 requires that a page language is specified in a way which may be 'programmatically determined' (i.e. via the lang attribute).

WCAG Sucesss criterion 3.1.2 requires that pages with parts in different languages have the languages of those parts specified too. Again, the lang attribute is the correct mechanism for this.

The purpose of these requirements is primarily to allow assistive technologies such as screen readers to invoke the correct pronunciation.

For example, the language menu on this site (MDN) includes a lang attribute for each entry:

 <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&nbsp;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-CN" role="menuitem">
			<a href="/zh-CN/docs/Web/HTML/Global_attributes/lang" title="Chinese (Simplified)">
				<bdi>中文 (简体)</bdi>
			</a>
		</li>
		<li>
			<a href="/wiki/en-US/docs/Web/HTML/Global_attributes/lang$locales" rel="nofollow" id="translations-add">Add a translation</a>
		</li>
	</ul>
</div> 

Specifications

SpecificationStatusComment
HTML Living Standard
The definition of 'lang' in that specification.
Living StandardNo change from latest snapshot, HTML 5.1
HTML 5.1
The definition of 'lang' in that specification.
RecommendationSnapshot of HTML Living Standard, no change from HTML5
HTML5
The definition of 'lang' in that specification.
RecommendationSnapshot of HTML Living Standard, behavior with xml:lang and language determination algorithm defined. It also is a true global attribute.
HTML 4.01 Specification
The definition of 'lang' in that specification.
RecommendationSupported on all elements but <applet>, <base>, <basefont>, <br>, <frame>, <frameset>, <iframe>, <param>, and <script>.

Browser compatibility

BCD tables only load in the browser

See also

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据

词条统计

浏览:49 次

字数:11945

最后编辑:7年前

编辑次数:0 次

    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文