[11] [[HTML]] のほとんどの[[要素型]]で定義されている[[属性]]
[CODE(HTMLa)[lang]] は、その[[要素]]の[[属性値]]および文[[内容]]
(text content) の基底言語 (base language) を指定します。

* 仕様書

[REFS[
- [96] [CITE@en-US-x-hixie[HTML Standard]], [TIME[2024-04-29T07:34:22.000Z]], [TIME[2024-04-29T08:15:58.618Z]] <https://html.spec.whatwg.org/#the-lang-and-xml:lang-attributes>
- [29] [CITE@en-GB-x-hixie[HTML Standard]] ([TIME[2015-12-05 08:40:22 +09:00]] 版) <https://html.spec.whatwg.org/#the-html-element>
]REFS]

* 意味

[11] この属性の値は [CODE(SGML)[%[[LanguageCode]];]] 型 ([[IETF]] の[[言語札]])
であり、[[大文字]]・[[小文字]]は区別されません。
既定値は[RUBYB[未知] [unknown]]です。

[25]
仕様書:
- [[HTML 4]]
-- [CODE(HTMLa)[lang]] 属性 <IW:HTML4:"struct/dirlang.html#adef-lang">
- [[XHTML 1.0]]
-- [CSECTION[C.7. The [CODE(HTMLa)[lang]] and [CODE(HTMLa)[xml:lang]] Attributes]]
(参考) <IW:XHTML10:"C_7">

[15] なお、ここで[[言語]]とは[[自然言語]]であって、
[[プログラム言語]]は除外されています。
(<IW:HTML4:"struct/dirlang.html#langcodes"> 参照。)

[12] この属性の値は、 [[UA]] が種々の用途で使います。
<IW:HTML4:"struct/dirlang.html#idx-language-1"> に挙げられている例としては:
- [[検索円陣]]の補助情報
- [[発話合成]]の補助情報
- 高品質[[写植]]のための[[異体グリフ]]選択の補助
- [[引用符]]集合を選ぶための補助
- [[ハイフン付け]], [[合字]] ([[リガチャ]]), [[文字間]]の決定の補助
- 綴り検査・文法検査の補助情報

があります。

[13] [CODE(HTMLa)[lang]] 属性の意図は、 UA が特定言語における旧来の文化的慣習に基づいてより有意義に内容を[[描画]]できるようにということにあります。
UA に特定言語では型破りな文字をさほど意味のない方法で描画することを求めるものではありません。
UA は、 [CODE(HTMLa)[lang]] 属性で指定された値に関わらず、
全ての文字を描画するように最前の努力をなさなければなりません [HTML4]。

という良く分からない文章の心は、 [CODE(HTML)[[CODE(HTMLa)[lang]]=en]]
にしたら (そうしなければ表示されていたはずの) 漢字が[[豆腐]]とかに化けてしまう糞 UA
逝っとくれと、そういうことですかねぇ。 >>4 の例からみても。違いますか?

[106] 関連: [[利用者の言語]]

* 代替

[24] [[XHTML 1.0]] で [[XML]] の
[CODE(XMLa)[[[xml]]:lang]] 属性が [[XHTML]] 
に取り入れられました。

[[XHTML 1.0]] 互換性指針によれば、[WEAK[互換性指針に従う文書は]] 
[CODE(HTMLa)[lang]] と [CODE(HTMLa)[xml:lang]] の両方を指定するべきです。
[CODE(HTMLa)[xml:lang]] が優先されます。 [SRC[XHTML 1.0 C.7]]

** 文脈

[30] [[根要素]]の [CODE(HTMLe)@en[[[html]]]] [[要素]]には
[CODE(HTMLa)@en[[[lang]]]] [[属性]]を指定することが[RUBYB[[[推奨]]]@en[encourage]]されています
[SRC[>>29]]。

;; [31] [[音声合成]]ツールや[[翻訳]]ツールの[[言語]]判定を助けるものです [SRC[>>29]]。

[68] 
[[DTBook]] や [[NCX]] にも [[HTML4]] から移入されました。

* 継承

[97] [CODE[Content-Language:]] も参照。

[16] ある要素の言語は、次の情報から決定されます。
(先のものが優先度が高い。)

= その要素の [CODE(HTMLa)[lang]] 属性値
= 一番近い [CODE(HTMLa)[lang]] 属性を持つ要素の [CODE(HTMLa)[lang]] 属性値
-- 一般には、[[先祖要素]]
-- [[表]]の[[こま]]では、その[[行]]の最初のこまだったりもする。
= [[HTTP]] の [CODE(HTTP)[[[Content-Language]]]] 頭欄
= [[UA]] の既定値・利用者の設定

(<IW:HTML4:"struct/dirlang.html#h-8.1.2"> 参照。)
[17] 実際には HTML は HTTP 以外でも使われますから、 HTTP
に限らず転送プロトコル一般の言語情報を第3位と解釈するのがよいでしょう。

転送プロトコルが複数組み合わされる場合は (各プロトコル(群)で特に規定がある場合はそれによるとし、そうでない場合は) 内側の (HTML 文書に近い) プロトコルの情報が優先されるとするのがよいでしょう。

[18] [CODE(HTMLa)[[[http-equiv]]]] な [CODE(HTMLe)[[[meta]]]] 要素を使って
[CODE(HTTP)[Content-Language]] を指定する方法も実際には良く使われています。
HTML 4 が触れていない以上、厳密に HTML 4 に従う UA
では無視するのが良いのかもしれませんが、現実路線(謎)の UA
は HTTP など上位プロトコルが言語情報を持たないときにはこれを参照してもよいのではないでしょうか。

[19] ところで、 HTTP では [SAMP(HTTP)[Content-Language: ja, en]]
のように複数の言語を指定できるのですが、 HTML 4 ではできません。
実装者はその辺注意されたし。

[22]
表の中では [CODE(SGML)[%[[cellvalign]]]]
と同じ継承規則が使われると HTML 4
では規定されています。

[[#comment]]


** 言語札の階層性

[10] 言語札は [SAMP(lang)[ja-JP]], [SAMP(lang)[en-US]] 
のような階層構造を持っています。

HTML 4 は、言語情報による処理に際して、まず全体の一致を試み、
次に最初の部分の一致によるべきだとしています。
<IW:HTML4:"struct/dirlang.html#h-8.1.3"> 参照。

こうすれば、たとえ [SAMP(lang)[ja-JP]] の処理を知らなくても、
[SAMP(lang)[ja]] の処理さえ知っていれば、それなりの結果が期待できます。

[[#comment]]


* 歴史


[FIG(data)[ [99] [[HTML要素概説]]

:[F[要素名]]:[CODE[lang]]
:日付:[TIME[1995-08-15]]
:説明:
[TIME[1995-08-15]]版
[[HTML 2.x]] 
に
[CODE[lang]]
がある。
[SRC[>>104]]
後の版では
[CODE[span]]
に統合された。
[SEE[>>105]]
:出典:
[REFS[

-
[104] 
[DFN[HTML2x-00]]:
[CITE@en[Internationalization of the Hypertext Markup Language]], 
[DATA(.author)[[[Franois Yergeau]]]],
[DATA(.author)[[[Gavin Thomas Nicol]]]],
[DATA(.author)[[[Glenn Adams]]]],
[DATA(,author)[[[Martin J. Duerst]]]],
[DATA(.status)[[[Internet Draft]]]],
[TIME(.published)[1995-08-15]],
[TIME[2024-08-16T03:32:31.000Z]] <https://datatracker.ietf.org/doc/html/draft-ietf-html-i18n-00>

]REFS]
:注釈:
-
[105] 
直接の関係はないが、
後に
[[WebVTT]] 
が[[言語]]指定のため
[CODE[lang]]
を追加した。

]FIG]



[102] [CITE@en[draft-ietf-html-style-00]], [TIME[2024-09-28T04:41:08.000Z]] <https://datatracker.ietf.org/doc/html/draft-ietf-html-style-00>

[103] [CITE@en[draft-ietf-html-style-01]], [TIME[2024-09-28T04:41:21.000Z]] <https://datatracker.ietf.org/doc/html/draft-ietf-html-style-01>



[26]
仕様書:
- [DEL[[[RFC 2070]] ([[IETF]] [[提案標準]])]] ([[廃止]])
-- [CSECTION@en[3. The LANG attribute]]

[27]
[[標準]]として最初に [CODE(HTMLa)@en[[[lang]]]]
[[属性]]が [[HTML]] に導入されたのは [[HTML 2.x]]
([[RFC 2070]]) でした。 [[HTML 2.x]] ではすべての[[要素型]]のうち、
意味をなさないと考えられた
[CODE(HTMLe)@en[[[br]]]], [CODE(HTMLe)@en[[[hr]]]],
[CODE(HTMLe)@en[[[base]]]], [CODE(HTMLe)@en[[[nextid]]]], 
[CODE(HTMLe)@en[[[meta]]]]
''以外''すべてに [CODE(HTMLa)@en[[[lang]]]]
[[属性]]が追加されました [SRC[[[RFC 2070]] 3.]]。

[28]
[[RFC 2070]] は[[属性値]]として [[RFC 1766]]
の[[言語札]]を参照しつつも構文と意味を独自に規定
[WEAK[(というか[[コピペ]])]] していました。
>>10 の階層的比較に関する規定や >>16
の継承に関する規定もありました。



[FIG(data)[ [98] [[HTML要素概説]]

:[F[要素名]]:[CODE[lang]]
:日付:[TIME[1995]]
:説明:
[[Emacs/W3]]
は、
少なくても[[構文解析]]において
[CODE[lang]]
を実装していた。
:説明:
また、当時の文書で稀に見られる。
[SRC[SW:<lang>]]
:出典:
[REFS[

-
[CITE@en[w3/w3-parse.el at master · emacsmirror/w3 · GitHub]], 
[TIME(.seen)[2024-08-16T13:28:05.000Z]] 
<https://github.com/emacsmirror/w3/blob/master/w3-parse.el>

]REFS]

]FIG]



[12] [CITE@en[w3/w3-parse.el at master · emacsmirror/w3 · GitHub]], [TIME[2024-08-16T13:28:05.000Z]] <https://github.com/emacsmirror/w3/blob/master/w3-parse.el#L1194>


[100] 
[CITE[The HTML Professional DTD]], [TIME[2024-08-18T03:06:35.000Z]], [TIME[1997-05-12T01:07:42.527Z]] <https://web.archive.org/web/19970512004934/http://www.ucc.ie/html/dtds/htmlpro.html>

[101] >>100 この文書中で [CODE[lang]] を使っている。属性なし。
[[English]] 文中、[[ラテン語]]由来語彙に使っている。


[36] '''XHTML m12n における事実上の廃止'''
[[XHTML m12n]] では[[抽象モジュール]]定義に [CODE(HTMLa)@en[[[lang]]]]
[[属性]]は含まれず、[[遺物再定義]] [[DTDモジュール]]の定義にひっそり含まれています。

[[XHTML m12n]] を基に構築されている [[XHTML 1.1]] や [[XHTML Basic]]
にはそもそも[[遺物]]モジュールが取込まれていませんから、
[CODE(HTMLa)@en[[[lang]]]] [[属性]]は存在しません。

仕様書:
- [[XHTML m12n]]
-- [[遺物再定義]] [[DTDモジュール]]
<IW:XHTML1m12n:"dtd_module_defs.html#a_module_Legacy_Redeclarations">

[49] [CITE@en[XHTML+RDFa and @lang]] ([[Shane McCarron]] 著, [TIME[2009-01-30 02:21:49 +09:00]] 版) <http://lists.w3.org/Archives/Public/public-xhtml2/2009Jan/0110.html>

>
The XHTML 2 Working Group has been asked to re-introduce the lang 
attribute into XHTML family languages.  Basically this is so that 
assistive technologies will correctly identify the language of content. 
>  It will also address some issues that arise when content is
served up as text/html instead of application/xhtml+xml.



** 例

[14] [HTML4] から。
[PRE[
<P><Q lang="en">Her super-powers were the result of
&gamma;-radiation,</Q> he explained.</P>
]PRE]

- UA は、英語の内容を適切な方法の描画 (たとえば引用符の取り扱い) を試みるべきです。
- UA は、英語の文字でなくても最前の努力でもって表示を試みなければなりません。

([CODE(HTMLe)[p]] 要素またはそれより上位の要素でも [CODE(HTML)[[CODE(HTMLa)[lang]]=en]] とちゃんと指定しておかないと、引用符は決定できないと思うのですけどねぇ。)

[23]
[[英語]]の文章の中に[[日本語]]
([[羅馬字]]表記) が混じっている例

[PRE(HTML example)[
<p>Horizontal in vertical ("<span lang="ja">Tate-chu-yoko</span>")
</p>
]PRE]

> [SAMP(HTML)[In Japanese, this effect is known as <a href="#g-tatechuyoko">"<span lang="ja">Tate</span>-<span lang="ja">chu</span>-<span lang="ja">yoko</span>"</a>.]]

共に出典は
[CITE[CSS3 Text Module]] 
<http://www.w3.org/TR/2003/CR-css3-text-20030514/#writing-mode>

[[#comment]]


** 関連

[39] '''文字コードとの関係'''

[CODE(HTMLa)@en[[[lang]]]] [[属性]]は、
[[文字コード]] ([[符号化文字集合]]や[[符号化方式]])
とは[[直交]]するものです。[[文字コード]]の選択によって
[CODE(HTMLa)@en[[[lang]]]] [[属性]]の要/不要や値が影響を受けることは''ありません''。

[40] '''文字種との関係'''

[CODE(HTMLa)@en[[[lang]]]] [[属性]]による[[言語]]の指定は、
その[[要素]]の[[内容]]として使われる[[文字]]の種類
([[用字系]]や[[正書法]]等) とは直接は関係''ありません''。

[[言語]]と[[文字]]の種類の間には元々強い関係が存在するので、
[CODE(HTMLa)@en[[[lang]]]] [[属性]]と[[内容]]の[[文字]]にも強い関係が認められますが、
それ以上の制約は存在しません。例えば、 [CODE(HTMLa)@en[[[lang]]]]
が [CODE(lang)@en[[[ja]]]] で、[[内容]]が[[アラビア文字]]であったとしても、
(それが[[日本語]]を表記したものなら) 何ら問題ありません。

[41] '''レンダリングとの関係'''

[CODE(HTMLa)@en[[[lang]]]] [[属性]]による[[言語]]の指定は、
その[[要素]]の[[内容]]を[[視覚的]]、[[音声]]、その他の方法によって適切に[[レンダリング]]するための情報の1つとして利用されます。

[[#comment]]


** メモ

[37]
[CODE(HTMLa)@en[[[lang]]]] [[属性]]が [[XML]] に取込まれて
[CODE(XMLa)@en[[[xml]]:[[lang]]]] [[属性]]となった背景には、
[[XLink 1.0]] と同様に、 [[HTML]] に限らず汎用的に使えそうなものは [[XML]]
系[[マーク付け言語]]共用の語彙にしてしまおうという思惑が見え隠れしています。

それ自体は至極結構なことですが、それがために旧来の [[HTML]]
と [[XHTML 1]] の致命的な断絶を招いてしまいました。言語属性の普及状況がいまいちなのも
[[XHTML 1]] の普及状況がいまいちなのもこの問題が大きな原因の
1つだというのは言い過ぎでしょうか。

[42]
[CITE@en-US[Internationalization Best Practices: Specifying Language in XHTML & HTML Content]] ([CODE[2007-02-16 05:52:24 +09:00]] 版) <http://www.w3.org/International/geo/html-tech/tech-lang.html>
([[名無しさん]])

[44]
[CITE@en[lang attributes accross (X)HTML versions - W3C Q&A Weblog]] ([CODE[2007-08-31 19:12:14 +09:00]] 版) <http://www.w3.org/QA/2007/08/xhtml-html-lang-attributes.html>

[47] [CITE@en[MAMA: Common attributes - Opera Developer Community]] ([TIME[2008-11-25 20:33:55 +09:00]] 版) <http://dev.opera.com/articles/view/mama-common-attributes/#lang>

* xml:lang 属性 (XML)

- [4] [[xml]]:lang 特殊属性: <http://www.w3.org/TR/REC-xml#sec-lang-tag>
- [3] [[XSL-FO]] の [CODE(XML)[xml:lang]] 属性の値には [CODE(XSL)[inherit]] を指定できます。 ([[言語札]>>40] 参照)
- 
[5] XML 1.0 [ABBR[FE] [First Edition]] では[[言語札]]の構文も定義されていました (<http://www.w3.org/TR/1998/REC-xml-19980210#sec-lang-tag>) が、 [ABBR[SE] [Second Edition]] では RFC に一任されています。

[7] XML 1.0 [[SE]] Errata では重大な変更が加えられています。型が [CODE(SGML)[[[NMTOKEN]]]] から [CODE(SGML)[[[CDATA]]]] に変更され、空文字列が認められました。
- [8] >>7 空文字列だと言語指定取消し (指定なし。) になります。 ([[XML名前空間]]の 1.1 版と似たような変更ですね。) ''Errata in REC-xml-20001006'' <http://www.w3.org/XML/xml-V10-2e-errata#E41>

[21]
[CODE(lang)[[[und]]]] (決定できない) という言語札もあったりしますが、空文字列はもっと積極的に、どの言語にも属さない場合 (絵とか) に使う、のではないでしょうかねぇ。
([[名無しさん]])

[35]
[[XInclude 1.0]] では言語情報を[[取込み]]の前後で保存するために
[CODE(InfoProp)[[[言語]]]][[特性]]を定義し、
[CODE(XMLa)@en[[[xml]]:[[lang]]]] 属性 (とそこに記された情報)
の処理を規定しています。

** 応用

[46] [[Atom 1.0]] や [[AtomPub]] や [[RFC 6721]] で定義されたすべての[[要素]]は [CODE(XMLa)@en[[[xml]]:[[lang]]]]
[[属性]]を持つことができます。どちらの仕様でも指定された[[言語]]はその[[要素]]と[[子孫]]に適用されると説明されていますが、
[[Atom 1.0]] では更に [[Language-Sensitive]] とされた[[要素]]や[[属性]]にのみ有意であると規定されています
[SRC@en[[[Atom 1.0]] 2.]]。

[REFS[
- [78] [CITE@en[RFC 4287 - The Atom Syndication Format]] ([TIME[2008-08-30 23:12:03 +09:00]] 版) <http://tools.ietf.org/html/rfc4287#section-2>
- [79] [CITE@en[RFC 5023 - The Atom Publishing Protocol]] ([TIME[2008-11-20 18:52:14 +09:00]] 版) <http://tools.ietf.org/html/rfc5023#section-2.1.3>
- [80] [CITE@en[RFC 6721 - The Atom "deleted-entry" Element]] ([TIME[2012-12-31 01:08:20 +09:00]] 版) <http://tools.ietf.org/html/rfc6721#page-4>
]REFS]

[55] 
[CITE@en[Speech Synthesis Markup Language (SSML) Version 1.1]] ([TIME[2010-09-08 00:26:19 +09:00]] 版) <http://www.w3.org/TR/2010/REC-speech-synthesis11-20100907/#adef_xmllang>

[69] [[DTBook]] でも認められていました。
なぜか [CODE[lang]] と [CODE[xml:lang]] の両方がありました。
(コメントには [[XHTML]] 由来らしきことが書かれています。)

* メモ

[1] [CODE(HTML)[lang]] 属性の値で [[CJK]] [[字形]]を区別するのは、間違ってはいませんが良い考えではありません。 (でも [[Unicode]] には他に方法はないです。)

[2] >>1 [[異体字タグ]]? 萎えるな。それに [[XML]] でそれは使えるんだろうか?

[45]
[CITE[英語翻訳 - エキサイト 翻訳]] ([TIME[2008-02-11 12:33:33 +09:00]] 版) <http://www.excite.co.jp/world/english/>

>
[PRE(CSS illegal example code)[
.en_m { lang: EN; font-family: Verdana; }
.en_s { lang: EN; font-family: Verdana; }
]PRE]

[48] [CITE[Document Structure – SVG Tiny 1.2]] ([TIME[2008-12-20 02:31:29 +09:00]] 版) <http://www.w3.org/TR/2008/REC-SVGTiny12-20081222/struct.html#XMLLangAttribute>

[50] [CITE[EMMA: Extensible MultiModal Annotation markup language]] ([TIME[2009-02-03 15:38:28 +09:00]] 版) <http://www.w3.org/TR/2009/REC-emma-20090210/#s4.2.5>

本文では [[BCP 47]] (日付は2006年、リンク先は最新版) を参照していますが、[[データ型]]としては
[[XML Schema]] (日付は第2版、リンク先は最新版) の [CODE(XML)@en[[[xs:language]]]]
になっています。

[51] [CITE[IRC logs: freenode / #whatwg / 20090508]]
([TIME[2009-08-07 07:55:55 +09:00]] 版)
<http://krijnhoetmer.nl/irc-logs/whatwg/20090508#l-73>

[52] [CITE[IRC logs: freenode / #whatwg / 20090602]]
([TIME[2009-08-23 20:57:07 +09:00]] 版)
<http://krijnhoetmer.nl/irc-logs/whatwg/20090602#l-368>

[53] [CITE@en[XHTML2 Working Group Teleconference -- 16 Sep 2009]]
([TIME[2009-09-16 23:43:23 +09:00]] 版)
<http://www.w3.org/2009/09/16-xhtml-minutes.html#item05>

[54] [CITE[IRC logs: freenode / #whatwg / 20100205]]
([TIME[2010-02-06 17:25:36 +09:00]] 版)
<http://krijnhoetmer.nl/irc-logs/whatwg/20100205#l-166>

[56] [CITE@en[Speech Synthesis Markup Language (SSML) Version 1.1]]
( ([TIME[2010-09-08 00:26:19 +09:00]] 版))
<http://www.w3.org/TR/2010/REC-speech-synthesis11-20100907/#edef_lang>

[57] [CITE@en[RFC 3920 - Extensible Messaging and Presence Protocol (XMPP): Core]] ([TIME[2011-03-31 08:02:17 +09:00]] 版) <http://tools.ietf.org/html/rfc3920#section-9.1.5>

[CODE(XML)@en[[[NMTOKEN]]]] でなければ[['''なりません''']]。
[[RFC 3066]] [[言語タグ]]でなければ[['''なりません''']]。

[58] [CITE[Document Structure – SVG 1.1 (Second Edition)]]
( ([TIME[2011-08-10 12:35:27 +09:00]] 版))
<http://www.w3.org/TR/2011/REC-SVG11-20110816/struct.html#LangSpaceAttrs>

[REFS[
- [72] [CITE@en[RFC 5196 - Session Initiation Protocol (SIP) User Agent Capability Extension to Presence Information Data Format (PIDF)]] ([TIME[2011-11-20 19:42:05 +09:00]] 版) <http://tools.ietf.org/html/rfc5196#page-9>
- [74] [CITE@en[RFC 4482 - CIPID: Contact Information for the Presence Information Data Format]] ([TIME[2011-11-20 21:10:10 +09:00]] 版) <http://tools.ietf.org/html/rfc4482#section-7>
]REFS]

[73] >>72 では省略時の既定値が [CODE(lang)@en[[[i-default]]]] です。

[75] [CITE[Web Application Description Language]]
( ([TIME[2009-09-10 03:59:24 +09:00]] 版))
<http://www.w3.org/Submission/2009/SUBM-wadl-20090831/#x3-80002.3>

[76] [CITE@en[Web Applications 1.0 r7421 Encourage lang=[SPAN[']][SPAN[']] on root element.]]
( ([TIME[2012-09-29 03:44:00 +09:00]] 版))
<http://html5.org/tools/web-apps-tracker?from=7420&to=7421>


[77] [CITE@en[Re: xml:lang in the light of error frequencies]]
( ([[Ian Hickson]] 著, [TIME[2008-08-12 19:12:39 +09:00]] 版))
<http://lists.w3.org/Archives/Public/public-html/2008Aug/0301.html>

[81] [CITE@en[Web Applications 1.0 r7894     Don't set the language when it's just spaces.]]
( ([TIME[2013-06-05 05:27:00 +09:00]] 版))
<http://html5.org/tools/web-apps-tracker?from=7893&to=7894>

[82] [CITE[''''''[''''''whatwg'''''']'''''' HTML: A DOM attribute that returns the language of a node]]
( ([TIME[2013-07-13 09:28:35 +09:00]] 版))
<http://lists.whatwg.org/pipermail/whatwg-whatwg.org/2013-July/040044.html>

[83] [CITE[''''''[''''''whatwg'''''']'''''' HTML: A DOM attribute that returns the language of a node]]
( ([TIME[2013-09-17 00:43:23 +09:00]] 版))
<http://lists.whatwg.org/pipermail/whatwg-whatwg.org/2013-September/040846.html>

[84] [CITE@en[Bug 23512 – API to expose actual language of a node, to aid scripts doing localisation and CJK editors during copy&paste and drag&drop]]
( ([TIME[2013-10-14 23:00:35 +09:00]] 版))
<https://www.w3.org/Bugs/Public/show_bug.cgi?id=23512>

[85] [CITE@en[XHTML+RDFa 1.1 - Second Edition]]
( ([TIME[2013-08-15 17:11:45 +09:00]] 版))
<http://www.w3.org/TR/2013/REC-xhtml-rdfa-20130822/#s_xhtmlrdfa>

[86] [CITE@en[HTML+RDFa 1.1]]
( ([TIME[2013-08-20 15:49:04 +09:00]] 版))
<http://www.w3.org/TR/2013/REC-html-rdfa-20130822/#additional-rdfa-processing-rules>

[87] [CITE@en-US[XML Binding Language (XBL) 2.0]]
( ([TIME[2007-03-16 22:20:16 +09:00]] 版))
<http://www.w3.org/TR/2007/CR-xbl-20070316/#forwarding0>

[88] [CITE@EN[XPath and XQuery Functions and Operators 3.0]]
( ([TIME[2014-04-08 07:02:07 +09:00]] 版))
<http://www.w3.org/TR/xpath-functions-3/#func-lang>

[89] [CITE@en-US[Internationalization Tag Set (ITS) Version 1.0]]
( ([TIME[2007-04-03 09:11:18 +09:00]] 版))
<http://www.w3.org/TR/its/#language-information>

[90] [CITE@en-US[Internationalization Tag Set (ITS) Version 2.0]]
( ([TIME[2013-10-27 19:39:43 +09:00]] 版))
<http://www.w3.org/TR/its20/#language-information>

[91] [CITE@en[Authoring HTML: Language declarations]]
( ([TIME[2014-05-29 21:20:34 +09:00]] 版))
<http://www.w3.org/TR/2014/NOTE-i18n-html-tech-lang-20140603/>

[92] [CITE@en[Bug 26951 – why do these examples of <html> lack the lang attribute?]]
( ([TIME[2014-10-02 13:04:16 +09:00]] 版))
<https://www.w3.org/Bugs/Public/show_bug.cgi?id=26951#c7>

[93] [CITE[The Platform for Privacy Preferences 1.0 (P3P1.0) Specification]]
( ([TIME[2002-04-16 22:03:48 +09:00]] 版))
<http://www.w3.org/TR/P3P/#multiple>

[6] [CITE@en[Proposals/dropxmlattributes - SVG]]
([TIME[2015-01-30 22:52:07 +09:00]] 版)
<https://www.w3.org/Graphics/SVG/WG/wiki/Proposals/dropxmlattributes>

[9] [CITE[Issue 341854 - chromium - Remove vestigal xml:base support - An open-source project to help move the web forward. - Google Project Hosting]]
([TIME[2015-01-31 13:03:50 +09:00]] 版)
<https://code.google.com/p/chromium/issues/detail?id=341854>

[20] [CITE@en[16489 – Retrieve element language]]
([TIME[2015-08-04 13:58:51 +09:00]] 版)
<https://www.w3.org/Bugs/Public/show_bug.cgi?id=16489>

[FIG(quote)[
[FIGCAPTION[
[32] [CITE@en[RFC 7749 - The "xml2rfc" Version 2 Vocabulary]]
([TIME[2016-02-04 22:54:51 +09:00]] 版)
<https://tools.ietf.org/html/rfc7749#section-2.33.11>
]FIGCAPTION]

>  The natural language used in the document (defaults to "en").

]FIG]


[33] [CITE@en[Editorial: add lang attribute to most examples · whatwg/html@ea5c6a2]]
([TIME[2016-04-19 11:42:16 +09:00]] 版)
<https://github.com/whatwg/html/commit/ea5c6a25d154f2c2d3f32cfc5148b05c6f4be30b>

[34] [CITE[LANG attribute list]]
([TIME[2016-07-21 08:56:13 +09:00]])
<https://cdn.rawgit.com/operasoftware/devopera-static-backup/master/http/devfiles.myopera.com/articles/572/langlist-url.htm>

[38] [CITE@EN[XPath and XQuery Functions and Operators 3.1]]
([TIME[2017-03-21 16:02:06 +09:00]])
<https://www.w3.org/TR/2017/REC-xpath-functions-31-20170321/#func-lang>

[43] [CITE@en[23512 – API to expose actual language of a node, to aid scripts doing localisation and CJK editors during copy&paste and drag&drop]]
([TIME[2017-07-23 16:25:47 +09:00]])
<https://www.w3.org/Bugs/Public/show_bug.cgi?id=23512>

[59] [CITE@en[RFC 5323 - Web Distributed Authoring and Versioning (WebDAV) SEARCH]]
([TIME[2017-10-01 13:49:21 +09:00]])
<https://tools.ietf.org/html/rfc5323#section-5.12>

[FIG(quote)[
[FIGCAPTION[
[60] [CITE@en[RFC 5323 - Web Distributed Authoring and Versioning (WebDAV) SEARCH]]
([TIME[2017-10-01 13:49:21 +09:00]])
<https://tools.ietf.org/html/rfc5323#section-6>
]FIGCAPTION]

> Properties may be language-tagged using the xml:lang attribute (see
>    '''['''RFC4918''']''', Section 4.3).  The optional operators DAV:language-defined
>    (Section 5.12.1) and DAV:language-matches (Section 5.12.2) allow the
>    expression of conditions on the language tagging information.

]FIG]


[FIG(quote)[
[FIGCAPTION[
[61] [CITE@en[AMP HTML Specification – AMP]]
([TIME[2018-02-14 10:04:22 +09:00]])
<https://www.ampproject.org/docs/reference/spec>
]FIGCAPTION]

> XML-related attributes, such as xmlns, xml:lang, xml:base, and xml:space are disallowed in AMP HTML.

]FIG]


[FIG(quote)[
[FIGCAPTION[
[62] [CITE[Google「言語指定にlangは使うな」/公式発言]]
([TIME[2019-03-20 17:13:34 +09:00]])
<https://seopack.jp/seoblog/20161111-use-hreflang/>
]FIGCAPTION]

> Googleが見ていないというlang属性は、少なくともSEO目的では、使う意味は全くありません。かつては使われていたらしいが現在では特別な用途が見当たらない、という、いわばHTML界の「盲腸」のようなタグです。

]FIG]

[63] 
元の [[Google]] 社員の発言は検証していないが、
このページで引用している部分では、
[[Google]] は見出しのように「使うな」とは一言も言っていない。
もし本当に言っているなら、そこか見出しにするほど重要事項なのだから、
必ずそこを引用しているだろう。
つまり見出しはいわゆる釣りタイトルで捏造だ。 (本文に書いてないことを見出しにするのはかなりタチが悪い。)

[64] 
しかも [CODE[lang]] 属性を使っていないのは [[Google検索]]の話だけで、
それ以外の用法で使われないとは誰も言っていない。
[[HTML]] の知識がある人にとっては、
[[レンダリング]]や [CODE[:lang]] など [CODE[lang]]
属性が使われる場面がいくつかあることは常識ではないか。
それを「HTML界の「盲腸」のようなタグ」などと意味不明なことを書き、
専門家面して読者を騙そうとするのは誠実ではない。

[65] [CITE@en[Demos: Add lang="en" to html files by ricea · Pull Request #974 · whatwg/streams]]
([TIME[2019-05-31 15:07:08 +09:00]])
<https://github.com/whatwg/streams/pull/974>

[FIG(quote)[
[FIGCAPTION[
[66] [CITE@ja,en[最澄『末法燈明記(末法灯明記)』(漢文) * 戒律講説 * 真言宗泉涌寺派大本山 法楽寺]]
([TIME[2017-08-26T07:45:18.000Z]], [TIME[2021-01-06T07:44:28.222Z]])
<http://www.horakuji.com/lecture/nippon/mappoutoumyouki/kanbun.htm>
]FIGCAPTION]

> 
> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
> <html lang="ja,en">

]FIG]


[67] [CITE@en[rfc3863]]
([TIME[2021-06-10T01:38:29.000Z]])
<https://datatracker.ietf.org/doc/html/rfc3863#section-4.1.6>

[70] 
[CITE@ja[000132512.pdf]], [TIME[2022-04-15T17:51:47.000Z]], [TIME[2024-04-16T07:33:13.792Z]] <https://www.soumu.go.jp/main_content/000132512.pdf#page=45>

[71] >>70 これは [[RDFデータモデル]]の欠陥なのでは... 問題が見えにくく、運用者に押し付けるのはしんどいよなあ....

[94] 
[[RDF/XML]] ならまだ耐えられても [[RDFa]] はなあ...

[95] 
[[RDFデータモデル]]の欠陥というのは酷かもしれないが、かといって [[RDFa]] レベルでどうにかなる問題ではないし、
[[RDFa]] の書き方でがんばったところで対処できないケースも想定されるからなあ。 [[RDFa]] の設計思想が間違ってた、ってことになると [[RDFa]] がかわいそうw



