lang

**lang** 全域性屬性 用於定義元素的語言:非可編輯元素的書寫語言,或使用者應使用該語言書寫可編輯元素的語言。該屬性包含一個在 RFC 5646:語言標識標籤(也稱為 BCP 47) 中定義的格式中的單個“語言標籤”。

注意:lang 的預設值為空字串,這意味著語言未知。因此,建議始終為該屬性指定適當的值。

試一試

如果屬性值為空字串lang=""),則語言設定為未知;如果語言標籤不符合 BCP47,則設定為無效

即使設定了**lang** 屬性,它也可能不會被考慮在內,因為 xml:lang 屬性具有優先順序。

對於 CSS 偽類 :lang,兩個無效的語言名稱如果名稱不同,則不同。因此,雖然 :lang(es) 匹配 lang="es-ES"lang="es-419",但 :lang(xyzzy) 不會匹配 lang="xyzzy-Zorp!"

語言標籤語法

完整的 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 屬性

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 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="/en-US/docs/Web/HTML/Globale_Attribute/lang" title="German">
        <bdi>Deutsch</bdi>
      </a>
    </li>
    <li lang="es" role="menuitem">
      <a href="/en-US/docs/Web/HTML/Atributos_Globales/lang" title="Spanish">
        <bdi>Español</bdi>
      </a>
    </li>
    <li lang="fr" role="menuitem">
      <a href="/en-US/docs/Web/HTML/Attributs_universels/lang" title="French">
        <bdi>Français</bdi>
      </a>
    </li>
    <li lang="ja" role="menuitem">
      <a href="/en-US/docs/Web/HTML/Global_attributes/lang" title="Japanese">
        <bdi>日本語</bdi>
      </a>
    </li>
    <li lang="ko" role="menuitem">
      <a href="/en-US/docs/Web/HTML/Global_attributes/lang" title="Korean">
        <bdi>한국어</bdi>
      </a>
    </li>
    <li lang="pt-BR" role="menuitem">
      <a
        href="/en-US/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="/en-US/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="/en-US/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 表格僅在瀏覽器中載入

另請參閱