本文へ移動
easeweb
ご相談
トピックを検索

何を入力するのか分からない、あいまいなフォームのラベル

ギフトカードのフォームが、欄のラベルを「名前」「メール」「日付」と一語ずつにしているため、自分の情報と受け取る人の情報のどちらを書くのか、どの日付なのかが分かりません。

WCAG 2.2
SC 2.4.6AA
必須とする規格
Section 508 · EN 301 549(EU) · JIS X 8341-3
問題あり <label for="name">名前</label>
アクセシビリティの問題を示した図: 認知:誰の名前を書くの?
01

問題

ラベルが一般的な一語だけの欄には、何を入力すればよいか分からず、受け取る人の情報を書く欄に自分の情報を書いたり、違う日付を入れたりしてしまいます。

02

試してみる

友人にギフトカードを贈るつもりで、フォームに入力してください。

入力する前に、各欄が誰の名前とメールアドレスを求めているのか、どの日付なのかを考えてください。カードのプレビューに、ショップが各回答をどう使うかが出ます。Tabキーで欄を移動し、画面のラベルとスクリーンリーダーが読む言葉を比べてください。特に「問題2」で比べてみてください。

問題あり 修正できますか?

Larkspur $50 ギフトカード …

送信先: …、送信日: …

ギフトカードを贈る

スクリーンリーダーの読み上げ:

(Tabで入力欄へ移動)

再現デモです。「問題あり」は意図的にアクセシブルでない状態にしています。

03

修正方法

足りない言葉を表示されているラベルに書き込むか、誰の情報かを示すlegendの下に短いラベルを置きます。

  1. 1表示されているラベルは、グループのlegendと合わせて読むと、何を入力するのかが分かる。
  2. 2legendで区別できない限り、二つの欄に同じラベルを付けない。
  3. 3何を入力するのかを伝える言葉は、コードの中だけでなく画面にある。
修正前

デザインどおりの一語のラベル

<form>  <label for="name">名前</label>  <input id="name" name="recipient-name" type="text">   <label for="email">メール</label>  <input id="email" name="recipient-email" type="email">   <label for="date">日付</label>  <input id="date" name="send-date" type="date">   <label for="message">メッセージ</label>  <textarea id="message" name="message"></textarea>   <button type="submit">ギフトカードを購入</button></form>
修正後

足りない言葉を各ラベルに書く

<form>  <label for="name">受け取る人の名前</label>  <input id="name" name="recipient-name" type="text">   <label for="email">受け取る人のメールアドレス</label>  <input id="email" name="recipient-email" type="email">   <label for="date">送信日</label>  <input id="date" name="send-date" type="date">   <label for="message">メッセージ</label>  <textarea id="message" name="message"></textarea>   <button type="submit">ギフトカードを購入</button></form>

AI コーディングアシスタントで修正しますか? このガイドを Markdown で取得、または全ガイドをコーディングエージェントで使う。

04

デザインの案

ラベルは親しみやすくても短くてもよく、何を入力するのかが分かれば十分です。

ギフトカードのフォームの欄に付けるラベルを、さらに4通り示します。それぞれのラベルを、画面にそれしかないつもりで読み、何を入力するかを言ってみてください。2つは分かり、2つは推測するしかありません。

デザインファイルで

  • 各ラベルはサイトに出る言葉のまま書く(「受け取る人の名前」)。開発者は描かれたものを写すため。
  • 各欄の横に、何を、誰の情報として入れるかをメモする(「受け取る人の名前。カードに印字」)。レビューする人と翻訳者が使う。
  • 最も長いラベルを幅390ピクセルのスマートフォンの画面で描き、本物の言葉に合うレイアウトにする。
  • 二人について尋ねるフォームでは、それぞれの人の欄の上に見出しをフォームの一部として描く。
  • エラーメッセージにはラベルの言葉を使う。「受け取る人のメールアドレスを入力してください」。

合格

  • 質問の形のラベル 「どなたに贈りますか?」は、ショップが話しかけるように読め、誰の情報が欲しいのかを伝えるので、自分の情報を入れてしまうことがありません。文字色は#1f2d2b(14.30:1)で、小見出しほどの大きさにします。スマートフォンの幅でも、各質問は1行に収めます。
  • 送信日

    例:2027 3 14

    日・月・年の上に一つの見出し 見出しが「送信日」とどの日付かを伝え、#5b6764(5.88:1)の一行が例を示し、各欄には年・月・日のラベルが付きます。意味は見出しが担うので、欄は入る数字の幅まで細くできます。

不合格

  • 日付
    形式だけのラベルWCAG 2.4.6 3つの整った欄の上のDD、MM、YYYYは正確に見えますが、日付の書き方を伝えるだけで、どの日付かは伝えません。カードを送る日も、友人の誕生日も、購入者自身の生年月日も当てはまります。
  • グリッドに合わせて切られたラベルWCAG 2.4.6 整ったグリッドが、すべてのラベルに同じ狭い列を与え、長いラベルを省略記号で切ります。「受け取る人の名前」と「受け取る人のメールアドレス」は、どちらも「受け取る人…」としか見えません。列は最も長いラベルに合わせて描くか、ラベルを欄の上に置いてください。
05

修正の確認

マウスを使わない4つの確認

確認方法: スクリーンリーダー

4件中0件を確認済み

OS、ブラウザーと支援技術のバージョン、ビルド、実施日、各手順の実際の結果を記録してください。欄を追加したとき、ラベルを変えたとき、フォームを翻訳したときは、再度確認します。

制限

このサンプルは、どのアプリケーションでも同じ結果になることを保証するものではありません。扱っているのはラベルの言葉で、ラベルがあるか、欄と結び付いているか(ラベルがない・表示と食い違うフォームの入力欄)、必須項目の示し方(色だけで示された必須項目)、ラベルのほかに欄が必要とするヒントや形式は扱っていません。ラベルが明確かどうかは、フォームを使う人と、その人がすでに知っていることによって変わります。フォームを提供するすべての言語で、実際に使う人と一緒に確認してください。

よくある問題を再現した学習用のサンプルです。実在のクライアントの診断結果ではありません。コードは出発点となる実装例のため、実際の製品でも確認してください。ここでは支援技術でのテスト結果は報告していません。

コードを更新しても、使いやすさを保つために

ガイドの内容を、コーディングエージェントやCIで使える開発ルールにまとめます。更新後は、キーボードとスクリーンリーダーで再テストし、問題が再発していないか確認します。

再テストの進め方