STATUS IS UPウェブサイト最適化ウィキ
13有効化
デザインとUX / 有効化

ダークモードのアクセシビリティ:コントラスト、選択、テスト

リリース前にダークモードを検証されたインターフェース選択として扱う:読みやすいコントラスト、視認できるフォーカス、利用可能な画像、ネイティブコントロール、ユーザー上書きを維持する。

ダークモードのアクセシビリティ:コントラスト、選択、テスト — ビジュアルガイド
読む
8 分
出典
8
再検証
2027-03-27
レビュー済み
リリース管理責任を持つアクセシビリティ意識のあるフロントエンドレビュワー
短い答え

まず決断から始める。

ダークモードは単なる色の反転ではなく、完全なテーマとして実装します。意義あるすべての表面と状態に対してセマンティックなカラートークンを定義し、初期テーマは OS の設定を使い、製品上必要な場合はアクセシブルな手動切替を提供します。読み物、サインイン、検索、フォーム送信、購入など人が実際に操作するページで両方のテーマをテストします。重要なインタラクションが知覚可能で操作可能であると確認されて初めてテーマは準備完了です。

WCAG に基づく基準では、通常のテキストとテキストの画像は少なくとも 4.5:1 のコントラストが必要で、見出しなどの大きなテキストは 3:1 が許容されます。識別可能なコントロール、必須状態、意味のあるグラフィックは隣接する色に対して 3:1 が必要です。キーボードフォーカスを可視化し、ブラウザのカラースキーム宣言を行い、forced-colors モードも確認してください。自動チェックは問題候補を見つけますが、実際のフローを人が操作して評価する必要があります。

ビジュアルガイド

作業をシステムとして見る。

個別の戦術に取り掛かる前に、この記事の意思決定をこのマップで結び付けてください。

SIU有効化
01まずユーザーの選択とトークンシステムから始める
02レンダリングされたテーマでコントラストを測る
03キーボードフォーカス、フォーム、状態変化を保護する
04画像、埋め込み資産、ブラウザ提供 UI を扱う
01

まずユーザーの選択とトークンシステムから始める

初期値は prefers-color-scheme を使ってシステム設定を採用します。切替を提供する場合は、キーボード操作可能なコントロールでアクセシブルな名前を付け、現在の選択をプログラム的に公開してください。ブラウザ文脈内で手動選択を優先させ、別のデバイスやプライベートセッションにそれが引き継がれると約束しないでください。

色は見た目でなく役割で命名してください:canvas、surface、text、muted text、border、link、accent、error、success、focus、disabled など。両テーマで各役割をマッピングします。これにより、ライト専用の灰色がダークモードに漏れるのを防ぎ、修正を再利用できるようになります。ダークは本質的によりアクセシブルでも普遍的に好まれるわけでもなく、使いやすくするべき別の体験です。

テーマの優先順位

保存された選択を最優先、システム設定を次にするなどの順序を文書化してチームが同じ結果をテストできるようにします。

コンポーネントのインベントリ

デフォルトだけでなく hover、focus、selected、invalid、disabled、loading、empty、visited-link といった状態も含めます。

02

レンダリングされたテーマでコントラストを測る

WCAG 2.2 の Success Criterion 1.4.3 は通常のテキストとテキスト画像に対して 4.5:1 の最小値、また大きなテキストには 3:1 を定めています。切り上げは不可:4.499:1 は 4.5:1 を満たしません。細い書体は計算上の色より弱く見えることがあるので、よりしっかりした字形か余白を使ってください。

それぞれのレンダリングされた前景と隣接する背景を確認してください。写真、グラデーション、不透明度のあるパネル、ビデオ上のテキストは背景が変化するため、単一のトークン計算では読みやすさを証明できません。不透明な裏打ち、十分なオーバーレイ、あるいは別の配置を使い、現実的なビューポートで検査してください。

コントロールとグラフィック

WCAG 2.1 の Success Criterion 1.4.11 に従い、アクティブなコントロール、必須状態、意味のあるグラフィックを識別する視覚情報は隣接する色に対して 3:1 を満たす必要があります。

色だけに頼らない

エラーや選択状態にはテキスト、アイコン、パターン、位置など色以外の明確な手がかりを付けます。微妙な色合いだけに依存してはいけません。

03

キーボードフォーカス、フォーム、状態変化を保護する

両テーマで Tab 操作を通して確認してください。リンク、ボタン、入力、メニュー、ダイアログ、カスタムウィジェット、テーマ切替のフォーカスは可視でなければなりません。ブラウザのアウトラインを単に取り除かないでください。代替手段を用いるならすべての表面と状態でテスト済みであることが必要です。オフセットされたアウトラインはブレンドするグローより明瞭なことが多いです。

WCAG 2.2 の Focus Appearance は AAA の基準であり、AA 適合の証明ではありませんが有用な目標です:少なくとも 2 CSS-pixel 周囲に相当する指示領域と、フォーカスされたピクセルと非フォーカスのピクセル間で 3:1 のコントラストが推奨されます。エラー、必須、選択、利用不可の状態が意味を保持することも検証してください。

フォームの見直し

入力ヒント、入力済み値、ラベル、ヘルプテキスト、エラーテキスト、無効境界、チェックボックスのマーク、ラジオの選択、送信状態を個別にテストします。

決済や機密フロー

チェックアウトや規制対象のフローではプロバイダのサンドボックスを使い、適切な場合は資格あるアクセシビリティとセキュリティのレビューを受けてください。これは教育的ガイダンスであり、適合やセキュリティ評価を意味するものではありません。

04

画像、埋め込み資産、ブラウザ提供 UI を扱う

ロゴ、イラスト、スクリーンショット、チャート、アイコン、画像に焼き込まれたテキストを両テーマで確認します。再利用されたライト用ロゴが見えなくなることや、チャート凡例が機能しなくなることがあります。用途に合ったアセットや安定した背景を提供してください。指示、状態、データを伝える画像は理解可能なままである必要があります。

ライトとダークの両スキームをサポートすることを宣言し、選択されたテーマに対してページのコンテンツをスタイル設定します。color-scheme プロパティはブラウザのキャンバス、スクロールバー、フォームコントロールなどを整合させます。対応するメタデータは文書の早い位置に置いてください。埋め込み SVG は親スキームに応答できます。サードパーティ iframe やウィジェットはエンドツーエンドでテストしてください。

ネイティブを優先

セマンティックな HTML コントロールを優先してください。forced-color 振る舞いは ARIA を付与した汎用要素ではなくネイティブのセマンティクスを使います。

アセット受け入れ

ダウンロード中、キャッシュ済み、読み込みが遅い、画像失敗状態を検査し、特にメディア上にテキストやアクション手がかりがある箇所を確認します。

05

forced-colors を尊重し、システムとしてリリースをテストする

forced-colors モードは Windows High Contrast のようなユーザー選択の制限されたパレットを適用します。ブラウザは色を置き換え、影を除去し、テキストにバックプレートを追加することがあります。上書きを阻止しないでください。シャドウが担っていた手がかりを失うような場合は、実際の境界線を追加するなどターゲットを絞った修正を行ってください。エミュレーションはすべてのデバイス、ブラウザ、拡張、ズームレベル、支援技術の組み合わせを再現できません。

リリース前にライト、ダーク、forced-colors 設定でルートとインタラクションマトリクスを実行してください。Chrome DevTools は両方の条件をエミュレートできます。レビューを加速するのに使い、その後優先フローを手動で操作してください。スキャナは候補を見つけますが単独でアクセシビリティを判定できません。SIU は重要なテーマ資産とインタラクションを事前検査し、リリースゲートを記録し、深刻な表示回帰に備えたテスト済みのロールバック経路を保持します;これはダウンタイム監視ではありません。

カバレッジマトリクス

ランディング、ナビゲーション、検索、アカウントアクセス、フォーム、エラーページ、認証済み画面、マテリアル変換フローを含めます。

リリース証拠

テスト済みの URL、ブラウザバージョン、設定、例外、オーナー、ロールバックトリガーを保存し、修正が事実に基づいて開始できるようにします。

実行 / 検証

実践的なTo‑Doガイド。

  1. 01

    テーマを持つ表面のインベントリを作る

    共有コンポーネントと重要なルートを一覧にし、インタラクションと検証状態を含めます。

    検証: すべての項目にライトとダークの担当者がいるか、明示的に廃止されていること。
  2. 02

    セマンティックトークンを定義する

    text、surface、link、border、error、focus などの役割を両テーマの値にマッピングします。

    検証: 本番コンポーネントが未説明のライト専用リテラル色に依存していないこと。
  3. 03

    予測可能なテーマ優先順位を設定する

    システムの設定をデフォルトにし、提供する場合は手動選択をアクセシブルかつ一貫して適用されるようにします。

    検証: システムライト、システムダーク、各手動選択で期待される結果を示す文書化されたテストがあること。
  4. 04

    テキストと UI のコントラストをチェックする

    各テーマでレンダリングされたテキスト、コントロール、状態マーカー、意味のあるグラフィックを測定します。

    検証: 通常のテキストが 4.5:1 を達成し、大きなテキストと必須の非テキスト視覚情報が該当箇所で 3:1 を満たしていること。
  5. 05

    キーボードでフォーカスとフォームをテストする

    Tab、Shift+Tab、Enter、Space、Escape を使って優先フローをすべて操作します。

    検証: フォーカス位置、エラー案内、選択、送信結果が両テーマで可視かつ理解可能であること。
  6. 06

    メディアとネイティブコントロールを見直す

    画像アセット、埋め込みコンテンツ、スクロールバー、入力、オートフィル表示を検査します(可能な場合)。

    検証: 重要なラベル、凡例、アクション、ネイティブコントロールがレンダリング背景と競合していないこと。
  7. 07

    forced-colors モードを試す

    forced-colors をエミュレートし、意味や手がかりを失う要素にのみターゲットを絞った代替を作ります。

    検証: 主要コントロールに識別可能な境界またはラベルがあり、キーボードフォーカスが明瞭であること。
  8. 08

    自動チェックと人的チェックを組み合わせる

    コントラストやアクセシビリティツールを実行し、その後ツールが判断できないタスクパスを手動でレビューします。

    検証: 所見は人的判断でトリアージされ、ツールの出力だけを適合判定に使わないこと。
  9. 09

    リリースにゲートを設け、修復を準備する

    テスト済みビルド、優先 URL、例外、オーナー、可逆的デプロイまたはロールバックオプションを記録します。

    検証: チームが既知の良好なテーマビルドとロールバックを引き起こす条件を特定できること。
議論のテーマ

トレードオフを比較し、非公開データは共有しないでください。

これらのプロンプトをチームやサイトオーナーコミュニティで使ってください。手法や学びは共有して構いませんが、認証情報や顧客データ、非公開インフラの詳細を貼り付けないでください。

  1. 01

    ライトとダークで最も意外な差分を露呈したコンポーネントは何で、どのようにしてリリースチェックに追加しましたか?

  2. 02

    ブランドパレットが変わったとき、デザイナーと開発者はどのようにトークン、コンポーネント状態、画像アセットを合わせていますか?

  3. 03

    テーマ回帰を顧客やアカウントデータを共有せずに解決するために、どのような軽量なリリース証拠がチームに役立ちますか?

人気/信頼できる資料

出典資料を開く。

W3C Web Accessibility InitiativeUnderstanding Success Criterion 1.4.3: Contrast (Minimum) ↗

WCAG のテキストコントラスト閾値、例外、測定上の注意点を説明する資料。

レビュー日 2026-09-27
W3C Web Accessibility InitiativeUnderstanding Success Criterion 1.4.11: Non-text Contrast ↗

コントロール、状態表示、意味のあるグラフィックのコントラスト評価に使えるガイド。

レビュー日 2026-09-27
W3C Web Accessibility InitiativeUnderstanding Success Criterion 2.4.13: Focus Appearance ↗

ここでデザイン目標として用いた AAA のフォーカスサイズとコントラストモデルを示す資料。

レビュー日 2026-09-27
MDN Web Docsprefers-color-scheme CSS media feature ↗

ブラウザがユーザー要求のライト/ダークテーマと埋め込み SVG の振る舞いをどのように公開するかを示す資料。

レビュー日 2026-09-27
MDN Web Docscolor-scheme CSS property ↗

ブラウザのキャンバス、ネイティブコントロール、スクロールバー、関連 UI の調整方法に関する説明。

レビュー日 2026-09-27
MDN Web Docsforced-colors CSS media feature ↗

ブラウザ上書き、システム色、影、バックプレート、作者側の制限について詳述した資料。

レビュー日 2026-09-27
Chrome for DevelopersEmulate CSS media features ↗

DevTools でライト、ダーク、forced-colors 条件を操作する手順を示す資料。

レビュー日 2026-09-27
W3C Web Accessibility InitiativeEvaluating Web Accessibility Overview ↗

なぜ自動ツールだけでなく人的レビューが補完的に必要かを説明する資料。

レビュー日 2026-09-27

出典ポリシー この記事は執筆時に参照した公式の W3C、MDN、Chrome ドキュメントを使用しています。WCAG 参照は技術的基準を説明するものであり、法的助言や認証を意味するものではありません。デプロイされた環境でのブラウザ挙動や支援技術の結果は再確認してください。

簡単な補足

よくある質問

ダークモードを追加すれば自動的にウェブサイトのアクセシビリティが向上しますか?

いいえ。ダークモードは一部の人には快適さを向上させますが、読みづらいテキスト、見えないフォーカス、不明瞭な状態を導入することもあります。アクセシビリティの近道としてではなく、完全で独立してテストされたテーマとして扱ってください。

ダークモードで必要なのは 4.5:1 のコントラストチェックだけですか?

いいえ。4.5:1 は通常のテキストとテキストの画像に適用される WCAG の閾値です。大きなテキストは 3:1 の閾値であり、必須コントロールや意味のあるグラフィックも隣接色に対して 3:1 が必要です。フォーカス、画像、非色覚依存の手がかりもチェックが必要です。

すべてのウェブサイトにダークモードのトグルを用意すべきですか?

システムの好みをデフォルトにするのは実用的なベースラインです。手動トグルは訪問者がデフォルトを上書きしたり選択したテーマに戻したりする場合に有用ですが、アクセシブルで予測可能かつテスト済みである必要があります。提供するかどうかはプロダクトの判断であり、それ自体がアクセシビリティの証明ではありません。

Status Is UP Editorial Team · Uptime Enablement Editors

レビュー: リリース管理責任を持つアクセシビリティ意識のあるフロントエンドレビュワー。公開 2026-09-27、更新 2026-09-30。