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

オンかオフかが伝わらないトグルスイッチ

スイッチは色とつまみの位置でオンとオフを示しますが、状態がCSSのクラスにしかないため、支援技術には伝わりません。

問題あり
オン?オフ?伝わらない。
アクセシビリティの問題を示した図。
01

問題

スクリーンリーダーの利用者は、スイッチを見つけられても、オンかオフか、押して切り替わったかが分かりません。

02

試してみる

Tabでスイッチへ移動し、Spaceで切り替えてください。

下の欄に、スクリーンリーダーの読み上げが出ます。メール通知がオンかどうか分かりますか?

問題あり 直してみませんか?

スクリーンリーダーの読み上げ: (Tabでスイッチへ移動)

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

03

修正方法

チェックボックス、switchのaria-checked、またはボタンのaria-pressedで状態を伝えます。

  1. 1切り替えるたびに、公開する状態を見た目と一致させる。
  2. 2名前は変えず、オンとオフは状態で伝える。
  3. 3オンとオフを、色だけでなく位置や文字でも示す。
修正前 状態を描くだけのボタン
<button type="button" class="switch" onclick="this.classList.toggle('is-on')">  メール通知</button>
修正後

スイッチの見た目にしたHTML標準のチェックボックス

<label class="switch">  <input type="checkbox" name="email-updates" checked>  メール通知</label>

この方法を選ぶ理由:まずHTMLの要素を使う

04

修正の確認

5つの確認

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

5件中0件を確認済み

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

制限

このサンプルは、どのアプリケーションでも同じ結果になることを保証するものではありません。switchの役割の読み上げ方はスクリーンリーダーによって異なり、古いものではチェックボックスやトグルボタンとして読み上げることがあります。CSSは最小限の例なので、フォーカス表示と枠のコントラストを実際の配色で確認してください。使用する支援技術で、設定の操作全体を確認してください。

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

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

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

再テストの進め方