[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.]]。 [21] [[HTTP]] の [CODE(HTTP)@en[[[Link:]]]] 欄の [CODE(HTTP)@en[[[hreflang]]]] [[引数]]では、 [[RFC 5646]] の[[言語タグ]]の構文が参照されています。 [SRC[>>16]] ;; [22] [[ABNF]] 構文から参照されているだけで、 [[RFC]] 上明確に要件として定められているわけではありません。 ([[IETF]] の仕様ではよくあること。) ** 既定値 [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 (in <[CODE(HTMLe)[span]] [CODE(HTMLa)[lang]]="[CODE(lang)[ja]]" [CODE(HTMLe)[xml:lang]]="[CODE(lang)[ja]]" >日本語/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 Open Research Forum 2002, 22 November 2002. ]PRE] 出典: [CITE[W3C HTML Home Page]] (2004年7月付け) [[#comment]] ** メモ [[#comment]] * メモ