* [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]] 属性
-- [CITE[HTML 4 Changes]]
- [[Web Forms 2.0]]
-- [CSECTION@en[2.15. Extensions to file upload controls]]
-- [CSECTION@en[2.18. Handling unexpected elements and values]]
[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)[
]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)[
]PRE]
[[利用者エージェント]]は、[[ファイル]]を選択するための[Q[[[参照]]]]ボタンの代わりに、
または一緒に、
[Q[[[録音]]]]ボタンを提供することができます。
[Q[[[録音]]]]ボタンを押すと、
[[録音]]のための[[応用]]が起動します。
[[#comment]]
** メモ
[[#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]]
** 属性値
[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]]
* メモ