このページはコミュニティーの尽力で英語から翻訳されました。MDN Web Docs コミュニティーについてもっと知り、仲間になるにはこちらから。

View in English Always switch to English

HTML lang グローバル属性

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since ⁨2015年7月⁩.

lang グローバル属性は、要素の言語を定義するために使用します。 編集不可能な要素の場合は書かれている言語、または編集可能な要素の場合はユーザーが書くべき言語です。この属性には、単一の BCP 47 言語タグを記述します。

メモ: lang の既定値は空文字列であり、これは言語が不明であることを意味します。したがって、この属性には常に適切な値を指定することをお勧めします。

試してみましょう

<p>This paragraph is English, but the language is not specifically defined.</p>

<p lang="en-GB">This paragraph is defined as British English.</p>

<p lang="fr">Ce paragraphe est défini en français.</p>
p::before {
  padding-right: 5px;
}

[lang="en-GB"]::before {
  content: "(イギリス英語で)";
}

[lang="fr"]::before {
  content: "(フランス語で)";
}

属性値が空文字列 (lang="") の場合、言語は unknown に設定されます。言語タグが BCP47 に準拠していない場合は、invalid に設定されます。

lang 属性が設定されていても、 xml:lang 属性が優先されるため、考慮されない場合があります。

CSS の :lang 擬似クラスでは、無効な 2 つの言語名は、その名前が異なれば異なるものになります。つまり、:lang(es)lang="es-ES"lang="es-419" の両方に一致しますが、 :lang(xyzzy)lang="xyzzy-Zorp!" とは一致しません。

アクセシビリティの考慮

WCAG 成功基準 3.1.1 では、ページの言語が「プログラムによって決定される」方法で(つまり、lang 属性を介して)指定することが要件となっています

WCAG 成功基準 3.1.2 では、言語が異なる部分があるページには、それらの部分の言語も指定することを要件となっています。この場合も、lang 属性がそのための正しい方法です。

これらの要件は、主にスクリーンリーダーなどの支援技術が、正しい発音を行うことができるようにするためのものです。

例えば、このサイト (MDN) の言語メニューには、各項目に lang 属性が記載されています。

html
<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 role="menuitem">
      <a
        href="/ca/docs/Web/HTML/Reference/Global_attributes/lang"
        title="Catalan">
        <bdi lang="ca">Català</bdi>
      </a>
    </li>
    <li role="menuitem">
      <a
        href="/de/docs/Web/HTML/Reference/Global_attributes/lang"
        title="German">
        <bdi lang="de">Deutsch</bdi>
      </a>
    </li>
    <li role="menuitem">
      <a
        href="/es/docs/Web/HTML/Reference/Global_attributes/lang"
        title="Spanish">
        <bdi lang="es">Español</bdi>
      </a>
    </li>
    <li role="menuitem">
      <a
        href="/fr/docs/Web/HTML/Reference/Global_attributes/lang"
        title="French">
        <bdi lang="fr">Français</bdi>
      </a>
    </li>
    <li role="menuitem">
      <a
        href="/ja/docs/Web/HTML/Reference/Global_attributes/lang"
        title="Japanese">
        <bdi lang="ja">日本語</bdi>
      </a>
    </li>
    <li role="menuitem">
      <a
        href="/ko/docs/Web/HTML/Reference/Global_attributes/lang"
        title="Korean">
        <bdi lang="ko">한국어</bdi>
      </a>
    </li>
    <li role="menuitem">
      <a
        href="/pt-BR/docs/Web/HTML/Reference/Global_attributes/lang"
        title="Portuguese (Brazilian)">
        <bdi lang="pt-BR">Português (do&nbsp;Brasil)</bdi>
      </a>
    </li>
    <li role="menuitem">
      <a
        href="/ru/docs/Web/HTML/Reference/Global_attributes/lang"
        title="Russian">
        <bdi lang="ru">Русский</bdi>
      </a>
    </li>
    <li role="menuitem">
      <a
        href="/uk/docs/Web/HTML/Reference/Global_attributes/lang"
        title="Ukrainian">
        <bdi lang="uk">Українська</bdi>
      </a>
    </li>
    <li role="menuitem">
      <a
        href="/zh-CN/docs/Web/HTML/Reference/Global_attributes/lang"
        title="Chinese (Simplified)">
        <bdi lang="zh-Hans">中文 (简体)</bdi>
      </a>
    </li>
    <li>
      <a
        href="/en-US/docs/Web/HTML/Reference/Global_attributes/lang"
        rel="nofollow"
        id="translations-add">
        Add a translation
      </a>
    </li>
  </ul>
</div>

継承

要素に lang 属性が設定されていない場合、その要素は親ノードに設定された lang 値を継承し、その親ノードも同様に親ノードから継承し、といった具合に継承されます。

仕様書

Specification
HTML
# attr-lang

ブラウザーの互換性

関連情報