edubun
日本語

フォームの基本

よくできたフォームでは、入力欄の横の「Email」という語をクリックすると、カーソルが入力欄に移ります。この小さな工夫は、label要素がきちんとはたらいている証拠です。

フォームのはたらき

検索ボックス、登録ページ、購入画面はどれもフォームです。<form> 要素が入力部品をまとめ、訪問者が送信すると、ブラウザーは各部品の name と値の組を、フォームの action 属性のアドレスに送ります。method 属性は送り方を示します。get はデータをアドレスに入れるので、ブックマークしたくなる検索に向いています。post はリクエストの本体に入れて送るので、注文のようにデータを変えるものに向いています。HTMLはフォームをつくり、届いたものをどうするかはサーバーのプログラムが決めます。

<form action="/subscribe" method="post">
  <label for="name">Name</label>
  <input id="name" name="name" type="text" autocomplete="name">

  <label for="email">Email</label>
  <input id="email" name="email" type="email" required autocomplete="email">

  <button type="submit">Subscribe</button>
</form>
各labelは、forとidの値を一致させて入力欄と結びつけています。

どの入力部品にもラベルを

<label> 要素は入力部品に名前をつけます。二つを結びつけるには、inputに id を、labelに同じ値の for 属性をつけるか、inputをlabelの中に入れます。結びつけると二つのことが起こります。入力欄にフォーカスが移ったときスクリーンリーダーがラベルを読むので、利用者にはただの「テキスト入力」ではなく「Email、テキスト入力」と聞こえます。また、ラベルをクリックすると入力欄にフォーカスが移ったりチェックボックスにチェックが入ったりするので、だれにとっても、特にスマートフォンを使う人にとって、押せる範囲が広がります。placeholder(入力欄の中の灰色のヒント文字)はラベルではありません。入力を始めるとすぐに消え、コントラストが低いことが多く、無視する支援技術もあります。

入力の種類

<input> の type 属性で入力部品が変わります。text は初期設定の一行の入力欄です。email、tel、url は見た目は似ていますが、スマートフォンではそれに合ったキーボードを表示し、ブラウザーはメールアドレスの形が正しいかを確かめます。number は数字を受けつけ、min と max を指定できます。password は入力した文字を隠し、date はカレンダーを表示し、checkbox と radio はチェックを入れる部品です。長い文章には <textarea> を、一覧から選ぶには中に <option> 要素を入れた <select> を使います。

選択肢をまとめる

一つの質問に属するラジオボタンは同じ name をもち、一度に一つしか選べません。グループを <fieldset> で囲み、質問を <legend> に入れましょう。するとスクリーンリーダーは、各選択肢といっしょに質問も読み上げます。「Loaf size、Small、ラジオボタン、1/2」のようにです。それでも、ラジオボタン一つ一つにラベルをつけます。

ボタンと組みこみのチェック

フォームの中の <button> は、初期設定ではフォームを送信します。type="submit" と書けばそれがはっきりし、type="button" と書けば、JavaScriptが役割を与えるまで何もしないボタンになります。送信する前に、ブラウザーが入力欄を確かめてくれます。required は入力欄が空ならフォームを止め、type="email" は@のない文字を受けつけず、minlength、min、max は制限を決めます。こうしたチェックは訪問者が早めにまちがいを直すのに役立ちますが、訪問者のブラウザーで動くので回避できます。そのため、サーバーでもう一度データを確かめなければなりません。autocomplete 属性に email や name などの値をつけると、ブラウザーが保存された情報を入力できるので、だれにとっても入力の手間が省け、とくに運動や記憶に困難のある人の助けになります。

下のエディターでは、フォームはサンドボックスの中に表示されるので、「Subscribe」を押してもどこにも何も送られません。「答え合わせ」ボタンはHTMLを見るだけです。
form入力部品をまとめ、その名前と値を送る
label入力部品に名前をつける。forをinputのidに合わせる
name値といっしょにサーバーへ送られるキー
required送信する前に入力しなければならない欄
fieldset / legend関係のある入力部品を一つの質問のもとにまとめる
placeholder入力欄の中のヒント文字。ラベルではない
method="post"リクエストの本体でデータを送る。注文のような変更に使う
  1. labelに for="phone" があります。どのinputのラベルですか?
    • id="phone" のinput
    • name="phone" のinput
    • idが何であれ、次のinput
  2. placeholderだけではラベルとして不十分なのはなぜですか?
    • 入力すると消え、コントラストが低いことが多いから
    • 正しいHTMLではないから
    • 何も送らないから
  3. スマートフォンでメール用のキーボードを表示し、@を確かめる入力の種類はどれですか?
  4. 二つのラジオボタンが、どちらか一方しか選べないようにします。何を共有しなければなりませんか?
    • name
    • id
    • value
  5. fieldsetの質問を入れる要素はどれですか?
    • legend
    • caption
    • label
  6. ブックマークしたくなる検索フォームに合うmethodはどれですか?
    • get
    • post
  7. ブラウザーが必須の入力欄を確かめます。それでもサーバーで確かめる必要はありますか?
    • はい。ブラウザーのチェックは回避できるから
    • いいえ。ブラウザーで十分
    • パスワードだけ
  8. 何行にもわたるメッセージに合う要素はどれですか?
    • textarea
    • input type="text"
    • select
  9. 正しく結びつけたラベルをクリックすると、何が起こりますか?
    • その入力欄にフォーカスが移るか、チェックが入る
    • フォームが送信される
    • 入力欄が空になる
  10. 保存されたメールアドレスをブラウザーに入力させる属性はどれですか?
    • autocomplete="email"
    • placeholder="email"
    • value="email"
ポイント
  • formは各部品の名前と値を、getかpostでactionに送ります。
  • どの入力部品にもlabelをつけます(forをidに合わせる)。placeholderはラベルではありません。
  • 正しいtypeを選び、ラジオボタンはfieldsetとlegendでまとめ、サーバーでもう一度確かめます。
このコースの出典 (10)
  • WHATWG, HTML Living Standard (html.spec.whatwg.org, checked 2026-10-17)
  • MDN Web Docs, Learn web development: Structuring content with HTML, and the HTML element reference (developer.mozilla.org/en-US/docs/Learn_web_development/Core/Structuring_content and developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements, checked 2026-10-17)
  • MDN, HTML images (alt text guidance, checked 2026-10-17)
  • W3C WAI, Images tutorial and alt decision tree (w3.org/WAI/tutorials/images/decision-tree, checked 2026-10-17)
  • CERN, A short history of the Web (home.cern/science/computing/the-birth-of-the-web/short-history-web/, checked 2026-10-17)
  • W3C and WHATWG memorandum of understanding, 28 May 2019 (w3.org/2019/04/WHATWG-W3C-MOU.html, checked 2026-10-17)
  • W3C, Using ARIA, first rule of ARIA use (w3.org/TR/using-aria/, checked 2026-10-17)
  • W3C Markup Validation Service (validator.w3.org, checked 2026-10-17)
  • MDN, Viewport meta element (checked 2026-10-17)
  • Every code exercise was checked with a Playwright probe against a reference solution.

確認日: 2026-10-17