この記事はHTML 4/XHTML 1でのlang 属性/xml:lang 属性についての解説記事です。
HTML 5でのlang 属性/xml:lang 属性に関する解説記事は、HTML 5 リファレンス内のHTML 5でのlang 属性/xml:lang 属性をご覧ください。
lang属性及びxml:lang属性は、当該要素の記述言語を指定する属性です。
ここでいう言語
とは、文書を記述している自然言語の事であり、
等の事ではありません。
lang属性及びxml:lang属性を記述する事で、以下のような取扱が期待出来ます。
フォントや引用符などの表示方法を、言語に応じてより適切なものに切り替えられるようになります。
現時点ではまだ実装されていないようですが、機械翻訳が進化すれば、このような機能はあらゆる環境において実装される事になるでしょう。
その場合閲覧者は外国文書もストレス無く閲覧出来る様になります。
機械翻訳が無理でも、日本語圏には日本語版、英語圏には英語版などと適切なヴァージョンを自動的に振り分ける事が出来るようになるでしょう。
その結果、検索エンジン利用者も日本語文書の中からだけ検索するなどと言った事が可能になります。
既に現行のロボット型検索エンジンには大抵実装されておりますが、lang属性及びxml:lang属性はまだ普及していないのか精度が低いようです。
lang属性及びxml:lang属性が普及すれば検索エンジンの言語分けも精度が高まるでしょう。
lang属性はHTML 4.01からXHTML 1.0までとXHTML ベーシック 1.1及びXHTML 1.1で利用出来ます。
xml:lang属性はXHTMLで利用出来ます。
lang属性及びxml:lang属性は、以下の要素以外で利用出来ます。
lang属性及びxml:lang属性の値は言語コードとされております。
具体的には、HTML 4.01文書にて、当該要素が
lang="ja"属性をlang="en-us"属性をlang="en-gb"属性をlang="zh-tw"属性をlang="pt-br"属性をそれぞれ指定します。
XHTMLはXMLの応用言語のため、XML共通の言語指定属性としてxml:lang属性を用いる事になっております。
しかしながら、XHTML 1.0は在来HTMLの代わりに利用する事も許されており、そのためxml:lang属性と併せてlang属性も併記する事が推奨されております。
つまり、XHTML 1.0文書においては、当該要素が日本語の場合は、
lang="ja" xml:lang="ja"
と書く事が求められております。
また、平成22年11月23日以降は、XHTML 1.1 ベーシック及びXHTML 1.1でも lang属性をxml:lang属性と併記出来る事とされましたが、この場合lang属性とxml:lang属性には同じ属性値を与えるべきであるとしております。