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

押された状態が伝わらないトグルボタン

お気に入りボタンは押すとハートが塗りつぶされますが、押された状態がCSSのクラスにしかないため、支援技術にはどちらの状態でも同じボタンとして伝わります。

WCAG 2.2
SC 4.1.2A
必須とする規格
Section 508 · EN 301 549(EU) · JIS X 8341-3
問題あり <button class="fav is-saved" aria-label="お気に入り">
アクセシビリティの問題を示した図: 保存された?伝わらない。
01

問題

スクリーンリーダーの利用者は、お気に入りボタンを押せても、商品が保存されたか、押して何か変わったかが分かりません。

02

試してみる

Tabでハートへ移動し、EnterかSpaceで押してください。

下の欄に、スクリーンリーダーの読み上げが出ます。リュックが保存されたかどうか分かりますか?

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

キャンバス地のリュック

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

(Tabでハートへ移動)

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

03

修正方法

aria-pressed、チェックボックス、または押すと何が起きるかを示す名前で、押された状態を伝えます。

  1. 1状態をコードで伝える。aria-pressed、チェックボックス、または次の操作を示す名前を使う。
  2. 2状態か名前のどちらか一方で伝え、名前が変わるボタンにaria-pressedを付けない。
  3. 3押された見た目は読み上げられる値から描き、色だけで示さない。
修正前 状態を描くだけのボタン
<button type="button" class="fav" aria-label="お気に入り">  <svg aria-hidden="true" viewBox="0 0 24 24"><path d="…"/></svg></button>
修正後

Aria-pressedを持つトグルボタン

<button type="button" class="fav" aria-pressed="false" aria-label="お気に入り">  <svg aria-hidden="true" viewBox="0 0 24 24"><path d="…"/></svg></button>

AI コーディングアシスタントで修正しますか? このガイドを Markdown で取得

04

修正の確認

5つの確認

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

5件中0件を確認済み

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

制限

このサンプルは、どのアプリケーションでも同じ結果になることを保証するものではありません。トグルボタンの読み上げ方はスクリーンリーダーによって異なり、名前の変化が読み上げられるかどうかは、スクリーンリーダーとブラウザーの組み合わせによります。CSSは最小限の例なので、フォーカス表示とハートのコントラストを実際の配色で確認してください。商品を保存してからお気に入りの一覧で見つけるまでの操作全体を、使用する支援技術で確認してください。

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

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

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

再テストの進め方