フォームの<input>要素にはラベルが必要です

ルールID: label
ルールセット: axe-core 4.4
ユーザーへの影響: 緊急
ガイドライン: WCAG 2.1 (A), WCAG 2.0 (A), Section 508

Need accessibility training?

Deque University offers an extensive curriculum of self-guided online courses for every skillset and experience level.

コンプライアンスデータと影響

ユーザーへの影響

緊急
軽微
緊急

影響を受ける障害

  • 視覚障害
  • ロービジョン
  • 視聴覚障害
  • 運動障害

規格

  • WCAG 2.1 (A)
  • WCAG 2.0 (A)
  • Section 508

WCAG 達成基準 [WCAG 2.1 (A)]

  • 1.3.1: 必須: Info and Relationships
  • 4.1.2: 必須: Name, Role, Value

WCAG 達成基準 [WCAG 2.0 (A)]

  • 1.3.1: 必須: Info and Relationships
  • 4.1.2: 必須: Name, Role, Value

Section 508 ガイドライン

  • 1194.22: 必須: Web based intranet and Internet Information & Applications
  • 1194.22 (n): 必須: When electronic forms are designed to be completed on-line, the form shall allow people using assistive technology to access the information, field elements, and functionality required for completion and submission of the form, including all directions and cues.

修正方法

ラベルをすべてのフォームコントロールにプログラムで関連付け、重複したラベルがないことを保証します。これは、暗示的な label 要素と明示的な label, aria-label, または aria-labelledby 属性値を使用することで可能になります。

ラベルを持つべきフォーム要素

  • テキスト入力欄、例: <input type="text"><input type="password"> および <textarea>
  • ラジオボタン、<input type="radio">
  • チェックボックス、<input type="checkbox">
  • 選択式メニュー、<select>

この必須項目に対する唯一の例外は:

  • ボタン — ボタンは自己でラベルを持つため
  • 非表示の入力欄 — type 属性の値が hidden な入力欄 (例: type="hidden")。これらの入力欄は非表示かつユーザー入力ができないため、ラベルは必要ない

ラベルを追加する際は、次のことを避けてください:

First name: <input type="text" name="fname">

このマークアップは、"First name:" という文言が隣接したテキストボックスを表示します。目の見えるユーザーは問題なくテキストと入力欄を関連付けられます。しかし、この関連性は、特にフォームが長く複雑になるほど、目の見えないユーザーにとっては明確ではありません。このあいまいさは、特に必須情報が名前より複雑だった場合、よりエラーを発生しやすくします。

上記の例を修正するには、ラベルテキスト (つまり "First name:") と入力欄を関連付ける必要があります。ベストプラクティスは、暗示的ではなく、明示的な関連付けを追加することです。すべてのモダンブラウザーと主要な支援技術は、すべてのフォーム要素に対する明示的なラベリングをサポートしています。明示的なラベルはフォーム要素のクリック可能な範囲を広げるという利点もあり、すべてのユーザー、特に運動障害のあるユーザーにとって、比較的小さなフォーム要素をクリックしやすくします。

ラベルを追加する方法

  • 入力欄を囲む label 要素を追加する。これにより、ラベルと入力欄の間に、明示的ではなく、暗示的な関連性を作る。
  • for 属性の値が入力の ID 属性である label 要素を入力欄と関連付ける。これにより、ラベルと入力欄の間に暗示的ではなく明示的な関係性を作る。
  • aria-label 属性値を使用する。
  • aria-labelledby 属性値を使用する。

これらのさまざまなラベル実装方法についての詳細は、このルールの一部として実行される自動チェックを参照してください。

最後に、各 input 要素のラベルは一つのみであることを確認しましょう。input 要素のどれかにヘルプテキストがある場合、このテキストが label 要素のテキストと異なる必要があることに注意してください。

なぜ重要なのか

効果的なフォームラベルはアクセシブルなフォームを作るために欠かせません。チェックボックス、ラジオボタン、入力欄などのフォーム要素の目的は、たとえフォーム要素がプログラムによりラベル付けされていなくても、目の見えるユーザーにはしばしば明らかです。スクリーン・リーダーのユーザーは、フォーム欄を特定するために、役に立つフォームラベルを必要とします。すべてのフォーム要素にラベルを追加することは、あいまいさを取り除き、よりアクセシブルな製品に貢献します。

フォーム要素のラベルが存在しない場合、スクリーン・リーダーのユーザーは求められている入力データを把握できません。スクリーン・リーダーは、確立したラベルの関係性 (あるいはラベルとして機能する冗長なテキスト) がない限り、入力オブジェクトに関する情報をプログラムによって解釈できません。

ラベルの欠如は、スクリーン・リーダーに読み上げられる時、欄にフォーカスが移動することを妨げ、運動制限のあるユーザーは、ラベルをクリックすることにより活性化されるコントロールのより大きいクリック可能な範囲による恩恵を受けられません。

ルールの説明

各フォーム要素にはプログラムで関連付けられた label 要素がなければなりません。

仕組みについて (簡単に言うと)

すべてのフォーム要素にプログラムで関連付けられたラベルが存在することを確認します。

リソース

axe 4.4 ルールの一覧 を参照する

この情報は役に立ちましたか?

フィードバックはすでにいただいております。ありがとうございました。.

回答内容は以下の通りです:

この情報は役に立ちましたか?
フィードバックが送信された日時: