/
764.txt
376 lines (273 loc) · 13.7 KB
/
764.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
* [CODE(HTMLe)@en[form]] 要素、 [CODE(HTMLa)@en[input]] 要素 [CODE(HTMLa)@en[accept]] 属性 (HTML)
[1] [[HTML]] の [CODE(HTMLe)[[[form]]]] 要素・
[CODE(HTMLe)[[[input]]]] 要素の
[DFN[[CODE(HTMLa)[accept]] 属性]]は、
[[フォーム処理エージェント]]が正しく扱うことのできる[[媒体型]]を指定します。
[21]
:状態:[[W3C]] [[勧告]]、[[WHATWG]] [[WD]]
:[[要素型]]:[CODE(HTMLe)@en[[QN[[[form]]] [http://www.w3.org/1999/xhtml]]]]、
[CODE(HTMLe)@en[[QN[[[input]]] [http://www.w3.org/1999/xhtml]]]]
:[CODE(DOMa)@en[[[type]]]]:[CODE(HTML)@en[[[file]]]]、
([CODE(HTMLe)@en[[[form]]]])
:[[属性名]]:[CODE(HTMLa)@en[[[accept]]]]
([Q@en[accept]] ([Q[承認]]) より、
[[HTTP]] の [CODE(HTTP)@en[[[Accept]]:]] [[頭欄]]と同じ)
:[[属性値]]:[[媒体型]]の[[読点]][[区切り]]の[[並び]] (>>2)
:[[既定値]]:すべて (>>4)
[5] 仕様書:
- [[HTML 4]] ([[Web Forms 1.0]])
-- [CODE(HTMLe)[form]] 要素 [CODE(HTMLa)[accept]] 属性
<IW:HTML4:"interact/forms.html#adef-accept">
-- [CITE[HTML 4 Changes]]
<IW:HTML4:"appendix/changes.html#h-A.1.1.12">
- [[Web Forms 2.0]]
-- [CSECTION@en[2.15. Extensions to file upload controls]]
<IW:WF2:"#upload">
-- [CSECTION@en[2.18. Handling unexpected elements and values]]
<IW:WF2:"#handling">
-- <http://www.whatwg.org/specs/web-forms/current-work/#accept1>
[10]
HTML 4 DTD [[注釈]] (参考) には
[Q[list of MIME types for file upload]]
(ファイルうp用 MIME 型の並び)
と説明があります。
** 属性値
[2] この属性の値は [CODE(SGML)[%[[ContentTypes]]]] です。
[CODE(SGML)[%[[ContentType]]]] を[[読点]]で分離して複数指定できます。
[[SGML]] 的には [CODE(SGML)[[[CDATA]]]] です。 [SRC[HTML 4 17.3]]
例によって、実際には、読点の前後に[[空白]]を挿入できます。
[21] [[Web Forms 2.0]] では、[[属性値]]の[[構文]]は、
次のように定義されています [SRC@en[WF2 2.15]]:
>
- accept := space* range [ space* "," space* range]* space*
- range := "*/*" | type "/*" | type "/" subtype
- space := U+0020 | U+000A
- type := defined in RFC2045 [RFC2045]
- subtype := defined in RFC2045 [RFC2045]
- [22] 最初と最後や[[読点]]の前後に[[空白]]を挿入可能なことが明確化されていますが、
[[空白]]は [[HTML 4]] の[[空白]]ではなく、
[CODE(charname)@en[[[SPACE]]]] と
[CODE(charname)@en[[[LINE FEED]]]] だけのようです。
- [23] [[HTML 4]] で認められていた純粋な[[媒体型]]だけではなく、
[CODE(MIME)@en[[[*/*]]]] や [CODE(MIME)@en[[[text/*]]]]
のような[[媒体型]]の[[範囲]]で指定[['''して構いません''']]。
[SRC@en[WF2 2.15]]
- [24] [[媒体型]]に[[引数]]を指定できるかは [[HTML 4]]
では曖昧でしたが、 [[Web Forms 2.0]]
では指定[['''してはなりません''']]。
[SRC@en[WF2 2.15]]
[4] この属性は省略可能です。
[SRC@en[HTML 4]]
[28] '''継承'''
- [CODE(HTMLe)@en[[[form]]]] [[要素]]の
[CODE(HTMLa)@en[[[accept]]]] [[属性]]は、
その[[フォーム]]に属するすべての [CODE(HTML)@en[[[file]]]]
[[制御子]]の[[既定値]]となります。
- [CODE(HTML)@en[[[file]]]] の
[CODE(HTMLa)@en[[[accept]]]] [[属性]]が与えられていれば、
その[[制御子]]の属する[[フォーム]]の
[CODE(HTMLa)@en[[[accept]]]] [[属性]]は無視されます。
- [CODE(HTML)@en[[[file]]]] の
[CODE(HTMLa)@en[[[accept]]]] [[属性]]が与えれれていても、
[[非妥当]]なら、 [CODE(MIME)@en[[[*/*]]]]
が指定されたものとみなします。
[SRC@en[WF2 2.15]]
[[#comment]]
** レンダリング
[6] UA は、 [CODE(HTMLa)[accept]] 情報を利用して、
ファイル選択[[制御子]] ([CODE(HTMLe)[[[input]]]] [CODE(HTMLa)[[[type]]]]
[CODE(HTML)[[[file]]]]) で選択できる[[ファイル]]の種類を限定しても構いません
[SRC[HTML 4 17.3]]。
[25] '''ファイル一覧'''
[[利用者エージェント]]は、[[利用者]]に[[ファイル]]を[[一覧]]から選ぶ手段を提供していて、
[[ファイル]]の種類による[[濾過]]を行っているなら、
その構築のために [CODE(HTMLa)@en[[[accept]]]]
[[属性]]の情報を利用[['''するべきです''']]。
[SRC@en[WF2 2.15]]
[26] '''ファイル作成'''
[[利用者エージェント]]は、[[利用者]]が[[ファイル]]を作成し、
その[[ファイル]]を[[うp]]する手段を提供しているなら、
その[[ファイル]]を作成するために使用する[[応用]]を選択するために
[CODE(HTMLa)@en[[[accept]]]] [[属性]]の情報を利用[['''するべきです''']]。
[SRC@en[WF2 2.15]]
;; これは、[[ファイル・システム]]がなく、
その場で[[ファイル]]を作成するしかない小さな[[装置]]上の
[[Webブラウザ]]で特に有用と考えられています。
[SRC@en[WF2 2.15]]
[[#comment]]
** フォーム
[27]
少なくても1つの[[ファイル]]が [CODE(HTMLa)@en[[[accept]]]]
で指定された条件を満足しないなら、
[CODE(DOM)@en[[[typeMismatch]]]] [[旗]]が使われます。
[[利用者エージェント]]は、
[[ファイル]]が誤った[[媒体型]]として[[札付け]]されているときに、
これを[[上書き]]する手段を[[利用者]]に提供[['''して構いません''']]。
[SRC@en[WF2 2.15]]
[32] '''誤り処理'''
[[非妥当]]な値が与えられていた場合、 [[DOM]]
ではそのままの値を使用[['''しなければなりません''']]が、
[[比較]]時 (>>25 や[[提出]]時など) には
[CODE(MIME)@en[[[*/*]]]] として処理[['''しなければなりません''']]。
[SRC@en[WF2 2.18]]
[[#comment]]
** 関連
[3] この属性の値は働きとしては [[HTTP]] の
[CODE(HTTP)[[[Accept]]:]] 頭欄とよく似ていますが、
[CODE(HTTP)[[[q]]]] 値を指定することはできません。
[7] フォームの[[提出]]に使う媒体型の指定は、 [CODE(HTMLa)[accept]]
属性ではなく [CODE(HTMLa)[[[enctype]]]] 属性により行います。
[CODE(HTMLa)[[[accept-charset]]]] 属性は名前や HTTP の頭欄から類推すると
[CODE(HTMLa)[accept]] 属性とセットのように思えますが、
実際には [CODE(HTMLa)[enctype]] 属性と組になっています。
[8] HTML 4 では [CODE(HTMLe)[form]] 要素と [CODE(HTMLe)[input]]
要素に指定できますが、両方に指定した場合の相互作用については規定がありません。
[[#comment]]
** 歴史
[9] [CODE(HTMLe)[form]] 要素の [CODE(HTMLa)[accept]] 属性は、
[[HTML 4]] で追加されました。 [[HTML 4.0]] では仕様書本文内の [[DTD]]
素片や各種 [[DTD]] 本体で [CODE(HTMLa)[accept]] 属性の[[属性定義]]が欠落しており、
仕様書本文の規定だけが存在していました。 [[HTML 4.01]]
で DTD に追加されました [SRC[HTML 4 A.1.1.12]]。
[31]
[[Web Forms 2.0]] で、
[[属性値]]の[[構文]]が拡張され、更に
[CODE(MIME)@en[[[*]]]] が使えるようになりました。
[[#comment]]
** 例
[29] [SRC@en[WF2 2.15]]
[PRE(HTML example code)[
<input type="file" name="avatar"
accept="image/*"/>
]PRE]
この例では、 [CODE(MIME)@en[[[image/png]]]] ([[PNG]])、
[CODE(MIME)@en[[[image/jpeg]]]] ([[JPEG]] [[JFIF]])、
[CODE(MIME)@en[[[image/svg+xml]]]] ([[SVG]])
などを[[うp]]できます。
[30] '''音声日記の執筆フォームの例''' [SRC@en[WF2 2.15]]
[PRE(HTML example code)[
<form action="/weblog/submit" method="post" enctype="multipart/form-data">
<label>
Attach your audio-blog sound file:
<input type="file" name="blog" accept="audio/*"/>
</label>
<input type="submit" value="Blog!"/>
</form>
]PRE]
[[利用者エージェント]]は、[[ファイル]]を選択するための[Q[[[参照]]]]ボタンの代わりに、
または一緒に、
[Q[[[録音]]]]ボタンを提供することができます。
[Q[[[録音]]]]ボタンを押すと、
[[録音]]のための[[応用]]が起動します。
[[#comment]]
** メモ
[33]
[CITE@en['''['''WF2''']''' HTMLFormElement.accept vs. function accept(){}]] ([[Simon Pieters]] 著, [TIME[2008-02-21 02:07:17 +09:00]] 版) <http://lists.w3.org/Archives/Public/public-html/2008Feb/0315.html>
([[名無しさん]])
[[#comment]]
* [CODE(HTMLe)@en[textarea]] 要素 [CODE(HTMLa)@en[accept]] 属性 (HTML)
[11] [[HTML]] の [CODE(HTMLe)@en[[[textarea]]]] [[要素]]の
[DFN[[CODE(HTMLa)@en[accept]] [[属性]]]]は、
期待される内容の[[媒体型]]を示します。
[12]
:状態:[[WHATWG]] [[WD]]
:[[要素型]]:[CODE(HTMLe)@en[[QN[[[textarea]]] [http://www.w3.org/1999/xhtml]]]]
:[[属性名]]:[CODE(HTMLa)@en[[[accept]]]]
([Q@en[accept]] ([Q[承認]]) より、 [CODE(HTMLe)@en[[[form]]]]
[[要素]]の [CODE(HTMLa)@en[[[accept]]]] [[属性]]や
[[HTTP]] の [CODE(HTTP)@en[[[Accept]]:]] [[頭欄]]とおなじ)
:[[属性値]]:
:[[既定値]]:
[13] 仕様書:
- [[Web Forms 2.0]]
-- [CSECTION@en[12.14. Extensions to the [CODE(HTMLe)@en[[[textarea]]]] element]]
<IW:WF2:"#extensions">
** 属性値
[15] '''属性値'''
[[属性値]]は、[[テキスト]]系[[媒体型]]名と[['''しなければなりません''']]。
[[引数]]があっても構いません。
[SRC@en[WF2 2.14]]
[16] '''既定値'''
この[[属性]]が省略された場合や[[利用者エージェント]]が認識できない値の場合の[[既定値]]は、
[CODE(MIME)@en[[[text/plain]]]] と[['''しなければなりません''']]。
[SRC@en[WF2 2.14]]
[[#comment]]
** レンダリング
[14]
[[利用者エージェント]]は、
この[[属性]]を、より適切な[[編集器]]、
[[構文]]着色、[[綴り検査器]]等を提供するために使用[['''して構いません''']]。
[SRC@en[WF2 2.14]]
[[#comment]]
** 関連
[17]
[CODE(HTMLe)@en[[[form]]]] [[要素]]や
[CODE(HTMLe)@en[[[input]]]] [[要素]]の同名の
[CODE(HTMLa)@en[[[accept]]]] [[属性]]は、
[[ファイル・アップロード制御子]]のためのもので、
[[意味]]も[[構文]]も異なっています。
[SRC@en[WF2 2.14]]
[[#comment]]
** 例
[18] [SRC@en[WF2 2.14]]
[PRE(HTML example code)[
accept="text/plain"
]PRE]
[19] [SRC@en[WF2 2.14]]
[PRE(HTML obsolete example code)[
accept="message/news"
]PRE]
[20] [SRC@en[WF2 2.14]]
[PRE(HTML example code)[
accept="image/svg+xml"
]PRE]
[[#comment]]
** メモ
[[#comment]]
* [CODE(XMLe)@en[app:accept]] 要素
[34] [[AtomPub]] の [DFN[[CODE(XMLe)@en[app:[[accept]]]] [[要素]]]]は、
[[集成]]に [CODE(HTTP)@en[[[POST]]]] することができる[[表現]]の[[媒体範囲]]を表します
[SRC@en[[[AtomPub]]]]。
:[[局所名]]:[CODE(XMLe)@en[[[accept]]]]
:文脈:[CODE(XMLe)@en[app:[[collection]]]] の[[子要素]]として
:[[内容モデル]]:[[媒体範囲]]
:[[属性]]:
仕様書:
[CITE@en[RFC 5023 - The Atom Publishing Protocol]] ([TIME[2008-11-20 18:52:14 +09:00]] 版) <http://tools.ietf.org/html/rfc5023#[41] [42] section-8.3.4>
** 内容
[35] この[[要素]]の値は [[RFC 2616]] で定義されている[[媒体範囲]]です。
この[[要素]]は [[HTTP]] の [CODE(HTTP)@en[[[Accept]]:]] [[頭欄]]と似ています。
[[媒体型引数]]を指定することもできます。しかし、
優先度はなく、 [[RFC 2616]] で規定されている [CODE(ABNF)@en[[[accept-params]]]]
([CODE(HTTP)@en[[[q]]]] [[引数]]など) は意味を持ちません。
[SRC@en[[[AtomPub]]]]
;; [40] ということは、 [CODE(HTTP)@en[[[q]]=0]] は正反対の意味を持つことになります。
[36] [[媒体範囲]]の周りには [[XMLの空白]]を含めることができますが、
意味を持たず、無視しなければ[['''なりません''']] [SRC@en[[[AtomPub]]]]。
[37] [[媒体範囲]]には [CODE(MIME)@en[[[application/atom+xml;type=entry]]]]
を含めることができます。この値は [[Atomエントリー文書]]を表します。
[SRC@en[[[AtomPub]]]]
[39] この[[要素]]が[[空]]の場合、[[クライアント]]は[[集成]]が新しい[[エントリー]]の作成に対応していないものと考える[['''べきです''']]。
;; [43] この[[要素]]は複数使えますが、その場合どうなるのでしょう?
** 既定値
[38] この[[要素]]が指定されなかった場合、クライアントは
[CODE(MIME)@en[[[application/atom+xml;type=entry]]]] が指定されたのと[[等価]]に扱う[['''べきです''']]。
* メモ
[44] [CITE@en[Web Applications 1.0 r7057 Introduce extensions in accept=''.]]
( ([TIME[2012-04-19 08:22:00 +09:00]] 版))
<http://html5.org/tools/web-apps-tracker?from=7056&to=7057>
[45] [CITE[Issue 3311016: Support accept attribute for an <input type=file> element.... - Code Review]]
([TIME[2015-09-02 11:01:05 +09:00]] 版)
<https://codereview.chromium.org/3311016>
[46] [CITE[Release Notes for Safari Technology Preview 38 | WebKit]]
([TIME[2017-08-24 12:11:35 +09:00]])
<https://webkit.org/blog/7877/release-notes-for-safari-technology-preview-38/>
[47] [CITE@en[Editorial: update usage of the MIME Sniffing Standard]]
([[domenic]]著, [TIME[2018-02-17 03:42:58 +09:00]])
<https://github.com/whatwg/html/commit/fc82f4f8774a2e7e80f6c9477bd881f6c783b186>
[48] [CITE@en[Editorial: update usage of the MIME Sniffing Standard by domenic · Pull Request #3455 · whatwg/html]]
([TIME[2018-02-17 18:45:36 +09:00]])
<https://github.com/whatwg/html/pull/3455>
[49] [CITE@en[Make <input type="file"> reject dropped file(s) that don't match "accept" attribute · Issue #4216 · whatwg/html · GitHub]]
([TIME[2019-01-08 10:41:18 +09:00]])
<https://github.com/whatwg/html/issues/4216>