[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]] 版)
- [16] [CITE@en[RFC 5988 - Web Linking]] ([TIME[2012-03-22 09:19:11 +09:00]] 版)
]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]]
* 属性値
** データ型
[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]] 属性
-- [CSECTION[12.1.5 Internationalization and links]]
]REFS]
** 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]]
(2004年7月付け)
[[#comment]]
** メモ
[[#comment]]
* メモ