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

読み上げを誤らせる、無効なARIA

購入手続きの独自のギフト包装チェックボックスが、状態を "yes" と "no" で書いたり、ロールを aria-role で書いたりしています。どちらもARIAにない言葉のため、スクリーンリーダーには状態が変わらないボックスか、チェックボックスですらないものとして伝わります。

WCAG 2.2
SC 4.1.2A
必須とする規格
Section 508 · EN 301 549(EU) · JIS X 8341-3
問題あり aria-checked="no"
アクセシビリティの問題を示した図: 全盲:チェックは入っている?
01

問題

スクリーンリーダー利用者が、ギフト包装を選んでいるかどうかも、ボックスがチェックできるものかどうかも分かりません。

02

試してみる

Tabキーでギフト包装のボックスへ移動し、Spaceキーでチェックを入れたり外したりしてください。

ボックスが空のときとチェックが入っているときで、表示とスクリーンリーダーの読み上げを比べてください。読み上げはチェックマークに従っていますか?

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

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

(Tabでボックスへ移動)

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

03

修正方法

ロール、属性、値をARIAの定義どおりに書くか、HTML標準のチェックボックスを使ってARIAをなくします。

  1. 1ARIAが定義する言葉だけを使う。aria-role ではなく role、"yes" と "no" ではなく "true" と "false"。
  2. 2ARIA属性は対応するロールにだけ付け、HTML標準の操作要素が持つ状態を重ねて書かない。
  3. 3読み込み時だけでなく、すべての状態で、表示された後のマークアップを確認する。
修正前

状態を "yes" と "no" で書く

<div class="tick-box" role="checkbox" aria-checked="no" tabindex="0">  ギフト包装にする</div>
修正後

ARIAの定義どおりに書く

<div class="tick-box" role="checkbox" aria-checked="false" tabindex="0">  ギフト包装にする</div>

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

04

修正の確認

5つの確認

確認方法: スクリーンリーダー、キーボード、マウス

5件中0件を確認済み

OS、ブラウザーと支援技術のバージョン、ビルド、実施日、各手順の実際の結果を記録してください。コンポーネントや、その状態を保存するコードを変更した際は、再度確認します。

制限

このサンプルは、どのアプリケーションでも同じ結果になることを保証するものではありません。クラス名は仮のもので、チェックボックスは、ARIAを手で書いた独自の操作要素の一例です。作成者の誤りの扱い方はブラウザーごとに違い、バージョンによっても変わるため、一つのブラウザーで正しく聞こえても、確かめられたことはわずかです。言葉が正しいARIAが、使い方も正しいとは限りません。自動チェックで何も報告されなくても、ロールが操作要素に合っているか、状態が画面に従っているかは分かりません。対象とする支援技術で、操作全体を確認してください。

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

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

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

再テストの進め方