/
184.txt
345 lines (250 loc) · 16.4 KB
/
184.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
[2] [[HTML]] の [CODE(HTMLe)[[[a]]]] 要素・[CODE(HTMLe)[[[link]]]]
要素の [DFN[[CODE(HTMLa)[rel]] 属性]]は、
現在の文書から [CODE(HTMLa)[[[href]]]]
属性で指定された[[アンカー]]への関係を指定します。
* 仕様書
[REFS[
- [64] '''[CITE@en-GB-x-hixie[HTML Standard]] ([TIME[2015-01-16 08:47:54 +09:00]] 版) <https://html.spec.whatwg.org/#attr-link-rel>'''
- [35] '''[CITE@en-GB-x-hixie[HTML Standard]] ([TIME[2015-01-16 08:47:54 +09:00]] 版) <https://html.spec.whatwg.org/#attr-hyperlink-rel>'''
- [66] [CITE@en-GB-x-hixie[HTML Standard]] ([TIME[2015-01-16 08:47:54 +09:00]] 版) <https://html.spec.whatwg.org/#links>
-- [68] [CITE@en-GB-x-hixie[HTML Standard]] ([TIME[2015-01-16 08:47:54 +09:00]] 版) <https://html.spec.whatwg.org/#linkTypes>
-[26] [[RFC 4287]]
-- '''<http://tools.ietf.org/html/rfc4287#section-4.2.7.2>'''
- [34] '''[CITE@en[RFC 5988 - Web Linking]] ([TIME[2012-03-22 09:19:11 +09:00]] 版) <http://tools.ietf.org/html/rfc5988#section-5.3>'''
- [33] [CITE[The Atom Syndication Format 0.3 (PRE-DRAFT)]] ([TIME[2006-12-22 17:03:44 +09:00]] 版) <http://www.mnot.net/drafts/draft-nottingham-atom-format-02.html#rfc.section.3.4.1>
]REFS]
* 意味
** HTML
[60] [CODE(HTMLe)@en[[[a]]]] [[要素]]と [CODE(HTMLe)@en[[[area]]]]
[[要素]]、 [CODE(HTMLe)@en[[[link]]]] [[要素]]の [CODE(HTMLa)@en[[[rel]]]] [[属性]]は、
その[[要素]]が作成する[[リンク]]の種類を表します [SRC[>>64, >>35]]。
[3] [CODE(HTMLe)[a]] 要素の [CODE(HTMLa)[rel]] 属性であっても、
[[始点アンカー]]からではなく現在の文書からの関係と定義されているのですね。
[CODE(HTML)[[CODE(HTMLa)[rel]]=next]] のような関係を考えれば妥当な定義だと思います。
[65] [[リンク]]には[[外部資源へのリンク]]と[[ハイパーリンク]]があり、
そのどちらであるか (やその両方であるか、どちらでもないか) は
[CODE(HTMLa)@en[[[rel]]]] [[属性値]]によって決まります [SRC[>>66]]。
** 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.]]。
[15] [[Atom 0.3]] の [[Link construct]] の
[DFN[[CODE(XMLa)@en[[[rel]]]] [[属性]]]]は、
[[リンク]]が表現する[[関係]]の[[型]]を表します [SRC@en[[[Atom 0.3]]]]。
** HTTP
[41] [CODE(HTTP)@en[[[Link:]]]] 欄の [CODE(HTTP)@en[[[rel]]]] [[引数]]は、
[[Web Linking]] [[リンク]]における[[関係型]]を表します。 [SRC[>>34]]
* 属性値
** HTML
[61] [[HTML]] では、[[属性値]]は[[字句の間隔分離集合]]でなければ[['''なりません''']]
[SRC[>>64, >>35]]。各[[字句]]は、[[リンク型]]でなければなりません。
;; [[リンク型]]も参照。
[62] [[リンク型]]は、[[ASCII大文字・小文字不区別]]です。
[69] 原則として同じキーワードを複数指定しては[['''なりません''']] [SRC[>>68]]。
;; [70] [CODE(HTML)@en[[[up]]]] のように例外もあります。
[63] [CODE(HTMLa)@en[[[rel]]]] [[属性]]は、省略できますが、既定値がありません。
省略されている場合や[[利用者エージェント]]が認識する値が含まれていない場合は、
[CODE(HTMLe)@en[[[link]]]] [[要素]]にあっては[[リンク]]を作成は作成されず [SRC[>>64, >>66]]、
[CODE(HTMLe)@en[[[a]]]] [[要素]]や [CODE(HTMLe)@en[[[area]]]]
[[要素]]にあっては、始点と終点の間に[[ハイパーリンク]]が存在するという以上の関係が特に存在しない [SRC[>>35, >>66]] ことを表しています。
** 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] 値の[[意味]]については[[リンク関係型]]の項をご覧ください。
[28] この[[属性]]は[[必須]]ではありません。
[29] この[[属性]]が省略された場合、[[リンク関係型]]が [CODE(XML)@en[[[alternate]]]]
であるかのように扱わなければ[['''なりません''']] [SRC[[[RFC 4287]] 4.2.7.2.]]。
[16] [[Atom 0.3]] では、 [CODE(XMLa)@en[[[rel]]]] [[属性]]の値は [[Atom API]] 仕様案
<http://bitworking.org/projects/atom/draft-gregorio-09.html>
に列挙された値の1つでなければ[['''なりません''']]。
;; [[リンク型の一覧]]を参照。
[17] [[Atom 0.3]] では [CODE(XMLa)@en[[[rel]]]] [[属性]]は必須です [SRC@en[[[Atom 0.3]]]]。
** 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]]。
[48] [CODE(HTTP)@en[[[Link:]]]] 欄では、 [[Web Linking]] における[[リンク関係型]]を1つ以上含めることができます。
区切り文字は [CODE(charname)[[[SP]]]] 1文字でなければならないとされています。
[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
により特別に扱われることがあります。
* 処理
[71] [[HTML]] では、 [CODE(HTMLa)@en[[[rel]]]] [[属性値]]は[[間隔で分割]]して
[[ASCII大文字・小文字不区別]]でキーワードが含まれるか否か判定しなければ[['''なりません''']]
[SRC[>>68]]。
[67] [[リンク型]]を参照。
* 歴史
[1] ''WWW-Talk 1992: OO WWW: Re: indexes as links rather than documents'' <http://www.webhistory.org/www.lists/www-talk.1992/0292.html>:
[[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
[4] この属性の値は [CODE(HTML)[%[[LinkTypes]]]]
([[間隔]]で分離した[[連結型]]の並び) です。
[[SGML]] 的には [CODE(SGML)[[[CDATA]]]] です。
この属性の値は大文字・小文字を区別しません。
(が、小文字で使われることが多いようです。)
[5] この属性は省略可能です。
[CODE(HTMLa)[rel]] も [CODE(HTMLa)[[[rev]]]] もない[[連結]]は、
単純に関係する資源を指している程度の意味合いになります。
(詳しくは [[HTML//連結]]を参照してください。)
[REFS[
-[9] [[HTML 4]]
-- [CODE(HTMLa)[rel]] 属性
<http://www.w3.org/TR/html4/struct/links.html#adef-rel>
-- [CSECTION@en[12.1.2 ther link relationships]] <http://www.w3.org/TR/html4/struct/links.html#idx-link-2>
-- [CSECTION@en[12.3.1 Forward and reverse links]] <http://www.w3.org/TR/html4/struct/links.html#rev-link>
]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]] 版) <http://www.w3.org/TR/2002/WD-xhtml2-20021211/mod-attribute-collections.html#adef_attribute-collections_rel>
]REFS]
[25] [[XHTML2]] の第6次案で [[RDFa]] の一部とされ、[[属性値]]も1つの [[QName]]
に変更されました。
[REFS[
- [37] [CITE@en[- XHTML Metainformation Attributes Module]] ([TIME[2004-07-22 23:25:19 +09:00]] 版) <http://www.w3.org/TR/2004/WD-xhtml2-20040722/mod-metaAttributes.html#adef_metaAttributes_rel>
]REFS]
** HTML5
[REFS[
- [13]
[CITE[Re: rel/rev for <form> ?]] ([[Ian Hickson <ian@...>]] 著, [CODE[2007-11-01 01:12:49 +09:00]] 版) <http://permalink.gmane.org/gmane.org.w3c.whatwg.discuss/12299>
- [14]
[CITE[Re: hrefclass attribute ? -- semantics token reuse]] ([[Ian Hickson <ian@...>]] 著, [TIME[2007-11-01 01:34:07 +09:00]] 版) <http://permalink.gmane.org/gmane.org.w3c.whatwg.discuss/12300>
]REFS]
* 関連
[18] [CODE(XMLa)@en[[[rel]]]] が [CODE(XMLe)@en[[[alternate]]]] な [CODE(XMLe)@en[[[link]]]]
[[要素]]は特別で、 [CODE(XMLe)@en[atom:[[feed]]]] や
[CODE(XMLe)@en[atom:[[entry]]]] の[[子要素]]として使わなければならない回数が決まっています。
[6] 逆の (相補的な) 意味を持った [CODE(HTMLa)[[[rev]]]] 属性があります。
例えば
- 文書 A [SAMP(HTML)[<[CODE(HTMLe)[link]] [CODE(HTMLa)[href]]="docB" [CODE(HTMLa)[rel]]="[VAR[foo]]" />]]
と
- 文書 B [SAMP(HTML)[<[CODE(HTMLe)[link]] [CODE(HTMLa)[href]]="docA" [CODE(HTMLa)[rev]]="[VAR[foo]]">]]
は同義です。
[7] 値である[[連結型]]の意味は [CODE(HTMLa)[[[profile]]]]
の支配下にあると一般に考えられています。
* 統計
[REFS[
- [20] [CITE@en[MAMA: Hyperlinks - Opera Developer Community]] ([TIME[2008-11-25 20:43:54 +09:00]] 版) <http://dev.opera.com/articles/view/mama-hyperlinks/#a>
- [21] [CITE@en[MAMA: HEAD structure - Opera Developer Community]] ([TIME[2008-11-25 20:44:45 +09:00]] 版) <http://dev.opera.com/articles/view/mama-head-structure/#link>
]REFS]
* 例
[FIG[
[REFS[
- [11]
[CITE@ja[気象庁 Japan Meteorological Agency]] ([[気象庁 Japan Meteorological Agency]] 著, [CODE[2007-07-16 21:39:02 +09:00]] 版) <http://www.jma.go.jp/jma/index.html>
]REFS]
>
[PRE(HTML bad example code)[
<link rel="気象庁ホーム" href="http://www.jma.go.jp/">
]PRE]
]FIG]
;; [38] [CODE(HTMLa)@en[[[title]]]] の誤り?
[FIG[
[REFS[
-[12]
[CITE@ja[Adobe: アドビの教育ソリューション:CS3 Web Premium]] ([CODE[2007-08-02 21:53:04 +09:00]] 版) <http://www.adobe.com/jp/education/products/creativesuite/web/?xNavEdu=jpWS>
]REFS]
>
[PRE(HTML bad example code)[
<div id="fma" class="fma" >
<img src="http://wwwimages.adobe.com/www.adobe.com/jp/education/products/creativesuite/images/95603_edu_web_editions.jpg" width="754" height="290" alt="Adobe Creative Suite 3 Web Premiumは、Webサイトやアプリケーション、モバイルコンテンツの開発・管理のためのトータルソリューションを教職員や学生に提供します。" />
</div>
<ul id="cs3nav" class="tab menu compact">
<li class="on" id="n141"><a name="higher_ed" rel="higher_ed" href="/jp/education/products/creativesuite/web/ssi/iframe/higher_education.html" target="cs3-messaging">大学</a></li>
<li class="off" id="q529"><a name="k12" rel="k12" href="/jp/education/products/creativesuite/web/ssi/iframe/k12.html" target="cs3-messaging">小・中・高等学校</a></li>
<li class="off" id="f230"><a name="students" rel="students" href="/jp/education/products/creativesuite/web/ssi/iframe/students.html" target="cs3-messaging">学生</a></li>
<li class="off" id="h852"><a name="pre_vs_std" rel="pre_vs_std" href="/jp/education/products/creativesuite/web/ssi/iframe/premium_vs_standard.html" target="cs3-messaging">PremiumとStandardを比較</a></li>
<li class="off"><a name="featuretour" rel="featuretour" href="/jp/education/products/creativesuite/web/ssi/iframe/feature_tour.html" target="cs3-messaging">機能ツアー</a></li>
<li class="off" id="s718"><a name="details" rel="details" href="/jp/education/products/creativesuite/web/ssi/iframe/product_overview.html" target="cs3-messaging">製品の詳細</a></li>
</ul>
]PRE]
]FIG]
;; [39] なぜ [CODE(HTMLa)@en[[[rel]]]] を使っているのかわからない。
[FIG[
[REFS[
- [22] [[livedoor Reader]]
]REFS]
><img src="/img/icon/text_small.gif" rel="Control:font(-1)">
]FIG]
[FIG[
[23]
[PRE(XML example code)[
<link rel='http://schemas.google.com/g/2005#batch' type='application/atom+xml' href='http://www.google.com/calendar/feeds/japanese__ja%40holiday.calendar.google.com/public/basic/batch'/>
]PRE]
[REFS[
- [40] [CITE[日本の祝日]] ([TIME[2008-12-08 14:27:28 +09:00]] 版) <http://www.google.com/calendar/feeds/japanese__ja%40holiday.calendar.google.com/public/basic>
]REFS]
]FIG]
* メモ
[10]
[CITE[rel-faq - Microformats]] <http://microformats.org/wiki/RelFAQ>
[50] [CITE@en[RDFa Core 1.1 - Second Edition]]
( ([TIME[2013-08-15 17:12:47 +09:00]] 版))
<http://www.w3.org/TR/rdfa-core/#A-rel>
[51] [CITE@en[RDFa Core 1.1 - Second Edition]]
( ([TIME[2013-08-15 17:12:47 +09:00]] 版))
<http://www.w3.org/TR/rdfa-core/#h4_use-of-curies-in-specific-attributes>
[52] [CITE@en[RDFa Core 1.1 - Second Edition]]
( ([TIME[2013-08-15 17:12:47 +09:00]] 版))
<http://www.w3.org/TR/rdfa-core/#h4_use-of-curies-in-specific-attributes>
[53] [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/#A_rel>
[54] [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/#extensions-to-the-html5-syntax>
[55] [CITE@en[Web Applications 1.0 r4515 Allow <link itemprop> without rel=''.]]
( ([TIME[2010-01-06 18:04:00 +09:00]] 版))
<http://html5.org/tools/web-apps-tracker?from=4514&to=4515>
[56] [CITE@en[Web Applications 1.0 r6388 Disallow <link> from having both rel='' and itemprop=''. This might change back if there are compelling use cases, but in the meantime it seems like this is likely to catch errors. This also effectively disallows rel='' on <link>s in <body>.]]
( ([TIME[2011-08-10 05:08:00 +09:00]] 版))
<http://html5.org/tools/web-apps-tracker?from=6387&to=6388>
[57] [CITE@en[RFC 7033 - WebFinger]]
( ([TIME[2014-10-26 16:32:10 +09:00]] 版))
<https://tools.ietf.org/html/rfc7033#section-4.3>
[58] [CITE@en[RFC 7033 - WebFinger]]
( ([TIME[2014-10-26 16:32:10 +09:00]] 版))
<https://tools.ietf.org/html/rfc7033#section-4.4.4.1>
[59] [CITE[Extensible Resource Descriptor (XRD) Version 1.0]]
( ([TIME[2010-11-01 20:25:40 +09:00]] 版))
<http://docs.oasis-open.org/xri/xrd/v1.0/xrd-1.0.html#link.attribute.rel>