[2] [[HTML]] の [CODE(HTMLe)[[[a]]]] 要素・[CODE(HTMLe)[[[link]]]]
要素の [DFN[[CODE(HTMLa)[rel]] 属性]]は、
現在の文書から [CODE(HTMLa)[[[href]]]]
属性で指定された[[アンカー]]への関係を指定します。
* 仕様書
[REFS[
- [35] [[HTML Living Standard]]
-[26] [[RFC 4287]]
-- ''''''
- [34] '''[CITE@en[RFC 5988 - Web Linking]] ([TIME[2012-03-22 09:19:11 +09:00]] 版) '''
]REFS]
* 意味
** HTML
[3] [CODE(HTMLe)[a]] 要素の [CODE(HTMLa)[rel]] 属性であっても、
[[始点アンカー]]からではなく現在の文書からの関係と定義されているのですね。
[CODE(HTML)[[CODE(HTMLa)[rel]]=next]] のような関係を考えれば妥当な定義だと思います。
** Atom
[27] [CODE(XMLe)@en[[[atom:link]]]] [[要素]]の [CODE(XMLa)@en[[[rel]]]]
[[属性]]は[[リンク関係型]]を表します [SRC[[[RFC 4287]] 4.2.7.2.]]。
[32] [CODE(XMLe)@en[[[atom:link]]]] [[要素]]の [CODE(XMLa)@en[[[rel]]]]
[[属性]]は[[リンク]]の[[意味]]を説明するものであって、 [[Atom処理器]]に特定の動作を求めるものではありません
[SRC[[[RFC 4287]] 4.2.7.2.]]。
** HTTP
[41] [CODE(HTTP)@en[[[Link:]]]] 欄の [CODE(HTTP)@en[[[rel]]]] [[引数]]は、
[[Web Linking]] [[リンク]]における[[関係型]]を表します。 [SRC[>>34]]
* 構文
** HTTP
[42] [CODE(HTTP)@en[[[Link:]]]] 欄では同じ名前の[[引数]]を複数指定することもできますが、
[CODE(HTTP)@en[[[rel]]]] [[引数]]は複数使っては[['''なりません''']] [SRC[>>34]]。
2つ目以降は構文解析時に無視されます [SRC[>>34]]。
[43] [CODE(HTTP)[[[;]]]] や
[CODE(HTTP)[[[,]]]] を含むなら、 [CODE(char)[[["]]]] で括って[[引用文字列]]としなければ[['''なりません''']]
[SRC[>>34]]。
[44] 複数の値を含む場合も、構文上、[[引用文字列]]とする必要があります。
[FIG[
[FIGCAPTION[
[45] 値の構文 [SRC[>>34]]
]FIGCAPTION]
[PRE(ABNF code)[
relation-types = relation-type
| <"> relation-type *( 1*SP relation-type ) <">
relation-type = reg-rel-type | ext-rel-type
reg-rel-type = LOALPHA *( LOALPHA | DIGIT | "." | "-" )
ext-rel-type = URI
]PRE]
]FIG]
;; [46] [CODE(char)[[[=]]]] や [CODE(char)[[['''#''']]]] などは引用符なしでも使えるようです。
[47] [[拡張関係型]]を使う時は、[[絶対URL]]として表さなければなりません [SRC[>>34]]。
* データ型
** HTML4 の定義
[4] この属性の値は [CODE(HTML)[%[[LinkTypes]]]]
([[間隔]]で分離した[[連結型]]の並び) です。
[[SGML]] 的には [CODE(SGML)[[[CDATA]]]] です。
この属性の値は大文字・小文字を区別しません。
(が、小文字で使われることが多いようです。)
** Atom
[30] [CODE(XMLe)@en[[[atom:link]]]] [[要素]]の [CODE(XMLa)@en[[[rel]]]]
[[属性値]]は、 [[RFC 3987]] の [CODE(ABNF)@en[[[isegment-nz-nc]]]] または
[CODE(ABNF)@en[[[IRI]]]] いずれかの[[生成規則]]に[[一致]]する[[文字列]]でなければ[['''なりません''']]
[SRC[[[RFC 4287]] 4.2.7.2.]]。
[31] 値の[[意味]]については[[リンク関係型]]の項をご覧ください。
** HTTP
[48] [CODE(HTTP)@en[[[Link:]]]] 欄では、 [[Web Linking]] における[[リンク関係型]]を1つ以上含めることができます。
区切り文字は [CODE(charname)[[[SP]]]] 1文字でなければならないとされています。
* 既定値
** HTML4 の場合
[5] この属性は省略可能です。
[CODE(HTMLa)[rel]] も [CODE(HTMLa)[[[rev]]]] もない[[連結]]は、
単純に関係する資源を指している程度の意味合いになります。
(詳しくは [[HTML//連結]]を参照してください。)
** Atom
[28] この[[属性]]は[[必須]]ではありません。
[29] この[[属性]]が省略された場合、[[リンク関係型]]が [CODE(XML)@en[[[alternate]]]]
であるかのように扱わなければ[['''なりません''']] [SRC[[[RFC 4287]] 4.2.7.2.]]。
** HTTP
[49] [CODE(HTTP)@en[[[Link:]]]] 欄の [CODE(HTTP)@en[[[rel]]]] 引数は構文上必須ではなく、
省略された場合当該 [[Web Linking]] [[リンク]]は[[リンク関係型]]を有しないことになります。
しかし一方で [[Web Linking]] における[[リンク]]の定義で[[リンク関係型]]が存在しないケースは考慮されておらず、
どのような意味を持ち、どう処理されるべきなのかは明確になっていません。
* レンダリング
[8] ([CODE(HTMLe)[[[link]]]] 要素だけでなく [CODE(HTMLe)[a]]
要素であっても) [CODE(HTMLa)[rel]] 属性のついた
[CODE(HTMLe)[[[a]]]] 要素によるリンクの情報も誘導棒などの誘導情報として UA
により特別に扱われることがあります。
[[#comment]]
** 歴史
[1] ''WWW-Talk 1992: OO WWW: Re: indexes as links rather than documents'' :
[[HTML]] における [Q[[CODE(HTMLa)[rel]]]] という属性名の誕生の瞬間。
[9] >>1 以前から (遅くても1992年1月には) [CODE(HTMLe)[a]]
要素には [CODE(HTMLa)[[[type]]]] 属性が定義されていました。
この属性は[[連結型]]を指定するもので、
1993年1月ごろまで残っていましたが、1992年末〜1993年の議論の結果
Tim は [CODE(HTMLa)[rel]] という名前を選んだようです。
もっとも、1992年の [CODE(HTMLa)[type]] も 1993年の [CODE(HTMLa)[rel]]
も、連結型 (関係) を指定するのだという意味と、
登録制にするのが良かろうということが決まっていただけで、
実際に指定できる値はまったく決まっていませんでした。
(経験が少なすぎて決め兼ねるということだったようです。)
** HTML4
[REFS[
-[9] [[HTML 4]]
-- [CODE(HTMLa)[rel]] 属性
-- [CSECTION@en[12.1.2 ther link relationships]]
-- [CSECTION@en[12.3.1 Forward and reverse links]]
]REFS]
** XHTML2
[24] [[XHTML2]] の最初の[[作業原案]]で [CODE(HTMLa)@en[[[href]]]] [[属性]]は[[大域属性]]に昇格しましたが、
[CODE(HTMLa)@en[[[rel]]]] や [CODE(HTMLa)@en[[[rev]]]] は放置されていました。
しかし、2つ目の[[作業原案]]で両者も[[大域属性]]となりました。
[REFS[
- [36] [CITE@en[- XHTML Attribute Collections]] ([TIME[2002-12-12 23:58:38 +09:00]] 版)
]REFS]
[25] [[XHTML2]] の第6次案で [[RDFa]] の一部とされ、[[属性値]]も1つの [[QName]]
に変更されました。
[REFS[
- [37] [CITE@en[- XHTML Metainformation Attributes Module]] ([TIME[2004-07-22 23:25:19 +09:00]] 版)
]REFS]
** HTML5
[REFS[
- [13]
[CITE[Re: rel/rev for