Accessibility
フォームラベルと名前を正しく付ける
ラベルはフォームの説明だけではありません。ボタン、検索欄、アイコン、埋め込み要素が何をするかを、DOM上でも理解できる状態にします。
ui.design: labelui.design: button-nameui.design: link-nameui.design: frame-title
まず確認する症状
- placeholderだけで入力欄の意味を示している。
- アイコンボタンやiframeに読み取れる名前がない。
なぜ問題か
- 支援技術は見た目の近接関係だけでは目的を判断できません。
- ラベル不足はフォーム完了率にも影響し、エラー時の復帰を難しくします。
診断で見る指標
labelとinputの関連
aria-labelの妥当性
button/link name
エラーメッセージの関連
修正方法
最小修正
見えるlabelを追加する
入力欄にはlabel要素を使い、placeholderに依存しないようにします。
推奨修正
補足とエラーを関連付ける
aria-describedbyなどで説明文やエラーを入力欄に接続します。
さらに改善
アイコンボタンの命名規則を作る
検索、閉じる、開く、削除などの操作名をコンポーネントで必須化します。
受け入れ条件
- 01PCとスマホの両方で目視確認し、主なCTAまたは操作対象が迷わず見つかる。
- 02キーボード操作、読み上げ補助、または自動検査で再発しやすい項目を確認する。
- 03修正後にui.designで再スキャンし、同じ所見が残る場合は原因を分解する。
コーディングエージェント向け修正指示
目的: 入力欄、アイコンボタン、リンク、iframeに機械が読める名前を付けてください。placeholderだけの説明を避け、補足やエラーは入力欄に関連付けてください。
参考資料
よくある失敗
- aria-labelを見た目の文言と矛盾させる。
- 見た目だけを整え、見出し、リンク、フォームラベルなどの意味構造を直さない。
- 1つの指摘だけを直し、同じ原因から出た別画面の再発を確認しない。