HTML の lang 属性

HTMLタグの lang 属性には、HTMLで使用する言語を指定します。lang 属性は省略可能です。

日本語の場合

日本語の場合は、lang属性に「ja」を指定する。

<html lang="ja">

lang属性に「ja-JP」を指定してもよい。

<html lang="ja-JP">

2通りの方法があるが、どちらでも違いはない。

lang属性を指定できるHTMLタグ

HTML5においてlangはグローバル属性であるため、すべてのHTMLタグに指定できる。ただし、一般的にhtmlタグに指定することが多い。

langに指定できる言語

lang属性には、次の言語を指定できる。

意味
ar アラビア語
de ドイツ語
en 英語
es スペイン語
fr フランス語
it イタリア語
ja 日本語
ko 韓国語
pt ポルトガル語
ru ロシア語
th タイ語
tr トルコ語
vi ベトナム語
zh 中国語

langに指定できる言語と国

言語に国を指定することもできる。

意味
en-AU 英語(オーストラリア)
en-CA 英語(カナダ)
en-GB 英語(イギリス)
en-NZ 英語(ニュージーランド)
en-SG 英語(シンガポール)
en-US 英語(アメリカ)
fr-CA フランス語(カナダ)
fr-FR フランス語(フランス)
ja-JP 日本語(日本)
ko-KP 朝鮮語(北朝鮮)
ko-KR 韓国語(韓国)
pt-BR ポルトガル語(ブラジル)
pt-PT ポルトガル語(ポルトガル)
th-TH タイ語(タイ)
zh-cmn-Hans 中国語・普通話・簡体字
zh-cmn-Hans-CN 中国語・普通話・簡体字(中国大陸)
zh-cmn-Hant 中国語・普通話・繁体字
zh-cmn-Hant-TW 中国語・台湾華語・繁体字(台湾)
zh-yue-Hant 中国語・広東語・繁体字
zh-yue-Hant-HK 中国語・広東語・繁体字(香港)

言語と国を指定できる理由は、同じ言語でも地域によってルールが異なるからである。

たとえば、日付の表記は同じ英語であってもイギリスとアメリカで異なる。

日付の表記
イギリス 19th November 2019
アメリカ November 19th, 2019

日付の年月日をどのような順番で表記するかは、英語という言語によって規定されているのではなく、地域の文化によって違うためである。

この考え方を理解できれば、英語で日本人の名前を「姓-名」と「名-姓」のどちらで書くか、といった議論はナンセンスだとわかる。 実際、Xi Jinping(習近平)やMoon Jae-in(文在寅)のように、中国人や韓国人の名前は英語の文献であっても「姓-名」の順で表記する。

日本語(ja)は日本(JP)でしか使われていないため、lang="ja"lang="ja-JP" に違いはない。

lang属性の分類
バージョン 分類
HTML 4.01 Transitional 国際化属性
HTML 4.01 Strict 国際化属性
XHTML 1.0 Strict 国際化属性
HTML5 グローバル属性

JavaScript

JavaScriptからはHTMLElementインタフェースを通じてlang属性にアクセスできる。

element[lang|="value"]

lang属性が value で始まる値である要素タイプ element にマッチする。たとえば、パターン p[lang|="en"] は、lang属性の値が "en-US""en-GB" であるp要素タイプにマッチする。

p要素のlang属性が「en-」で始まる値であれば赤く表示する例を次に示す。

<html>
  <head>
    <style>
      p[lang|="en"] { color: red }
    </style>
  </head>
  <body>
    <p lang="ja-JP">Japan</p>
    <p lang="en-UK">United Kingdom</p>
    <p lang="en-US">United States of America</p>
  </body>
</html>

上記の表示例を次に示す。

Japan

United Kingdom

United States of America

関連記事

class

dir

id

onblur

onchange

onclick

oncontextmenu

ondblclick

onfocus

onkeydown

onkeypress

onkeyup

onmousedown

onmousemove

onmouseout

onmouseover

onmouseup

onselect

style

title

参考文献

Web Hypertext Application Technology Working Group (2022) "Semantics, structure, and APIs of HTML documents" HTML Living Standard