HTML 4.0（それ以前に RFC2070 ）で導入された lang 属性、 hreflang 属性、およびXMLの xml:lang 属性 [1] は、「言語コード」を指定することで、ドキュメントで使用している言語を明示し、ブラウザの表示に加えてサーチエンジンや音声合成にも役立つような情報を提供します。ここで用いられる「言語コード」はURLの指定などに使われる「国コード」とは異なるもので、日本語は「 JA 」になります。混乱しやすいので、注意が必要です。

言語コード

日本のように国家と言語が（ほぼ）1対1で対応しているとあまり意識しませんが、一つの国で複数の公用語を持っているところもあれば、多くの国で使われる言語もあります。このため、「国コード」とは別に130以上の「言語コード」が ISO 639 によって定義されています。

主要なものを挙げると：

主な言語コード ar アラビア語 it イタリア語 de ドイツ語 ja 日本語 el ギリシャ語 ko 韓国語 en 英語 la ラテン語 eo エスペラント語 ms マレー語 es スペイン語 ru ロシア語 fr フランス語 zh 中国語

となります。 RFC 4646（RFC1766、RDF3066を上書き ） では、これを用いて、MIMEヘッダなどで言語を指定する方法を定めており、HTML 4でもこの方法に準拠しています（厳密にはHTML4での参照規格はRFC1766）。ここではアルファベット2文字による主言語のほかに、ハイフン（-）でつないで方言のような副言語を指定する方法も定められています。例えば

en : 英語

en-US : アメリカ英語

en-cockney : コックニー英語

などです。XHTML文書中で言語を指定する方法は：

（例） <html xmlns="..." xml:lang="ja" lang="ja"> <meta http-equiv="Content-Language" content="ja" /> <p xml:lang="ko">

などがあります。