[1] [[HTML]] の [CODE(HTMLe)[[[input]]]] 要素は、 [CODE(HTMLa)[[[type]]]] 属性が [DFN[[CODE(HTML)[image]]]] の時、図形的[DFN[提出ボタン制御子]]となります。 [2] 仕様書: - [[HTML 4]] ([[Web Forms 1.0]]) -- submit buttons -- 17.4 The [CODE(HTMLe)[INPUT]] element [3] 属性: ,属性名,属性値,既定値,説明,出典 ,[CODE(HTMLa)[[[accesskey]]]],[CODE(SGML)[%[[Character]]]],,,[HTML 4] ,[CODE(HTMLa)[[[align]]]],,,配置,[HTML 4] 非推奨 ,[CODE(HTMLa)[[[alt]]]],[CODE(SGML)[%[[Text]]]],,[[代替文]],[HTML 4] ,[CODE(HTMLa)[[[border]]]],[CODE(SGML)[%[[Pixels]]]],,枠線,[[NN2]]+ ,[CODE(HTMLa)[[[class]]]] ,,,[[級]] ,[HTML 4] %[[coreattrs]] ,[CODE(HTMLa)[[[dir]]]] ,,,[[書字方向]] ,[HTML 4] %[[i18n]] ,[CODE(HTMLa)[[[disabled]]]],(真偽値属性),(偽),無効,[HTML 4] ,[CODE(HTMLa)[[[dynsrc]]]],[CODE(SGML)[%[[URI]]]],,動画資源,[[WinIE 4]]+ ,[CODE(HTMLa)[[[height]]]],,,高さ,[[NN2]]+ ,[CODE(HTMLa)[[[id]]]] ,,,一意識別子 ,[HTML 4] %coreattrs ,[CODE(HTMLa)[[[ismap]]]],(真偽値属性),(偽),鯖側画像写像,[HTML 4] ,[CODE(HTMLa)[[[lang]]]] ,,,[[自然言語]] ,[HTML 4] %i18n ,[CODE(HTMLa)[[[xml]]:lang]],,,自然言語 ,[XHTML 1] ,[CODE(HTMLa)[[[language]]]],,,スクリプト言語,[[WinIE 4]]+ ,[CODE(HTMLa)[[[lowsrc]]]],[CODE(SGML)[%[[URI]]]],(なし),低解像度資源,[[WinIE 4]]+ ,[CODE(HTMLa)[[[name]]]],,,制御子名,[HTML 4] ,[CODE(HTMLa)[[[onblur]]]],[CODE(SGML)[%[[Script]]]],,焦点を失した時,[HTML 4] ,[CODE(HTMLa)[[[onclick]]]] ,,, ,[HTML 4] %[[events]] ,[CODE(HTMLa)[[[ondblclick]]]],,, ,[HTML 4] %events ,[CODE(HTMLa)[[[onfocus]]]],[CODE(SGML)[%[[Script]]]],,焦点を得た時,[HTML 4] ,[CODE(HTMLa)[[[onkeydown]]]],,, ,[HTML 4] %events ,[CODE(HTMLa)[[[onkeypress]]]],,, ,[HTML 4] %events ,[CODE(HTMLa)[[[onkeyup]]]] ,,, ,[HTML 4] %events ,[CODE(HTMLa)[[[onmousedown]]]],,, ,[HTML 4] %events ,[CODE(HTMLa)[[[onmousemove]]]],,, ,[HTML 4] %events ,[CODE(HTMLa)[[[onmouseout]]]],,, ,[HTML 4] %events ,[CODE(HTMLa)[[[onmouseover]]]],,, ,[HTML 4] %events ,[CODE(HTMLa)[[[onmouseup]]]],,, ,[HTML 4] %events ,[CODE(HTMLa)[[[src]]]],[CODE(SGML)[%[[URI]]]],,埋込み資源,[HTML 4] ,[CODE(HTMLa)[[[style]]]] ,,,スタイル情報 ,[HTML 4] %coreattrs ,[CODE(HTMLa)[[[tabindex]]]],[CODE(SGML)[[[NUMBER]]]],,タブ順,[HTML 4] ,[CODE(HTMLa)[[[title]]]] ,,,注釈的題 ,[HTML 4] %coreattrs ,[CODE(HTMLa)[[[type]]]],'''[CODE(HTML)[image]]''',[CODE(HTML)[[[text]]]],制御子の種類,[HTML 4] ,[CODE(HTMLa)[[[usemap]]]],[CODE(SGML)[%[[URI]]]],,クライアント側画像写像,[HTML 4] ,[CODE(HTMLa)[[[value]]]],,,初期値,[HTML 4] ,[CODE(HTMLa)[[[width]]]],,,幅,[[NN2]]+ [11] 意味的に [CODE(HTMLa)[src]] 属性は必須でしょう。 また、著者は代替文を [CODE(HTMLa)[alt]] 属性で提供するべきです。 [SRC[HTML 4 17.4.1]] [[#comment]] * 名前 [4] 制御子名は [CODE(HTMLa)[name]] 属性によって指定します。 [CODE(HTMLa)[name]] 属性は省略可能です。 [[#comment]] * 初期値, 現在値 [5] 指向装置を[[かちっ]]すると、フォームは提出されます。 この時、かちっした座標 ([VAR(math)[x]] 座標は左、 [VAR(math)[y]] 座標は上からの画素数) が提出されます。 [SRC[HTML 4 17.4.1]] [12] マウスなどの装置で座標を選べない時にはどうするのか規定されていません。 [CODE(HTMLa)[[[ismap]]]] のように [SAMP(math)[(0, 0)]] とでもするのでしょうか、それともそのような場合 [CODE(HTML)[image]] で提出はできないのでしょうか。 [15] 1996年に発表された W3C NOTE >>14 では、 [SAMP[tstname.x=&tstname.y=]] のように空の値を提出するべきことと、 既存の UA との互換性のために鯖側は座標 [CODE(math)[(0, 0)]] をそれと等価に扱うべきことを述べていました。 (後者の方法は非推奨とされていました。) ただし、後の HTML 4 のフォーム提出方法では、 [[現在値]]が空の時は[[成功]]と見なさないべきであることが規定されています。 この仕様との整合性的にも、現実の実装的にも、空の値の方法は今となっては好ましくないでしょう。 [14] [CITE[Imagemapped Images and Image-Incapable User Agents]], , 発表当時の URI は 。 [Q[Status of this document]] によれば現在の W3C [[WD]] のような位置付けだったらしいのですが、 2004年現在、 によれば [[Working Group Note]] に分類されています。同時期の他の HTML 系 WD とは異なり、直接 HTML 4 仕様書に取込まれてはいないようです。 [[#comment]] * UA による利用 [6] 提出ボタンを[[活性化]]すると、フォームは[[提出]]されます。 [SRC[HTML 4 17.2.1]] [10] [CODE(HTMLa)[src]] 属性によって指定された画像はボタンを飾るのに使われます。 [SRC[HTML 4 17.4.1]] 画像の[[代替文]]が [CODE(HTMLa)[[[alt]]]] 属性により提供されます。 [13] [CODE(HTMLe)[[[button]]]] によるボタンは起伏をつけて構いません。 [CODE(HTMLe)[input]] によるボタンは起伏をつけなくて構いません。 [SRC[HTML 4 17.5]] この規定は、多くの視覚 UA で [CODE(HTMLe)[button]] はその環境のボタン制御子に似せて、 [CODE(HTMLe)[input]] [CODE(HTMLa)[type]] [CODE(HTML)[image]] は画像だけで枠無しでレンダリングされることを言っているのでしょう。 [[#comment]] * 他との関係 [11] 画像による提出ボタンで、[[かちっ]]した座標を鯖側で利用することができます ([[鯖側画像写像]])。しかし、画像に対応していない UA や、 対応していても[[マウス]]などで座標を選べない場合には、 利用者が不利益を被りかねません。 鯖側画像写像として使いたい場合には、複数の提出ボタンを用意したり、 スクリプトと[[クライアント側画像写像]]を組合せるなどして、 そのような場合にも配慮するべきです。 [SRC[HTML 4 17.4.1]] [7] 提出ボタンは1つのフォームに任意個 (零個以上) 用意できます。 提出ボタンは [CODE(HTMLa)[[[type]]]] が [CODE(HTML)[[[submit]]]] の [CODE(HTMLe)[[[input]]]] 要素や [CODE(HTMLa)[type]] が [CODE(HTML)[submit]] の [CODE(HTMLe)[[[button]]]] 要素でも定義できます。 ([CODE(HTMLe)[button]] 要素の方が新しい分高機能です。) [CODE(HTMLa)[type]] が [CODE(HTML)[submit]] の [CODE(HTMLe)[[[input]]]] は札に文字しか使えませんが、 [CODE(HTMLe)[button]] はほとんどなんでも (もちろん画像も) 使えます。 フォームの提出は提出ボタンの他、 UA 依存の方法でも行えるかもしれません。 また、スクリプトによっても行えるかもしれません。 [8] フォームとは関係ない[[画像写像]]は、 [CODE(HTMLe)[[[img]]]] 要素や [CODE(HTMLe)[[[object]]]] 要素と [CODE(HTMLe)[[[a]]]] 要素を組合せて実現できます。 [[#comment]] * メモ