基本フォーム・モジュール

フォーム (HTML)

[1] HTMLフォーム (form) とは、 通常の内容マーク制御子 (コントロール) (control) と呼ぶ特殊な要素、 制御子の (ラベル) からなる文書の部分です。 利用者は普通、制御子を編集することによってフォームをめてから、 フォームを提出します。

[2] 仕様書:

[3]

フォームの再設定 (リセット) (reset)
フォームを再設定すると、制御子現在値初期値に戻されます。 初期値がない時の挙動は未定義です。 HTML 4 17.2
フォームの提出 (submit)
フォームを提出すると、成功制御子の名前と現在値の組がフォーム処理エージェントに渡されます。 HTML 4 17.2, 17.13

概念

[17] 次のような概念や機能があります。

レンダリング

[5] WWWブラウザが頁を読み込みながら徐々にレンダリングしていると、 その頁に含まれるフォームも当然徐々にレンダリングされていくことになります。 しかし、 UA は、 フォーム全体をレンダリングするまで利用者がフォームを提出できないようにするべきです。 クライアント側スクリプトが使われている時にも、 フォームの絡みでうまく動作しなくなる虞があります。 HTML 4 B.6.1

また、タブ移動 (tabindex) にも注意が必要です。 HTML 4 B.6.1

法律に関して

[6] フォーム自体は純粋に技術ですが、そのフォームの使い方により法律に関する問題が関係することがよくあります。 例えば、日本国の法律が適用される場合、 個人情報を扱うのであれば個人情報保護法に注意する必要があります。 また、通信販売等の商取引の目的で使用するのであれば、 特定商取引に関する法律に基づく表示が必要かもしれません。

事業者利用者 (顧客) の所在地など、場合によっては複数の地域法律条例などの対象になることがあるかもしれません。

安全性に関して

[7] なりすまし: フォームが含まれる部分を特定の (信頼できると思われている有名企業や公的機関、あるいは銀行や通販サイトなどの) Webサイトの構成や特定のシステム (Webブラウザオペレーティング・システムの機能など) の画面に見せかけたりして、実際の怪しい情報送信先を偽る手口が取られることがよくあります。 (一般に利用者が常にあらゆることに注意を払い続けることは困難なので、フォームではなく単純なリンクを用意するだけでも怪しい Web頁への誘導に十分利用可能です。)

Web が普及して多くの (知識の乏しい) 人も利用するようになったり、 商取引に利用されることが多くなったりしたこともあり、 近年このようななりすまし行為の温床となる機能や実装方法自体も Webブラウザ等の脆弱性とみなされるようになっています。

しかし、単体の Webブラウザの対策は進んでいますが、 仕様上回避不能な場合もありますし、 Webブラウザ以外の用途が主のソフトウェアに Webブラウザ機能が組込まれている場合は対策が十分でないこともあります。

特に問題が起こり得ると考えられるのは電子メイルHTML などのフォームを利用した場合です。 電子メイルの送信元情報などは容易に詐称可能なことや、 フォーム提出先の情報を明示しない実装が一般的なことから、 信頼できる送信元からの情報提供依頼に偽装し、 しかも (知識の乏しい) 閲覧者に信頼させることが比較的容易です。

[8] 電子メイルフォームを含めて送信し、 受信者提出させる方法は現在のところ然程使われていませんから、 電子メイル利用者エージェントフォームを無効にするのがよいかもしれません。 ただ、正しく使えば非常に有益な機能なだけに、 安全対策のために利用できなくなるのは残念なことでもあります。

HTML 以外の類似したフォーム技術

[24] フォーム

歴史

[4] ウェブのフォームのおおよその進化の過程:

         簡易版フォーム      完全版フォーム      追加機能              関連規格
                                                 isindex
                             HTML+
                               ↓
                             HTML 3
          HTML 2.0  ←←←← (I-D, W3C WD)       file upload
          (RFC 1866)           ↓                (RFC 1867)
            ↓  ↓             ↓                keygen (NN)
      HTML 3.2  HTML 2.x       ↓
     (W3C Rec)  (RFC 2070)→ HTML 4 (Web Forms 1.0)
         ↓                  (W3C Rec)           device-upload
         ↓                    ↓                (W3C Submission)
         ↓                  XHTML 1.0           自動補完 (WinIE 他)   ime-mode (WinIE)
         ↓                  (W3C Rec)           入力制御 (携帯電話)
    Basic        XHTML m12n    ↓                                       XForms 1.0
    Forms Module  (W3C Rec)  Forms Module                               (W3C Rec)
                               ↓
                             Web Forms 2.0                              CSS3
                             (WHAT WD)                                  (W3C Drafts)

フォームの誕生

[29] WWW-Talk 1992: Searching, http://1997.webhistory.org/www.lists/www-talk.1992/0466.html

[30] WWW-Talk Jan-Mar 1993: Re: Searching, http://1997.webhistory.org/www.lists/www-talk.1993q1/0005.html

[31] WWW-Talk Jan-Mar 1993: INPUT tag (was: Searching), http://1997.webhistory.org/www.lists/www-talk.1993q1/0079.html

[216] HTML要素概説
要素名
input
要素名
var
日付
説明
Jim Whitescarver電子メールで、 Web 以前のシステムの経験をもとに input を実装する意向を示した。 >>41 に転送した電子メールでは input, var の具体的な仕様も説明している。 >>42 現在の input とは若干の違いがあるが、その最古の提案である。
出典

[28] WWW-Talk Jan-Mar 1993: Re: INPUT tag (was: Searching), http://1997.webhistory.org/www.lists/www-talk.1993q1/0083.html

[27] WWW-Talk Jan-Mar 1993: Re: QueryForms and Input tag, http://1997.webhistory.org/www.lists/www-talk.1993q1/0088.html

[43] HTML要素概説
要素名
queryform
要素名
recall
要素名
if
要素名
input
日付
説明
Dan ConnollyJim Whitescarver への返信でフォーム機能案を示した。 input はより現行のものに近づいた。 queryformrecall, if などを使った照会文の雛形を head 内で記述するもので、 XFormsmodel に近い。
出典

[25] WWW-Talk Jan-Mar 1993: QueryForms and Input tag, http://1997.webhistory.org/www.lists/www-talk.1993q1/0085.html

[26] WWW-Talk Jan-Mar 1993: Re Re QueryForms and Input tag, http://1997.webhistory.org/www.lists/www-talk.1993q1/0089.html

[44] HTML要素概説
要素名
input
要素名
select
要素名
choice
要素名
input
日付
説明
Dave RaggettDan Connolly への返信でフォームコントロールの要件を整理し、 input, select, choice の案を提示した。 choice は現在の option に当たる。 select の初出。
出典

[32] WWW-Talk Jan-Mar 1993: Re: INPUT tag (was: Searching), http://1997.webhistory.org/www.lists/www-talk.1993q1/0093.html

[45] WWW-Talk Apr-Jun 1993: HTML+ DTD in ftp://info.cern.ch/pub/www/dev/htmlplus.dtd, http://1997.webhistory.org/www.lists/www-talk.1993q2/0430.html

[46] HTML要素概説
要素名
input
要素名
select
日付
説明
Dave Raggett電子メールによると、 直近の議論に基づき input, select が HTML+ DTD に追加された。 当時の版は現存せず、 choice なのか option なのか、 form はあったのかは不明。
出典
[50] HTML要素概説
要素名
form
要素名
input
要素名
mh
日付
説明
頃の現存最古の HTML+ DTD には form, mh, input がある。 form, input は現行仕様に近いが、違いもある。 mh提出時のメールヘッダーを指定するもので、現在の mailto: URLsubject 引数に当たる。

[33] WWW-Talk Jul-Sep 1993: Submitting input-form data to server, http://1997.webhistory.org/www.lists/www-talk.1993q3/0810.html

[48] HTML要素概説
要素名
form
要素名
input
日付
説明
まで開催されていた WWWWW で入力フォーム機能も議論された。 その詳細は伝わらないが、 form, input はほぼ現在の形で合意されたようだ。 ViolaWWW がこれを直ちに実装した。
出典

[47] WWW-Talk Jul-Sep 1993: Submitting input-form data to server, http://1997.webhistory.org/www.lists/www-talk.1993q3/0812.html

[34] WWW-Talk Jul-Sep 1993: Fill-out form support, , http://1997.webhistory.org/www.lists/www-talk.1993q3/0816.html

[35] WWW-Talk Jul-Sep 1993: suggestion for form/ismap handling, http://1997.webhistory.org/www.lists/www-talk.1993q3/0968.html

[37] >>36>>34 から参照されているが、現存最古が >>36>>38 はそれと同内容で、時刻が1994年。

[39] >>36Mosaic for X version 2.0 の新機能紹介。 >>40Mosaic for X version 2.0 の公開を伝えるのメール。

[51] >>34 はその投稿数時間前に大きく変わったといっていて、そのしばらく後に prerelease 3 が出るという。 prerelease 2 にもフォーム機能は含まれていて、 3 とはかなり違ったものだったということか。

[52] What's New, October 1993, , https://web.archive.org/web/19961220064730/http://www.ncsa.uiuc.edu/SDG/Software/Mosaic/Docs/old-whats-new/whats-new-1093.html

[53] >>52 条に

Note: This page requires fill-out forms support as found in Mosaic 2.0 prerelease 4 or later.

とある。 prerelease 3 と 4 の間にも機能追加があったものか。

[54] >>52 条に

If you are using Mosaic 2.0 prerelease 6,

とある。すると prelease 6 でも変更があった可能性がある。

[55] HTML要素概説
要素名
form
要素名
mh
要素名
input
要素名
textarea
要素名
select
要素名
option
日付
説明
付の HTML+ 仕様に form, mh, input, textarea, select, option, がある。 draft-raggett-www-html-00
[49] HTML要素概説
要素名
form
要素名
input
要素名
select
要素名
option
要素名
textarea
要素名
isindex
日付
説明
頃公開された NCSA Mosaic 2.0 は現行仕様と同じ form, input, select, option, textarea を実装していた。これより前の prerelease 版から実装されていた。 isindexform をエミュレートする形で再実装された。
出典

HTML4

[21] HTML 4 仕様書は、 既知の問題点として、 特に次のことを (もしかしたら将来の規格で改善するかもしれない例として) 取り上げています。

[22] HTML 4 仕様書 B.6.2 Future projects IW:HTML4:"appendix/notes.html#h-B.6.2"

  • フォーム欄の種類が現代的な UI に比べて少ない。例えば表データやスライド器や複数頁配置の機能が無い。
  • 鯖が提出したフォームの欄の値を更新できず、 HTML 文書全体を送らなければならない。
  • 音声ブラウザ視覚障害者がフォームと対話するのに問題がある。
  • input//imageクライアント側画像写像を使えるように usemap 属性を追加するのがよいかも。位置に対応する area 要素が鯖に渡す値を提供する。鯖側のスクリプトを修正しなくて済むように、 area が座標を提供できるよう拡張するのが適当かも。

[56] Forms Overview, InetSDK, , https://web.archive.org/web/20001109225300/http://msdn.microsoft.com/workshop/author/forms/formsoverview.asp

Web Forms 1.0

[20] Web Forms 1.0 は、 HTML 4.01フォーム機能の通称です。 Web Forms 2.0 に対する拡張前という意味で使われることがあった語です。

HTML5

[57] HTML要素概説
要素名
form
要素名
input
日付
説明
Google検索のデータベースを使った調査によると、 要素の利用数第18, 19位が form, input でした。
出典

メモ

[9] * がついた項目は必須ですのようになってることが多い中、逆に* がついた項目は任意ですなこともあって紛らわしい。

(名無しさん 2006-10-30 23:57:10 +00:00)

Web Forms

[10] Web Forms は、ウェブで用いられている HTMLフォームの仕組みです。

[11] Web Forms 1.0 は、 HTML 4 のフォームの章で定義されたフォーム機能です。

元々の HTML 4 版と、そのまま XML に移植した XHTML 1.0 版、 XHTML m12nForms モジュールの大きく3種類がありますが、 いずれも本質的には同じです。

[12] Web Forms 2.0 は、 WHAT が提案する拡張されたフォーム機能です。 Web Forms 2.0 と既存の UA のフォーム関連の拡張に加えて様々な新機能が含められています。 HTML 4 の拡張と XHTML 1 モジュールの2種類の使い方ができます。

[13] ところで、 Web Forms 1.0 は初代のフォーム (HTML 2.0 版 ≒ HTML 3.2 版) にファイルうpとか fieldset とかを追加したものなのですけど、初代の方にも誰か番号を付けてくれないのですかね? 0.0 とか 0.5 とか? HTTP のように 0.9 というのもありかも。

XHTML m12n Basic Forms モジュール (HTML 3.2 版 + label) にもついでに番号を振ってもらえるといいかもとか。

[14] Web Forms 2.0 ( 版) http://www.whatwg.org/specs/web-forms/current-work/#forms

[15] 使いやすさ日記: 672. Googleが作るとクレジット決済Webフォームはこうなる ( ( 版)) http://usability.ueyesdesign.co.jp/diary/672_googleweb.html

[16] XBL 2.0 ( ( 版)) http://dev.w3.org/2006/xbl2/Overview.html#html-forms

[18] DocBook 5.x Customizations ( 版) http://docbook.org/schemas/5x-custom.html

This is a community project; it is not an official product of the DocBook Technical Committee.

The “forms” schema adds HTML forms elements to DocBook.

[19] Google Online Security Blog: Next Steps Toward More Connection Security () https://security.googleblog.com/2017/04/next-steps-toward-more-connection.html

Beginning in October 2017, Chrome will show the “Not secure” warning in two additional situations: when users enter data on an HTTP page, and on all HTTP pages visited in Incognito mode.

[23] New in Chrome 62  |  Web  |  Google Developers () https://developers.google.com/web/updates/2017/10/nic62