[1] [[HTML]] の [CODE(HTMLe)[[[a]]]] 要素・[CODE(HTMLe)[[[link]]]] 要素の
[DFN[[CODE(HTMLa)[hreflang]] [[属性]]]]、 [[Atom]] の [CODE(XMLe)@en[[[atom:link]]]]
[[要素]]の [DFN[[CODE(XMLa)@en[[[hreflang]]]] [[属性]]]]は、
[CODE(HTMLa)[[[href]]]] 属性によって指定された[[資源]]の基底[[言語]]を指定します
[SRC[[[RFC 4287]] 4.2.7.4.]]。

* 仕様書

[REFS[
- [15] [[HTML]]
-[10] [CITE@en[RFC 4287 - The Atom Syndication Format]] ([TIME[2009-05-20 11:24:12 +09:00]] 版) <http://tools.ietf.org/html/rfc4287#section-4.2.7.4>
- [16] [CITE@en[RFC 5988 - Web Linking]] ([TIME[2012-03-22 09:19:11 +09:00]] 版) <http://tools.ietf.org/html/rfc5988#section-5.4>
]REFS]

* 意味

[14] [CODE(XMLa)@en[[[rel]]]] [[属性]]に [CODE(XML)@en[[[alternate]]]]
が指定されている場合、 [CODE(XMLa)@en[[[hreflang]]]] [[属性]]との併用は[[エントリー]]の[[翻訳]]版であることを暗示しています
[SRC[[[RFC 4287]] 4.2.7.4.]]。

[18] [[HTTP]] の [CODE(HTTP)@en[[[Link:]]]] 欄に指定された場合、当該[[リンク]]先の [[URL]]
を[[参照解決]]した場合に得られる[[言語]]の[[ヒント]]を表します。 [SRC[>>16]]

-*-*-

[27] 実際上 [CODE[<[[link]] [[rel=alternate]]>]] 以外では
[CODE[hreflang]] [[属性]]を指定しても特に意味はありません。

* 属性値

** データ型

[4] [[HTML4]] では、この属性は [CODE(SGML)[%[[LanguageCode]]]] ([CODE[langcode]])
です。つまり、 [[IETF]] の[[言語札]]を指定します。
[[SGML]] 的には [CODE(SGML)[[[NAME]]]] です。

[12] [CODE(XMLe)@en[[[atom:link]]]] [[要素]]の [CODE(XMLa)@en[[[hreflang]]]]
[[属性値]]は [[RFC 3066]] [[言語タグ]]でなければ[['''なりません''']]
[SRC[[[RFC 4287]] 4.2.7.4.]]。

[13] [[Atom]] [[RELAX NG]] [[スキーマ]]上の[[データ型]]は [CODE(XML)@en[[[atomLanguageTag]]]]
です [SRC[[[RFC 4287]] 4.2.7.4.]]。

*** HTTP

[21] [[HTTP]] の [CODE(HTTP)@en[[[Link:]]]] 欄の [CODE(HTTP)@en[[[hreflang]]]]
[[引数]]では、 [[RFC 5646]] の[[言語タグ]]の構文が参照されています。 [SRC[>>16]]

;; [22] [[ABNF]] 構文から参照されているだけで、 [[RFC]] 上明確に要件として定められているわけではありません。
([[IETF]] の仕様ではよくあること。)

[23] [[引用符]]で括る構文は認められていません。

** 既定値

[5] この属性は省略可能です。[[既定値]]は特にありません。

** 複数指定

[19] [CODE(HTTP)@en[[[Link:]]]] 欄では複数個 [CODE(HTTP)@en[[[hreflang]]]] [[引数]]を指定できます。
その場合、複数の[[言語]]が利用可能であることを表します。 [SRC[>>16]]

[20] 複数個同じ[[言語]]を指定することは特に禁止されていませんが、その意味も規定されていません。

* 歴史

** HTML4

[REFS[
-[8] [[HTML 4]]
-- [CODE(HTMLa)[hreflang]] 属性 
<IW:HTML4:"struct/links.html#adef-hreflang">
-- [CSECTION[12.1.5 Internationalization and links]]
<IW:HTML4:"struct/links.html#idx-link-4">
]REFS]

[74] 
[[HTML]]
由来で 
[[DTBook]] の [CODE[link]] [[要素]]にもありました。


** Atom

[17] [[HTML]] の[[リンク]]をモデルにした [[Atom]] の [CODE(XMLe)@en[[[atom:link]]]]
[[要素]]や [[HTTP]] の [CODE(HTTP)@en[[[Link:]]]] 欄にも [CODE(HTMLa)@en[[[hreflang]]]]
は取り入れられました。

* 関連

[2] この属性は [CODE(HTMLa)[[[href]]]] 属性が指定されているときのみ使って構いません。

[3] この属性は [CODE(HTMLa)[[[lang]]]] 属性が要素の内容の言語を指定するのに対して、
リンク先資源の言語を指定します。

といっても、リンク先資源自体が言語情報を持っているかもしれません。
あくまでも [CODE(HTMLa)[hreflang]] 属性はリンク先に飛ぶ前に利用者や UA
が判断するための材料として用意されているようです。

とはいうものの、 [CODE(HTMLa)[hreflang]] の値から [[HTTP]]
の [CODE(HTTP)[[[Accept-Language]]]] 
を生成するような使い方をしても面白いかもしれません。


[7]
姉妹属性 [CODE(HTMLa)[[[type]]]], [CODE(HTMLa)[[[charset]]]] もよろしく。



[[#comment]]


** レンダリング

[6] 日本語で書かれた文書の著者のスタイル・シートで、
[SAMP(CSS)[ [hreflang]:[[not]]([hreflang|="ja"])::[[after]] {[[content]]: " (英語) "} ]]
のような使われ方がされることがあります。 

[[#comment]]

** 例

[9]
[PRE(HTML example)[
<[CODE(HTMLe)[li]]><[CODE(HTMLe)[a]] [CODE(HTMLa)[href]]="[CODE(URI)[http://www.w3.org/2002/Talks/orf2002-xhtml2/]]"
[CODE(HTMLa)[hreflang]]="[CODE(lang)[en]]">XHTML 2.0</[CODE(HTMLe)[a]]> (in <[CODE(HTMLe)[span]] [CODE(HTMLa)[lang]]="[CODE(lang)[ja]]" [CODE(HTMLe)[xml:lang]]="[CODE(lang)[ja]]"
>日本語</[CODE(HTMLe)[span]]>/Japanese) by Masayasu Ishikawa,
at <[CODE(HTMLe)[a]] [CODE(HTMLa)[href]]="[CODE(URI)[http://www.kri.sfc.keio.ac.jp/ORF/2002/]]" [CODE(HTMLa)[hreflang]]="[CODE(lang)[ja]]"><[CODE(HTMLe)[abbr]]
[CODE(HTMLa)[title]]="Shonan Fujisawa Campus">SFC</[CODE(HTMLe)[abbr]]> Open Research Forum 2002</[CODE(HTMLe)[a]]>,
22 November 2002.</[CODE(HTMLe)[li]]>
]PRE]

出典: [CITE[W3C HTML Home Page]] <http://www.w3.org/MarkUp/#slides>
(2004年7月付け)

[[#comment]]

** メモ

[[#comment]]


* メモ

[11] [CITE@en[Remove the HTMLAreaElement.hreflang and type IDL attributes · whatwg/html@790479a]]
([TIME[2015-11-11 21:30:53 +09:00]] 版)
<https://github.com/whatwg/html/commit/790479ab1ba143efc27d1f92cd0465627df48fb0>

[24] [CITE@en[Obsolete hreflang and type content attributes on <area> · whatwg/html@c49398f]]
([TIME[2015-11-11 21:34:07 +09:00]] 版)
<https://github.com/whatwg/html/commit/c49398f8050847066ee073a23a93529f13363ae5>

[25] [CITE@ja[Google ウェブマスター向け公式ブログ: ウェブマスター ツールで hreflang のアノテーションに関するトラブルシューティングができるようになりました]]
([TIME[2016-02-08 11:11:56 +09:00]] 版)
<http://googlewebmastercentral-ja.blogspot.jp/2014/07/troubleshooting-hreflang-annotations-in.html>

[26] [CITE@en[Linking: borrow HTML attributes, explicitly allow nested links, cleanup]]
( ([[AmeliaBR]]著, [TIME[2016-06-22 21:54:34 +09:00]]))
<https://github.com/w3c/svgwg/commit/33f85d2bdd20e7d33eedff77b85b10c8451db397>