-
Notifications
You must be signed in to change notification settings - Fork 4
/
61.txt
614 lines (477 loc) · 27.1 KB
/
61.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
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
[8] [[HTML]] の [DFN[[CODE(HTMLe)[a]] [[要素]]]]は、
[DFN[[[アンカー]]]] ([DFN[[[錨]]]]) を定義します。[[アンカー]]とは、
[[リンク]]の端点 ([[始点]]や[[終点]]) のことです。
元々 [CODE(HTMLe)[a]]
[[要素]]は[[始点]]にも[[終点]]にも使えるように定義されましたが、
現在は[[始点]]として使う
[WEAK[([[終点]]には [CODE(HTMLa)[[[id]]]] 属性を使う)]]
のが普通になっています。
[22]
仕様書:
- [[HTML 4]]
-- [CSECTION[12.2 The [CODE(HTMLe)[A]] element]]
<IW:HTML4:"struct/links.html#edef-A">
:[[内容模型]]:[CODE(SGML)@en[(%[[inline]];)* −([CODE(HTMLe)[a]])]]
(歴史的変遷 <http://suika.fam.cx/www/2004/html/content-a>)
:出現できる文脈:[CODE(SGML)@en[%inline]] な文脈
(歴史的変遷 <http://suika.fam.cx/www/2004/html/classes>)
:[[DOM界面]]:[CODE(DOMi)@en[[[HTMLAnchorElement]]]]
* 構文
[64] [[開始タグ]]と[[終了タグ]]は必須です。
[HISTORY[
[65] かつては [CODE[<a name>]] の[[終点アンカー]]を[[開始タグ]]のみで使う人もいましたが、
正式に認められていたことはありません。
]HISTORY]
* 属性
[FIG(short list)[ [53] [CODE(HTMLe)@en[a]] [[要素]]の[[内容属性]]
- [[共通属性]]
- [CODE(HTMLa)@en[download]]
- [CODE(HTMLa)@en[ping]]
- [CODE(HTMLa)@en[referrerpolicy]]
[HISTORY[
- [CODE(HTMLa)@en[headers][<a headers>]]
- [CODE(HTMLa)@en[folder][<a folder>]]
- [CODE[z][<a z>]]
]HISTORY]
]FIG]
,属性名 ,属性値型 ,既定値 ,意味 ,典拠
,[CODE(HTMLa)[[[accesskey]]]] ,[CODE(SGML)[%[[Character]]]] , , ,[HTML 4]
,[CODE(HTMLa)@en[[[alt]]]] , , , ,非標準 ,[[Windows Live Spaces]]
,[CODE(HTMLa)[[[appl]]]] , , ,[[Macintosh]] [[creator]] ,非標準 ,[[T-Time]]
,[CODE(HTMLa)[[[background]]]] , , ,背景実行モードで起動 ,非標準 ,[[T-Time]]
,[CODE(HTMLa)[[[bgcolor]]]] , , ,[[背景色]] ,非標準 ,[[T-Time]]
,[CODE(HTMLa)@en[[[bulletin-date]]]] , , , ,[[満期]] [DEL@en[([[IETF]] [[I-D]])]]
,[CODE(HTMLa)@en[[[bulletin-expires]]]] , , , ,[[満期]] [DEL@en[([[IETF]] [[I-D]])]]
,[CODE(HTMLa)@en[[[bulletin-image]]]] ,[CODE(SGML)@en[%[[URI]];]] , , ,[[満期]] [DEL@en[([[IETF]] [[I-D]])]]
,[CODE(HTMLa)@en[[[bulletin-text]]]] ,[CODE(SGML)@en[%[[Text]];]] , , ,[[満期]] [DEL@en[([[IETF]] [[I-D]])]]
,[CODE(HTMLa)@en[[[bvitemtype]]]] , , , ,非標準 ,[[Windows Live Spaces]]
,[CODE(HTMLa)[[[caption]]]] ,[CODE(SGML)[%[[Text]]]] , ,題 ,非標準 ,[[T-Time]]
,[CODE(HTMLa)[[[charset]]]] ,[CODE(SGML)[%[[Charset]]]] , , ,[HTML 4]
,[CODE(HTMLa)[[[charspace]]]] , , ,[[字間]] ,非標準 ,[[T-Time]]
,[CODE(HTMLa)[[[cmd]]]] , , ,[[命令]] ,非標準 ,[[T-Time]]
,[CODE(HTMLa)[[[coords]]]] ,[CODE(SGML)[%[[Coords]]]] , , ,[HTML 4]
,[CODE(HTMLa)@en[[[csover]]]] , , , ,非標準
,[CODE(HTMLa)@en[[[directkey]]]] , , , ,非標準 ,[Vodafone]
,[CODE(HTMLa)[[[entireword]]]] , , ,完全一致・部分一致 ,非標準 ,[[T-Time]]
,[CODE(HTMLa)@en[[[eswf]]]],,,,非標準,[[EMOBILE]]
,[CODE(HTMLa)[[[exe]]]] ,[[ファイル名]] , ,[[Windows]] [[実行可能ファイル]] ,非標準 ,[[T-Time]]
,[CODE(HTMLa)[[[href]]]] ,[CODE(SGML)[%[[URI]]]] , ,終点 ,[HTML 4]
,[CODE(HTMLa)@en[[[mce_href]]]] ,[CODE(SGML)@en[%[[URI]];]] , , ,非標準
,[CODE(HTMLa)[[[hreflang]]]] ,[CODE(SGML)[%[[LanguageCode]]]] , , ,[HTML 4]
,[CODE(HTMLa)@en[[[ijam]]]],,,,非標準,[[iモード]]
,[CODE(HTMLa)[[[indexstring]]]] , ,(なし) ,索引項目群 ,[[NC4]]
,[CODE(HTMLa)@en[[[iswf]]]],,,,非標準,[[EMOBILE]]
,[CODE(HTMLa)[[[key]]]] , , ,[[鍵語]] ,非標準 ,[[T-Time]]
,[CODE(HTMLa)@en[[[lcs]]]] , , , ,非標準 ,[[iモード]]
,[CODE(HTMLa)[[[linkcolor]]]] , , ,リンク色 ,非標準 ,[[T-Time]]
,[CODE(HTMLa)[[[linespace]]]] , , ,[[行間]] ,非標準 ,[[T-Time]]
,[CODE(HTMLa)@en[[[loop]]]] , , , ,非標準 ,[Vodafone]
,[CODE(HTMLa)@en[[[mailbody]]]] , , ,非標準 ,[Vodafone]
,[CODE(HTMLa)@en[[[measure]]]],,[CODE(HTML)@en[[[auto]]]],非標準,[[EMOBILE]]
,[CODE(HTMLa)@en[[[memoryname]]]] , , , ,非標準 ,[Vodafone]
,[CODE(HTMLa)[[[name]]]] , , ,終点アンカー名 ,[HTML 4]
,[CODE(XMLa)@en[[QN[rddl:[[nature]]] [http://www.rddl.org/]]]] ,[[URI]] , ,[[RDDL]] [[性質]] , ,[[RDDL]]
,[CODE(HTMLa)[[[newwindow]]]] ,([[真偽値属性]]) ,([[偽]]) ,新窓で開く ,"非標準, 非推奨 → [CODE(HTMLa)[[[target]]]]" ,[[T-Time]]
,[CODE(HTMLa)@en[[[nonumber]]]] , , ,番号なし ,非標準 ,[Vodafone]
,[CODE(HTMLa)[[[onto]]]] , , , ,非標準
,[CODE(HTMLa)[[[pointercolor]]]] , , ,現在頁指示子色 ,非標準 ,[[T-Time]]
,[CODE(HTMLa)[[[prop]]]] , , ,[[特性]]適用対象 ,非標準 ,[[T-Time]]
,[CODE(XMLa)@en[[QN[rddl:[[purpose]]] [http://www.rddl.org/]]]] ,[[URI]] , ,[[RDDL]] [[目的]] , ,[[RDDL]]
,[CODE(HTMLa)[[[rel]]]] ,[CODE(SGML)[%[[LinkTypes]]]] , ,関係 (順) ,[HTML 4]
,[CODE(HTMLa)[[[rev]]]] ,[CODE(SGML)[%[[LinkTypes]]]] , ,関係 (逆) ,[HTML 4]
,[CODE(HTMLa)[[[shadowcolor]]]] , , ,[[影]]の[[色]] ,非標準 ,[[T-Time]]
,[CODE(HTMLa)[[[shake]]]] , , ,揺れ表示 ,非標準 ,[[T-Time]]
,[CODE(HTMLa)[[[shape]]]] ,[CODE(SGML)[%[[Shape]]]] ,[CODE(HTML)[[[rect]]]] , ,[HTML 4]
,[CODE(HTMLa)@en[[[src]]]] ,[CODE(SGML)[%[[URI]]]] , , ,非標準 ,[Vodafone]
,[CODE(HTMLa)@en[[[soundstart]]]] , , , ,非標準 ,[Vodafone]
,[CODE(HTMLa)[[[style]]]] , , ,スタイル情報 ,[HTML4] %coreattr
,[CODE(HTMLa)[[[subpointercolor]]]] , , ,前頁指示子色 ,非標準 ,[[T-Time]]
,[CODE(HTMLa)[[[tabindex]]]] ,[CODE(SGML)[[[NUMBER]]]] , , ,[HTML 4]
,[CODE(HTMLa)[[[target]]]] , , , ,[HTML 4] 非推奨
,[CODE(HTMLa)[[[textcolor]]]] , , ,[[文字色]] ,非標準 ,[[T-Time]]
,[CODE(HTMLa)[[[tocstring]]]] , ,(なし) ,目次での標示 ,NC4
,[CODE(HTMLa)[[[type]]]] ,[CODE(SGML)[%[[ContentType]]]] , , ,[HTML 4]
,[CODE(HTMLa)@en[[[viblength]]]] , , , ,非標準 ,[Vodafone]
,[CODE(HTMLa)@en[[[vibration]]]] , , , ,非標準 ,[Vodafone]
,[CODE(HTMLa)@en[[[volume]]]] , , , ,非標準 ,[Vodafone]
,[CODE(HTMLa)[[[xsize]]]] , , ,[[文字]]の大きさ ,非標準 ,[[T-Time]]
[11] [CODE(HTMLe)[a]] 要素はアンカーを定義します。
[CODE(HTMLa)[name]] 属性や [CODE(HTMLa)[id]] 属性を使うと、
終点アンカーにすることができます。 [CODE(HTMLa)[href]]
属性を使うと、始点アンカーにすることができます。
この3つの属性は、1つも使わなくても構いませんし、3つとも使っても構いません。
* 状態
[56]
[FIG(list members)[
: [F[[CODE(DOMa)@en[relList]]]] : [CODE(DOMi)@en[DOMTokenList]]
]FIG]
* DOM インターフェイス
[70] [CODE(DOMi)@en[[[HTMLElement]]]],
[CODE(DOMi)@en[[[HTMLDatabinding]]]]
, ,[CODE(DOMi)@en[[[Anchor]]]] ([[JavaScript 1.1]])
, ,[CODE(DOMi)@en[[[Link]]]] ([[JavaScript 1.0]])
,[CODE(DOMm)@en[[[handleEvent]]]] ,[CODE(DOMi)@en[[[Link]]]] ([[JavaScript 1.2]])
,[CODE(DOMa)@en[[[hash]]]] ,[CODE(DOMi)@en[[[Link]]]] ([[JavaScript 1.0]])
,[CODE(DOMa)@en[[[host]]]] ,[CODE(DOMi)@en[[[Link]]]] ([[JavaScript 1.0]])
,[CODE(DOMa)@en[[[hostname]]]] ,[CODE(DOMi)@en[[[Link]]]] ([[JavaScript 1.0]])
,[CODE(DOMa)@en[[[href]]]] ,[CODE(DOMi)@en[[[Link]]]] ([[JavaScript 1.0]])
,[CODE(DOMa)@en[[[Methods]]]] ,[CODE(DOMi)@en[[[HTMLAnchorElement]]]] ([[WinIE 4]])
,[CODE(DOMa)@en[[[mimeType]]]]
,[CODE(DOMa)@en[[[name]]]] ,[CODE(DOMi)@en[[[Anchor]]]] ([[JavaScript 1.2]])
,[CODE(DOMa)@en[[[nameProp]]]]
,[CODE(DOMa)@en[[[pathname]]]] ,[CODE(DOMi)@en[[[Link]]]] ([[JavaScript 1.0]])
,[CODE(DOMa)@en[[[port]]]] ,[CODE(DOMi)@en[[[Link]]]] ([[JavaScript 1.0]])
,[CODE(DOMa)@en[[[protocol]]]] ,[CODE(DOMi)@en[[[Link]]]] ([[JavaScript 1.0]])
,[CODE(DOMa)@en[[[protocolLong]]]]
,[CODE(DOMa)@en[[[rel]]]] ,[CODE(DOMi)@en[[[HTMLAnchorElement]]]] ([[WinIE 4]])
,[CODE(DOMa)@en[[[rev]]]] ,[CODE(DOMi)@en[[[HTMLAnchorElement]]]] ([[WinIE 4]])
,[CODE(DOMa)@en[[[search]]]] ,[CODE(DOMi)@en[[[Link]]]] ([[JavaScript 1.0]])
,[CODE(DOMa)@en[[[tabIndex]]]] ,[CODE(DOMi)@en[[[HTMLAnchorElement]]]] ([[WinIE 4]])
,[CODE(DOMa)@en[[[target]]]] ,[CODE(DOMi)@en[[[Link]]]] ([[JavaScript 1.0]])
,[CODE(DOMa)@en[[[text]]]] ,"[CODE(DOMi)@en[[[Anchor]]]] ([[JavaScript 1.2]]), [CODE(DOMi)@en[[[Link]]]] ([[JavaScript 1.2]])"
,[CODE(DOMa)@en[[[urn]]]] ,[CODE(DOMi)@en[[[HTMLAnchorElement]]]] ([[WinIE 4]])
,[CODE(DOMa)@en[[[x]]]] ,"[CODE(DOMi)@en[[[Anchor]]]] ([[JavaScript 1.2]]), [CODE(DOMi)@en[[[Link]]]] ([[JavaScript 1.2]])"
,[CODE(DOMa)@en[[[y]]]] ,"[CODE(DOMi)@en[[[Anchor]]]] ([[JavaScript 1.2]]), [CODE(DOMi)@en[[[Link]]]] ([[JavaScript 1.2]])"
* 内容
[1] [CODE(HTML)[a]] 要素の子孫要素に [CODE(HTML)[a]] 要素は存在できません
[SRC[XHTML 1.0]]。
[2] つまり、[CODE(HTML)[a]] 要素の入れ子は禁止されています。なのにした場合の挙動は未定義ですが、可能性としては
- [3] 両方とも「意図したように」扱う。内側の [CODE(HTML)[a]] 要素の部分はリンク先が外側と違う、みたいな。
- [4] 外側の [CODE(HTML)[a]] 要素を無視する。
- [5] 内側の [CODE(HTML)[a]] 要素を無視する。
- [6] 外側の [CODE(HTML)[a]] 要素を、内側の [CODE(HTML)[a]] 要素の[[開始タグ]]直前で閉じる。
辺りがあるでしょう。
[7] [[WinIE 6.0]] の動作は >>4 です。
[20]
[CODE(HTMLe)[a]] を入れ子にすることはできません。
[27]
仕様書:
- [[HTML 4]] 12.2.2 Nested links are illegal
<IW:HTML4:"struct/links.html#idx-link-6">
- [[XHTML 1.0]]
<http://www.w3.org/TR/xhtml1/#prohibitions>
[28] '''文書中で一意であること''':
[[文書]]中で複数の [CODE(HTMLa)@en[[[href]]]] [[属性]]付き
[CODE(HTMLe)@en[[[a]]]] [[要素]]の[[内容]]の[[文字列]]が等しい時は、
その [CODE(HTMLa)@en[[[href]]]] [[属性]]の値 ([[リンク先]])
も等しいのが望ましいとする考え方があります。
この考え方に従うと、例えば
[PRE(HTML bad example code)[
あれの<a href="usage-1">使い方</a>や、
これの<a href="usage-2">使い方</a>。
]PRE]
は''好ましくない''ことになります。
この考え方の背景には、
[Q[同じように見えるものは同じように機能するべきだ (その方が分かりやすい)]]
という考察があります。
先の例は
[PRE(HTML example code)[
<a href="usage-1">あれの使い方</a>や、
<a href="usage-2">これの使い方</a>。
]PRE]
とした方がより分かりやすいと思われます。
[29]
''注意'': >>28 は絶対そうでなければならないというほどのことでもありません。
その場その場で文脈に応じて何が一番好ましいのか考える必要があります。
例えば、
[PRE(HTML example code)[
<p>あれ:
<a href="usage-1">使い方</a>、
<a href="example-1">実例</a>。</p>
<p>これ:
<a href="usage-2">使い方</a>、
<a href="example-2">実例</a>。</p>
]PRE]
は >>28 の例と内容は似ていますが、同じ対処法を採ることはできません。
無理に同じ方法を適用すると、
[PRE(HTML example code)[
<p><a href="usage-1">あれの使い方</a>、
<a href="example-1">あれの実例</a>。</p>
<p><a href="usage-2">これの使い方</a>、
<a href="example-2">これの実例</a>。</p>
]PRE]
とでもなるのでしょうが、かえって分かりにくいように思えます。
[30]
>>28-29 のような場合の別の対処法として、 [CODE(HTMLa)@en[[[title]]]]
[[属性]]によって説明を加えるのがよいとも言われます。
例えば >>29 の例では
[PRE(HTML example code)[
<p>あれ:
<a href="usage-1" title="あれの使い方">使い方</a>、
<a href="example-1" title="あれの実例">実例</a>。</p>
<p>これ:
<a href="usage-2" title="これの使い方">使い方</a>、
<a href="example-2" title="これの実例">実例</a>。</p>
]PRE]
となります。
これなら悪くはなさそうです。
[31] '''始点リンク内容は自己完結している方が良いか''':
[CODE(HTMLa)@en[[[href]]]] [[属性]]付き [CODE(HTMLe)@en[[[a]]]]
[[要素]]の[[内容]]の[[文字列]]はそれだけで[[リンク先]]がわかる方が良いと言われることがあります。
そしてその根拠として、[[文書]]中の[[リンク]]の一覧を抽出した時に良く分からないものが沢山出てきて困るというのが挙げられます。
(この[Q[根拠]]は >>28 の主張の根拠にも使われます。)
[32] >>31 のような主張は元々 [[here症候群]]への (誤った)
反論として生じたのではないかと考えられますが、
しばしば絶対的な基準であるかのように語られます。
確かに[[リンク]]一覧に [Q@en[[[here]]]] が20個も並んでいたり、
[Q[例]]が数十個あってそれぞれリンク先が違っていたりすると、
[[リンク]]一覧を抽出した意味も無くなります。
しかし [[HTML]] [[文書]]に対する[[リンク]]一覧はあくまで本来の表示に対する補助的な機能であるべきで、
それだけで完結させられるようにしろというのは主張に無理があります。
[CODE(HTMLe)@en[[[link]]]] [[要素]]ならともかく、
[CODE(HTMLe)@en[[[a]]]] [[要素]]は普通の[[文章]]中で[[リンク]]するための[[要素]]です。
[CODE(HTMLe)@en[[[a]]]] [[要素]]の[[リンク]]は元々[[文脈]]の中に存在しているのです。
適当な[[文]]から適当な[[単語]]を1つや2つ抜き出しても必ずしも意味のある使い方が期待できないのと同様、
[[リンク]]を[[文脈]]なしで抜き出してもさして役に立たなくて当然なのです。
(それを鑑みると、 [[Webブラウザ]]の[[リンク]]一覧は、
一覧中の項目を選ぶと本文中の対応する部分がどこか表示されるくらいの機能を備えているくらいでないと駄目でしょう。)
[69] [CODE[op]] (独自[[XML名前空間]])
* レンダリング
[39] [[ハイパーリンクの処理]]も参照。
[14] HTML 4 仕様書の触れるレンダリング例:
- 始点アンカー
-- 下線を引く
-- 色反転させる
-- 既読かどうかでレンダリング方法を変える
-- 活性化 (マウスで[[かちっ]], 鍵盤や音声で指示など) すると終点資源を取出す
(設定によってはそれを表示する)
- 終点アンカー
-- 特別にレンダリング方法を変えることはしないのが普通
[21]
[CODE(HTMLe)[a]] 要素によって定義されたリンクを[DFN[[[活性化]]]]すると、
UA は通常リンクをたどります [SRC[HTML 4 17.11.2]]。
* 処理
[41] [[ハイパーリンクの処理]]も参照。
* 不思議解釈
[9] 今更不思議マーク付けの説明なんて読んでも驚きはしないと
思っていたのですが、 [SAMP(HTML)[<a name="hogehoge">]]
で[Q[閉じタグ]] [SAMP[</a>]]
は無いのが普通とかいうのを読んで驚いてしまいました:-)
[23]
> <a href="#" title="このようになります">裏技大公開</a>
> title属性を使って説明をいれることが簡単にできるようになります。
HTMLの話をするとtitle要素というものもありますが、
これとは別にtitle属性というものもあり、共通の属性ということで
どの要素でも持っている属性です。
どの要素でもと言いながら、なぜ [CODE(HTMLe)[[[a]]]]
要素型を使っているのか。
そしてなぜ空の[[素片識別子]]の[[同文書参照]]への[[リンク]]としているのか。
不思議マークアッパーの行動はまさに不思議。
出典:
[CITE[マウスを重ねたときに説明をつける - Webデザインの教科書 :: オシャレチップス]]
<http://oshare.chips.jp/d_tech/text02.html>
(2005年4月付け、2005年4月現在)
[24]
歴史的にはともかく、 [CODE(HTMLe)[[[a]]]]
の中に入れることができるのは[[行内要素]]だけです。
にもかかわらず、 [CODE(HTMLe)[[[li]]]]
とかを入れられるという解説が未だに後を絶ちません・・・。
リスト項目をリンクにしたいと思うのはもっともですが、
できないものはできないのでしてね・・・。
[25]
'''終了タグの省略''':
[[終点アンカー]]として (つまり [CODE(HTMLa)@en[[[name]]]] 属性と共に)
使われている [CODE(HTMLe)@en[[[a]]]] 要素で[[終了タグ]]を省略したものがよく見られます。
(もちろん'''間違い'''です。)
解釈は実装依存になりますが、 [[Gecko]] だと[[ブロック要素]]の[[開始タグ]]が見つかるとそこでいったん中断し、
[[開始タグ]]の後に再度元の [CODE(HTMLe)@en[[[a]]]] [[開始タグ]]があるかのように扱われます。
[WEAK[(他の[[行内要素]]でも同じような感じ。)]]
だから同じ [CODE(HTMLa)@en[[[name]]]] が複数 (たぶん大量に)
出現したりしてしまいまして、おかしなことになります。
ちなみに [[W3C]] の仕様書で [[XMLspec]] から [[XHTML]]
に変換したものの中に [[XML]] の[[空要素]]の構文を使ったものが登場しまして、
[[Gecko]] が [[HTML]] として構文解析すると [CODE(XML)[/]]
はごみとみなされるので同じ現象が発生します。
@@
<a name=""> の終了タグ省略について
** 歴史
[34]
[CODE(HTMLe)@en[[[a]]]][[要素型]]は、[[HTML]]の最大の特徴の一つですから、
[[HTML]]の一番初めから存在した[[要素型]]だと考えられます。
[35] [[Line Mode Browser]]には、1991年2月の段階で既に
[CODE(HTMLa)@en[[[href]]]][[属性]]と[CODE(HTMLa)@en[[[name]]]][[属性]]が実装されています。
2月27日には[[要素]]内で[[タグ]]が使えるようになりました。
;; [CITE@en[Change History of Line Mode Browser]]
<http://www.w3.org/LineMode/User/Features.html>
[42]
@@ [CODE(HTMLa)@en[[[name]]]] vs [CODE(HTMLa)@en[[[id]]]]
@@ [CODE(HTMLe)@en[[[a]]]] enclosing [CODE(HTMLe)@en[[[h[VAR[n]]]]]]
** XHTML2
[47] [[XHTML 2.0]] ではすべての[[要素]]に [CODE(HTMLa)@en[[[href]]]]
[[属性]]が追加されたので [CODE(HTMLe)@en[[[a]]]] [[要素]]は不要になったはずですが、
なぜか最初の[[作業原案]]からずっと残されたままでした。
;; [CITE@en[- XHTML Hypertext Module]] ([TIME[2002-08-06 00:20:43 +09:00]] 版) <http://www.w3.org/TR/2002/WD-xhtml2-20020805/mod-hypertext.html>
** 実装
[17] [CODE(HTMLa)[a]] 要素は (意味的に適切かという問題はあるにせよ、
構文的に) 空にもなり得るので、 UA は空の終点アンカーを探すこともできるべきですが、
そうでない UA もあると HTML 4 仕様書は言っています。
UA によってはうまく機能しない例
[PRE(HTML)[
<A name="EMPTY-ANCHOR" id="EMPTY-ANCHOR"></A>
<EM>...some HTML...</EM>
<A href="#EMPTY-ANCHOR">Link to empty anchor</A>
]PRE]
(HTML 4 仕様書より、改)
[43]
[CITE@ja[リンク文字列を選択するには - えむもじら]] ([CODE[2007-04-28 11:51:59 +09:00]] 版) <http://level.s69.xrea.com/mozilla/index.cgi?id=20070426_Selection>
([[名無しさん]] [WEAK[2007-04-28 03:02:41 +00:00]])
[44]
[CITE@ja[リンク文字列を選択するには(続き) - えむもじら]] ([TIME[2007-04-29 11:22:48 +09:00]] 版) <http://level.s69.xrea.com/mozilla/index.cgi?id=20070428_LinkSelection>
([[名無しさん]] [WEAK[2007-04-29 02:27:06 +00:00]])
[[#comment]]
** 例
[12] 単純な始点アンカーの例
[PRE(HTML)[
For more information about W3C, please consult the
<A href="http://www.w3.org/">W3C Web site</A>.
]PRE]
(HTML 4 仕様書より)
レンダリング例:
[PRE[
For more information about W3C, please consult the W3C Web site.
~~~~~~~~~~~~
]PRE]
[15]
[PRE(HTML)[
...text before the link...
For more information, please consult <A href="./one.html#ANCHOR-ONE"> anchor one</A>.
...text after the link...
]PRE]
(HTML 4 仕様書より、改)
同じ階層の [SAMP(URI)[one.html]] (>>13) の終点アンカー [SAMP[ANCHOR-ONE]]
への連結の例。
[13] 単純な終点アンカーの例
[PRE(HTML)[
...text before the anchor...
<A name="ANCHOR-ONE" id="ANCHOR-ONE">This is the location of anchor one.</A>
...text after the anchor...
]PRE]
(HTML 4 仕様書より、改)
[16] 始点アンカーかつ終点アンカーな例
[PRE(HTML)[
I just returned from vacation! Here's a
<A name="ANCHOR-TWO" id="ANCHOR-TWO"
href="http://www.somecompany.com/People/Ian/vacation/family.png">
photo of my family at the lake.</A>.
]PRE]
(HTML 4 仕様書より、改)
[18] 目次の例
[PRE(HTML)[
<H1>Table of Contents</H1>
<P><A href="#section1">Introduction</A><BR>
<A href="#section2">Some background</A><BR>
<A href="#section2.1">On a more personal note</A><BR>
...the rest of the table of contents...
...the document body...
<H2><A name="section1">Introduction</A></H2>
...section 1...
<H2><A name="section2">Some background</A></H2>
...section 2...
<H3><A name="section2.1">On a more personal note</A></H3>
...section 2.1...
]PRE]
[19] >>18 を [CODE(HTMLa)[id]] に書き換えた例
[PRE(HTML)[
<H1>Table of Contents</H1>
<P><A href="#section1">Introduction</A><BR>
<A href="#section2">Some background</A><BR>
<A href="#section2.1">On a more personal note</A><BR>
...the rest of the table of contents...
...the document body...
<H2 id="section1">Introduction</H2>
...section 1...
<H2 id="section2">Some background</H2>
...section 2...
<H3 id="section2.1">On a more personal note</H3>
...section 2.1...
]PRE]
(HTML 4 仕様書より)
[40]
[CITE[The SMIL 3.0 Linking Modules]] ([TIME[2008-12-02 00:45:09 +09:00]] 版) <http://www.w3.org/TR/2008/REC-SMIL3-20081201/smil-extended-linking.html#edef-a>
[[#comment]]
** メモ
[33]
[CITE[ステータスバー偽装 | Okumura's Blog]] <http://oku.edu.mie-u.ac.jp/~okumura/blog/node/356>
([[名無しさん]] [WEAK[2005-11-25 07:33:22 +00:00]])
[45] [CITE[Synchronized Multimedia Integration Language]] ([TIME[1998-06-16 04:11:22 +09:00]] 版) <http://www.w3.org/TR/1998/REC-smil-19980615/#a>
[[#comment]]
* メモ
[46] [CITE[Linking – SVG Tiny 1.2]] ([TIME[2008-12-20 02:31:29 +09:00]] 版) <http://www.w3.org/TR/2008/REC-SVGTiny12-20081222/linking.html#AElement>
[48] [CITE[IE にて a 要素の下に "@" を含む TextNode を append するとおかしくなる事がある件 - vivid memo]]
([TIME[2010-01-01 12:20:54 +09:00]] 版)
<http://d.hatena.ne.jp/vividcode/20091222/1261507364>
[49] [CITE[IRC logs: freenode / #whatwg / 20100616]]
([TIME[2010-06-27 14:17:28 +09:00]] 版)
<http://krijnhoetmer.nl/irc-logs/whatwg/20100616>
[50] [CITE[IEでのa要素の各属性について - 文殊堂]]
([TIME[2011-02-04 12:59:23 +09:00]] 版)
<http://d.hatena.ne.jp/monjudoh/20110203/1296720123>
[51] [CITE[IE 6,7 で相対URL -> 絶対 URL の変換 - って、なんでですか〜 - subtech]]
([TIME[2011-02-04 13:01:10 +09:00]] 版)
<http://subtech.g.hatena.ne.jp/secondlife/20090624/1245809935>
[52] [CITE[Re: HTML DTD and related problems (rather long)]]
( ([TIME[2003-08-11 02:09:17 +09:00]] 版))
<http://lists.w3.org/Archives/Public/www-talk/1992JulAug/0017.html>
[FIG(quote)[
[FIGCAPTION[
[10] [CITE[OASIS Open Document Format for Office Applications (OpenDocument) Version 1.2 - Part 1: OpenDocument Schema]]
([TIME[2011-09-29 13:00:00 +09:00]] 版)
<http://docs.oasis-open.org/office/v1.2/os/OpenDocument-v1.2-os-part1.html#a6_1_8_text_a_>
]FIGCAPTION]
> The <text:a> element represents a hyperlink.
]FIG]
[26] [CITE[OASIS Open Document Format for Office Applications (OpenDocument) Version 1.2 - Part 1: OpenDocument Schema]]
([TIME[2011-09-29 13:00:00 +09:00]] 版)
<http://docs.oasis-open.org/office/v1.2/os/OpenDocument-v1.2-os-part1.html#a10_4_12_draw_a_>
[FIG(quote)[
[FIGCAPTION[
[36] [CITE[XEP-0071: XHTML-IM]]
([TIME[2014-04-09 01:56:46 +09:00]] 版)
<http://www.xmpp.org/extensions/xep-0071.html#security-phishing>
]FIGCAPTION]
> To reduce the risk of phishing attacks '''['''30''']''', an implementation MAY choose to:
> Display the value of the XHTML 'href' attribute instead of the XML character data of the <a/> element.
> Display the value of XHTML 'href' attribute in addition to the XML character data of the <a/> element if the two values do not match.
]FIG]
[37] [CITE@en[Inline URLUtils for a and area elements · whatwg/html@bab6591]]
([TIME[2015-10-07 13:40:31 +09:00]] 版)
<https://github.com/whatwg/html/commit/bab659163757d66177270bd4abe74a58f2732008>
[38] [CITE@en[Fix #168: <a> without href is not interactive content · whatwg/html@528a223]]
([TIME[2016-01-30 20:25:59 +09:00]] 版)
<https://github.com/whatwg/html/commit/528a22340a4bdc6ca0b0e190dfd239989123df9b>
[54] [CITE@en[Integrate with the Referrer Policy spec, part 1 of n]]
( ([[domenic]]著, [TIME[2016-05-05 23:01:42 +09:00]]))
<https://github.com/whatwg/html/commit/6a7318072f340ad45229df171245d70d8621c2fe>
[55] [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>
[57] [CITE@en[Two questions about the `<a>` element · Issue #26 · w3c/svgwg]]
([TIME[2017-07-12 21:37:07 +09:00]])
<https://github.com/w3c/svgwg/issues/26>
[58] [CITE@en[Better error handling for nested links · Issue #178 · w3c/svgwg]]
([TIME[2017-07-12 21:39:56 +09:00]])
<https://github.com/w3c/svgwg/issues/178>
[59] [CITE@en[<a> and <area> are not window named objects]]
([[ayg]]著, [TIME[2017-09-06 22:44:24 +09:00]])
<https://github.com/whatwg/html/commit/9c209523143cb97551799e185e2a5d2750854bda>
[60] [CITE@en[Centralize checks for <a>, <area>, <form>, and <link>]]
([[annevk]]著, [TIME[2017-09-22 21:04:25 +09:00]])
<https://github.com/whatwg/html/commit/f3c354add894e1ac01e3732ff976aa9874a77b3f>
[61] [CITE@en['''['''css-display''']''' More thoroughly review the list of SVG elements and put…]]
([[tabatkins]]著, [TIME[2018-01-20 04:41:56 +09:00]])
<https://github.com/w3c/csswg-drafts/commit/1432231d5b5561e6ce030850d4e614ba85913b1e>
[62] [CITE@en[Remove help cursor from user-agent stylesheet]]
([[domenic]]著, [TIME[2018-08-11 07:37:15 +09:00]])
<https://github.com/whatwg/html/commit/ea3cde3cba3a255e02bd73ef1036f1d2027c400d>
[63] [CITE@en[Remove help cursor from user-agent stylesheet by domenic · Pull Request #3902 · whatwg/html]]
([TIME[2018-08-14 23:24:21 +09:00]])
<https://github.com/whatwg/html/pull/3902>
[66] [CITE@en[Further tabIndex getter tweaks]]
([[domenic]]著, [TIME[2019-07-10 03:43:46 +09:00]])
<https://github.com/whatwg/html/commit/7ce0b474147ac0574eb3e739f1a9c27e49a249ad>
[67] [CITE@en[Further tabIndex getter tweaks by domenic · Pull Request #4759 · whatwg/html · GitHub]]
([TIME[2020-07-13 12:30:44 +09:00]])
<https://github.com/whatwg/html/pull/4759>
[68] [CITE@en[Define what tabIndex returns when the tabindex attribute is not set]]
([[rakina]]著, [TIME[2019-07-10 03:13:55 +09:00]])
<https://github.com/whatwg/html/commit/15cf23a55d629e0b1286302c19634833a89292ab>