/
474.txt
314 lines (220 loc) · 12 KB
/
474.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
[2] [DFN[[CODE(HTMLa)@en[[[id]]]]]] [[属性]]は、[[要素]]に[[識別子]]を割り当てるものです。
* id 属性 (HTML, XHTML 1)
[9] [CODE(HTMLa)[id]] [[属性]]は、 [[HTML]] のほとんどの[[要素型]]で定義されています。
この属性は、[[要素]]に[[名前]]を割り当てます。
名前は[[文書]]内で固有である必要があります。
仕様書:
- [[HTML 4]]
-- [CODE(HTMLa)[id]] <IW:HTML4:"struct/global.html#adef-id">
-- 12.2.3 Anchors with the id attribute
<IW:HTML4:"struct/links.html#anchors-with-id">
-- 14.2.3 Header style information: the [CODE(HTMLe)[STYLE]] element
<IW:HTML4:"present/styles.html#style-group">
[10] 仕様書 <IW:HTML4:"struct/global.html#id-and-class">
では、この属性の値の役割として、
- [[スタイル・シート]]の[[選択子]]。
- [[スクリプト]]から特定の要素を参照する手段。
- 宣言済み [CODE(HTMLe)[[[object]]]] 要素の名前。
- [[UA]] の一般目的処理のため。たとえば、次の時の欄の識別。
-- HTML から [[DB]] にデータを取り出すとき
-- 他の書式に HTML 文書を翻訳するとき
- [[リンク]]の[[終点アンカー]]の識別子
を挙げています。
[[#comment]]
** 属性値
[13]
この属性は、 HTML 4 的には [CODE[[[name]]]] 型、
[[SGML]]/[[XML]] 的には [CODE(SGML)[[[ID]]]] 型です。
[4] [[HTML]] の [CODE(HTMLa)[id]] 属性値の取りうる値:
- draft [[HTML 3.0]]: [CODE(regex)[ [A-Za-z][A-Za-z0-9.-]*]]
-- IETF [[HTML 2.x]]: [CODE(regex)[ [A-Za-z][A-Za-z0-9.-]*]]
- W3C HTML 4: [CODE(regex)[ [A-Za-z][A-Za-z0-9._:-]*]]
- W3C [[XHTML 1]]: [CODE(regex)[\{名前開始文字}\{名前文字}*]]
詳しくは[[噂のID問題]]をご覧下さい。
[14] この属性の値の名前空間は [CODE(HTMLe)[[[a]]]] 要素の [CODE(HTMLa)[[[name]]]]
属性と共有しています。
[15] この属性は省略可能です。省略時は [CODE(SGML)[ID]] なしになります。
[[#comment]]
** 大文字と小文字
[DEL[
[11] (HTML は、大文字・小文字を区別しない(たぶん)。)
([[XHTML]] は、大文字・小文字を区別する。)
[1] >>11 HTML でも大文字・小文字が区別されるという話がありますが、どうなんでしょう?
[5] >>1 IETF/W3C HTML の [[SGML宣言]]によれば、
[[名前]]の大文字と小文字は区別されません。 (大文字に正規化されます。) 実装には区別するものもきっとあるんでしょうが。。。
]DEL]
[12] >>11,>>1,>>5 この問題 (通称[[噂のID問題]])
は非常に難しい状態にあることがわかっています。
詳しくは[[噂のID問題]]の頁をごらんください。
[[#comment]]
** 実装
[7] [[NC]] は (少なくても 4.01 は) [CODE(HTMLa)[id]] 属性に対応していません。
[[#comment]]
** 例
[16] 終点アンカーとしての使用例
[PRE(HTML)[
You may read more about this in <A href="#SECTION2">Section Two</A>.
...later in the document
<H2 id="SECTION2">Section Two</H2>
...later in the document
<P>Please refer to <A href="#SECTION2">Section Two</A> above
for more details.
]PRE]
[WEAK[(HTML 4 仕様書より、改)]]
[17] 終点アンカーとしたいときで、適切な要素がないときには、
[CODE(HTMLe)[[[a]]]] 要素が使えます。
[PRE(HTML)[
I just returned from vacation! Here's a
<A id="ANCHOR-TWO">photo of my family at the lake.</A>.
]PRE]
[WEAK[(HTML 4 仕様書より、改)]]
[20] [[CSS]] で特定の要素のスタイルを指定する例
[PRE(HTML)[
<HEAD>
<TITLE>CSS and ID Example</TITLE>
<STYLE type="text/css">
#MYID {border-width: 1px; border: solid; text-align: center}
</STYLE>
</HEAD>
<BODY>
<H1> This H1 is not affected </H1>
<H1 id="MYID"> This H1 is affected by style </H1>
<H1> This H1 is not affected </H1>
</BODY>
]PRE]
[WEAK[(HTML 4 仕様書より、改)]]
[49]
[CITE[ロイター.co.jp | ロイターe調査, 投票, 調査, ビジネス, 海外, 経済, 金融, ニュース]] ([CODE[2008-09-02 09:57:11 +09:00]] 版) <http://polls.reuters.com/jp/1220280342250>
([CODE(MIME)@en[[[text/html]]]])
>
[PRE(HTML bad example code)[
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<title>ロイター.co.jp | ロイターe調査, 投票, 調査, ビジネス, 海外, 経済, 金融, ニュース</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta id="MetaDescription" name="description" content="Reuters.co.jpはニュース速報、ワールドニュース、ビジネス情報、経済ニュース、株式ニュース、外国為替ニュースなどが入手できる重要な情報源です。ロイターは世界中のメディア、金融機関、そして個人投資家にニュースや金融情報、テクノロジーを提供する世界最大の国際通信社です。"></meta>
<meta id="MetaKeywords" name="keywords" content="ロイター ニュース ロイター通信 国際ビジネスニュース IT・インターネットニュース 海外株式情報 ワールドカップ"></meta>
]PRE]
([[名無しさん]])
[[#comment]]
** メモ
[18] HTML 4 仕様書には [CODE(HTMLa)[id]]
属性の[[属性値指定]]で[[文字参照]]が使えないようなことが書かれていますが、
これは誤りで、[[属性値表記]]なら使うことができます。
[[実体参照]]ももちろん使えます。
例: [SAMP(HTML)[<a id="DÜRST">Martin Dürst</a>]]
[19]
>>18
id は名前ですから、HTML 4 で Ü などの文字を含むことはできません (例えば id="DUERST" なら可能ですが)。
なお、XHTML では名前文字の範囲が広がっていますので、id="DÜRST" も valid です。
[33]
[CITE[2006-07-02 - d:id:quaa]] ([CODE[2007-10-17 02:34:07 +09:00]] 版) <http://d.hatena.ne.jp/quaa/20060702#p3>
([[名無しさん]])
[34]
[CITE[2006-07-02 - d:id:quaa]] ([CODE[2007-10-17 02:34:07 +09:00]] 版) <http://d.hatena.ne.jp/quaa/20060702#p3>
([[名無しさん]])
[35]
[CITE[誤り訂正日記 - d:id:quaa]] ([CODE[2007-11-11 11:17:03 +09:00]] 版) <http://d.hatena.ne.jp/quaa/20071108#p2>
([[名無しさん]])
[36]
[CITE@ja[ID属性値を巡るhCalendarの奇妙な冒険 | hemiolia.com]] ([[kotarok]] 著, [CODE[2008-02-10 00:17:14 +09:00]] 版) <http://hemiolia.com/blog/200802/000142>
* [CODE(XMLa)@en[id]] 属性 (MathML)
[67] [[MathMLの大域属性]]である [DFN[[CODE(XMLa)@en[id]] [[属性]]]]は、
[[リンク]]、[[相互参照]]、[[並列マーク付け]]のための[[固有識別子]]を指定するものです
[SRC[>>68]]。
** 仕様書
- [68] [CITE[MathML Fundamentals]] ([TIME[2010-10-21 05:51:46 +09:00]] 版) <http://www.w3.org/TR/2010/REC-MathML3-20101021/chapter2.html#fund.globatt>
** 構文
[69] [CODE(XMLa)@en[[[id]]]] [[属性値]]の構文は [CODE@en[[[id]]]] です [SRC[>>68]]。
* id 属性 (XML 型録)
[6] [[XML]] [[型録]]の要素型
([[名前空間名]]が
[CODE(URI)[[[urn:oasis:names:tc:entity:xmlns:xml:catalog]]]]
及び
[CODE(URI)[[[urn:oasis:names:tc:entity:xmlns:tr9401:catalog]]]]
の全ての要素型) には [CODE(XML)[id]] 属性
(型 = [CODE(XML)[[[ID]]]]) が存在します。
この属性は型録的には意味が無く、単に識別のためだけにあります。
省略可能です。
<http://www.oasis-open.org/committees/entity/spec.html#attrib.common>
* HTML 以外
[65]
[[DTBook]] にも [[HTML4]] から移入されました。
** [CODE(XMLa)@en[id]] 属性 (SMIL)
[56] [[SMIL]] のほとんど (すべて?) の[[要素]]の [CODE(XMLa)@en[[[id]]]] [[属性]]は、
[[文書]]中で[[要素]]を特定する[[固有識別子]]です。
:[[要素]]:[[SMIL]] の[[要素]]
:[[属性名]]:[CODE(XMLa)@en[[[id]]]]
:[[データ型]]:[[XML]] [CODE(XML)@en[[[ID]]]]
:[[既定値]]:(なし)
仕様書:
-[[SMIL 1.0]] ([[W3C]] [[勧告]])
--[CSECTION@en[2 The [CODE(XMLe)@en[smil]] Element]]
<http://www.w3.org/TR/1998/REC-smil-19980615/#id>
* [CODE(XMLa)@en[xml:id]] 属性 (XML)
[42] [CODE(XMLa)@en[[[xml:id]]]] を参照。
* メモ
[3] ''<xsl:key>を使おう(1)'' <http://www.yuragi.jp/playxslt/p003.asp>: [[XPath]] の [CODE(XPathf)[id()]] 関数について。
[23]
[CITE[How to make a good ID in Atom [dive into mark]]] <http://diveintomark.org/archives/2004/05/28/howto-atom-id>
[28]
[CITE[hatena::get_diary<gnarl>::result - Operaとfirefoxでxpathの挙動が違うよ!誰のせい?誰のせい?]] ([CODE[2007-06-04 18:28:13 +09:00]] 版) <http://d.hatena.ne.jp/gnarl/20070602/1180782611>
([[名無しさん]] [WEAK[2007-06-09 14:02:24 +00:00]])
[29]
[CITE[d:id:quaa]] ([CODE[2007-06-07 22:15:24 +09:00]] 版) <http://d.hatena.ne.jp/quaa/20070607#p1>
([[名無しさん]] [WEAK[2007-06-09 14:02:48 +00:00]])
[30]
[CITE[*DRAFT* W3 Forms F2F (Hawthorne) Day 1 June 13, 2007]] ([CODE[2007-06-26 18:29:00 +09:00]] 版) <http://lists.w3.org/Archives/Public/public-forms/2007Jun/att-0034/2007jun13.html#topic15.1>
([[名無しさん]])
[31]
[[DOM]] といい [[XPath]] といい [CODE(XML)@en[[[ID]]]]
[[要素]]は完全になかったことに?
([[名無しさん]])
[32]
[CITE[d:id:quaa]] ([CODE[2007-08-06 19:32:28 +09:00]] 版) <http://d.hatena.ne.jp/quaa/20070806#p1>
[74] [CITE@en[Web Applications 1.0 r6605 move .id and ID processing to DOM Core.]]
( ([TIME[2011-10-01 02:45:00 +09:00]] 版))
<http://html5.org/tools/web-apps-tracker?from=6604&to=6605>
[75] [CITE[Packaged Web Apps (Widgets) - Packaging and XML Configuration (Second Edition)]]
( ([TIME[2012-11-22 21:22:20 +09:00]] 版))
<http://w3c.github.com/packed-webapps/packaging/#the-id-attribute>
[78] [CITE@en[WOFF File Format 1.0]]
( ([TIME[2012-12-13 00:43:40 +09:00]] 版))
<http://www.w3.org/TR/2012/REC-WOFF-20121213/#Metadata>
[79] [CITE[Document Object Model for MathML]]
( ([TIME[2001-02-20 21:36:10 +09:00]] 版))
<http://www.w3.org/TR/2001/REC-MathML2-20010221/appendixd.html#dom_Element>
[80] [CITE[Document Object Model for MathML]]
( ([TIME[2002-05-23 15:35:03 +09:00]] 版))
<http://www.w3.org/Math/DOM/mathml2/appendixd.html#dom_Element>
[83] [CITE@en-US[XML Binding Language (XBL) 2.0]]
( ([TIME[2007-03-16 22:20:16 +09:00]] 版))
<http://www.w3.org/TR/2007/CR-xbl-20070316/#the-id>
[85] [[OMDoc]] ([TIME[2010-10-13 07:54:48 +09:00]] 版) <http://omdoc.org/pubs/omdoc1.2.pdf#page=106>
[86] [CITE@EN[XPath and XQuery Functions and Operators 3.0]]
( ([TIME[2014-04-08 07:02:07 +09:00]] 版))
<http://www.w3.org/TR/xpath-functions-3/#func-id>
[8] [CITE@en[Editorial: synchronize with the DOM Standard · whatwg/html@21c6ec7]]
([TIME[2016-03-20 18:03:51 +09:00]] 版)
<https://github.com/whatwg/html/commit/21c6ec77594eb89b836d4872222f5916910967fd>
[21] [CITE@en[Shadow: define superglobal slot content attribute · whatwg/dom@e3d8291]]
([TIME[2016-03-24 21:58:35 +09:00]] 版)
<https://github.com/whatwg/dom/commit/e3d82914676ad1e1bf590e1042636e60feddb6ae>
[22] [CITE@en[The DOM Standard defines the class, id, and slot attributes · whatwg/html@36c9938]]
([TIME[2016-03-24 22:00:58 +09:00]] 版)
<https://github.com/whatwg/html/commit/36c9938b102fecadf6029a248f40aae83ea099d2>
[24] [CITE@en[Id attribute: harmonize requirements with HTML, add warning about XML…]]
([[AmeliaBR]]著, [TIME[2016-07-29 05:30:35 +09:00]])
<https://github.com/w3c/svgwg/commit/09a1a0a1f5cc3dd2fa785bf23f309cb906027299>
[FIG(quote)[
[FIGCAPTION[
[25] [CITE@en[AMP HTML Specification – AMP]]
([TIME[2018-02-14 10:04:22 +09:00]])
<https://www.ampproject.org/docs/reference/spec>
]FIGCAPTION]
> Internal AMP IDs prefixed with -amp- and i-amp- are disallowed in AMP HTML.
> Consult AMP documentation for specific extensions before using amp- and AMP IDs to avoid conflict with the features provided by these extensions, such as amp-access.
> All other authored IDs are allowed in AMP HTML markup.
]FIG]