広告が嫌いですか? 行く 広告なし 今日

開発者向けの色のアクセシビリティ 対比、視覚障害シミュレーション、および問題の解決

掲載日
開発者向けの色のアクセシビリティ:コントラスト、視覚障害シミュレーション、問題の解決 1

色のコントラストが悪いのはバグです。デザインのミスやUXの工夫ではなく、実際に一定の割合のユーザーにインターフェイスを破壊するバグです。これを発見し、シミュレーションし、修正する方法を紹介します。すべてのリデザインをしないでください。

WCAGが色のコントラストについて述べていること

ウェブコンテンツアクセシビリティガイドライン(WCAG)は、テキストとその背景間の最小コントラスト比を定義しています。これらの比は1:1(同じ色、見えない)から21:1(黒背景上に白)まで範囲を広げています。

WCAG 2.1では、2つのコンフォーマンスレベルが定義されています:

WCAGレベルコントラスト比テキストサイズ
AA4.5:1通常のテキスト(18pt未満 / 14pt太字未満)ほとんどの本文
AA3:1大きなテキスト(18pt以上 / 14pt太字以上)見出し
AAA7:1通常のテキスト最も読みやすさが高く、明確な識別
AAA4.5:1大きなテキスト見出し(厳格)
どれでも3:1UIコンポーネントおよびグラフィックアイコン、フォームのボーダー

AAはほとんどの法的基準での最低基準です。AAAは、本文のような重要なテキストに対して望ましいものですが、サイト全体で要求されるのは非常に稀です。

コントラスト比の計算方法

この式は、各色の相対輝度を使用します:

Contrast ratio = (L1 + 0.05) / (L2 + 0.05)

どこへ L1 は明るい色の輝度で、 L2 は暗い色です。輝度自体は、各RGBチャンネルを線形化し、それらを重み付け(赤:0.2126、緑:0.7152、青:0.0722)することで得られます — 人間の目は緑に最も敏感だからです。

この計算を手で行う必要はありません。2つのhex値をコピーして 色のコントラストグリッド に貼り付けると、比、AA/AAAの通過・失敗ステータス、そしてあなたのすべてのパレットを一括で比較できるグリッドビューが得られます。

実際の使用においてこの式が示すことは、中間のグレー #767676 白上に #ffffff 4.5:1にほぼ正確に達します — AAの最低基準です。より明るくすると失敗し、より暗くすると余裕が増します。

色覚異常:より多く存在すると考えられている

男性の約8%、女性の0.5%が色覚異常のいずれかを有しています。主なタイプは:

  • デュテラノピア — 緑の感度が減少。最も一般的なタイプ(約5%の男性)。赤と緑は区別がつかず、どちらもブラウンまたはイエローに見える。
  • プロタノピア — 赤の感度が減少(約1%の男性)。赤は暗く、飽和が低くなり、赤緑の混同はデュテラノピアに似ていますが、赤は明るさを失います。
  • トリタノピア — 青の感度が減少(非常にまれ、約0.003%)。青黄の識別が困難になり、青は緑に、黄は紫に見える。

これらは極端なケースではありません。製品が月間10,000ユーザーを抱えている場合、統計的に400〜500人が色覚異常を持つと予測されます。

色だけでは不十分(WCAG 1.4.1)

WCAG成功基準1.4.1 — 「色の使用」— は、色が情報を伝達、行動を示す、または視覚的要素を区別する手段として使用されないことを規定しています。 だけに分割します。 典型的な失敗例:フォームが無効なフィールドを赤でマークする。プロタノピアを持つユーザーは、そのフィールドを暗いブラウンと見ます — これは、暗い光下での有効フィールドと同様です。他のインジケーターがありません。

解決策は色を削除することではなく、2つのシグナルを追加することです。アイコン、ボーダーの変更、ラベル、エラーメッセージの内蔵などです。色は補強手段となり、意味の唯一のキャリアにはなりません。

実際のコントラスト問題の解決方法

直感的な対応は、色を変えること(青を別の青に)です。これは通常、効果がありません。

色の変更はコントラスト比にほとんど影響を与えません。明るさが影響します。 HSLではL値が輝度を制御します。コントラストが失敗している場合に、

前景色を暗く(背景とのL値の差を増やす)または背景を明くする

  1. 色のトーンと飽和度を維持し、明るさだけを調整
  2. 再確認
  3. よくある原因:美しさのために選ばれたブランド色で、読みやすさを考慮していない。ブランドの特徴的なテールが白上に約2.4:1で、AA基準を達成していません。それを暗くして

とすると4.7:1になり、AA基準を満たします。同じトーンファミリーで、ブランドのアイデンティティにわずかな変化が見えるほどです。 #00b4a2 プレースホルダーのテキスト(通常は #007a6e または類似のスタイルで)は、状況がより悪化しています。グレー上に白は通常2.5〜3:1です。最低限に上げて

または、プレースホルダーを主要なラベルとして使用するのを再検討(WCAGはこれに反対しています) color: #999 テストワークフロー #767676 信頼できるアクセシビリティワークフローには3つのレイヤーがあります:

1. 自動チェック(速いが完全ではない)

リントツールやCIツールは明らかに失敗したものを検出します。

axe-core
Jest、Playwright、Cypressと統合されています。Lighthouse(Chrome DevToolsに組み込まれている)はアクセシビリティスコアを迅速に提供します。これらのツールはコントラストの失敗、テキストの欠如、ARIAの誤用を検出できますが、テスト時にDOMに表示されているものだけを評価できます。 2. シミュレーション(速く、実際のレイアウト問題を検出) 配信前に、さまざまな視覚条件でUIがどのように見えるかをシミュレーションします。そして alt 色覚異常シミュレーター

は、スクリーンショットをアップロードして、デュテラノピア、プロタノピア、トリタノピア、他のモードで確認できます。Chrome DevToolsでは、レンダリング設定の下に視覚障害シミュレーターがあります。
シミュレーションは自動ツールが見落とす問題を明らかにします。ダッシュボードで「エラー」バーが「成功」バーと同様に見える場合、デュテラノピアでは両方ともブラウンに見えるため、視覚的に区別がつかない。各バーのコントラスト比がAA基準を満たしているとしても、色覚異常のユーザーにとっては視覚的に全く同じです。 3. 実際のユーザーのテスト(遅いが信頼性が高い) 実際に色覚異常を持つ人々からのフィードバックなしでは、何の代替もありません。アクセシビリティをユーザー研究に含めてください。Paciello Groupなどの組織はテストサービスを提供しており、障害者特有のコミュニティを通じて参加者を募ることも有効です。

ワークフローに維持すべきツール

— 全ての色のパレットを貼り付けて、すべての前景/背景の組み合わせとそのWCAG通過・失敗ステータスを1つのビューで確認
— スクリーンショットをアップロードし、すべての主要な異常タイプでプレビュー

axe DevTools

  • 色のコントラストグリッド (ブラウザ拡張機能) — 任意のライブページで実行され、要素参照とともに違反をフラグ
  • 3. 実際のユーザーのテスト(遅いが信頼性が高い) Figmaプラグイン
  • — 「Stark」と「A11y – Color Contrast Checker」は、構築前に設計ファイル内で直接動作します CLI
  • — スクリプトでコントラスト比をチェックでき、プリコミットまたはCIで使用可能 デザイン段階でコントラスト比を確認し、品質保証の後に確認しないでください。本文は4.5:1、大文字は3:1、UIコンポーネントは3:1。色の問題を修正した際は、色のトーンではなく明るさを調整してください。主要な色パレットおよびデータ可視化に対してシミュレーションを行い、色を状態の唯一のインジケーターとして使用しないでください。
  • color-contrast アクセシビリティはチェックリストとして終わりに実施されるものではありません。コントラストが悪いのはバグであり、一定のユーザーに影響を与え、実際には5分以内で修正できることがほとんどです。 開発者向けの色のアクセシビリティ:コントラスト、色覚異常シミュレーション、問題解決2

短い要約

開発者向けの色のアクセシビリティ:コントラスト、色覚異常シミュレーション、問題解決1

色のコントラストが悪いのはバグです。デザインのミスやUXの工夫ではなく、実際に一定の割合のユーザーにインターフェイスを破壊するバグです。以下のように

広告なしで楽しみたいですか? 今すぐ広告なしで

拡張機能をインストールする

お気に入りのブラウザにIOツールを追加して、すぐにアクセスし、検索を高速化します。

に追加 Chrome拡張機能 に追加 エッジ拡張 に追加 Firefox 拡張機能 に追加 Opera 拡張機能

スコアボードが到着しました!

スコアボード ゲームを追跡する楽しい方法です。すべてのデータはブラウザに保存されます。さらに多くの機能がまもなく登場します!

ニュースコーナー 技術ハイライト付き

参加する

価値ある無料ツールの提供を継続するためにご協力ください

コーヒーを買って