* [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]] ** メモ [33] [CITE@en['''['''WF2''']''' HTMLFormElement.accept vs. function accept(){}]] ([[Simon Pieters]] 著, [TIME[2008-02-21 02:07:17 +09:00]] 版) ([[名無しさん]]) [[#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]] * メモ