ひとことで言うと
コントラスト比とは、前景色(文字色)と背景色の輝度差を1:1〜21:1の数値で表したものです。WCAG 2.1レベルAAでは通常テキストが4.5:1以上、18pt以上または14pt以上の太字では3:1以上が必要とされています。数値が高いほど読みやすい組み合わせです。
具体例として、黒文字(#000000)と白背景(#FFFFFF)は21:1で最大値です。一方、AIが好んで使うライトグレーのボディテキスト(例:#767676)と白背景の組み合わせは4.48:1となり、AAをギリギリ下回ります。
- 相手がログインなしで開ける状態か確認する
- PCとスマホで最低1回ずつ表示を確認する
- 内部情報・個人情報・不要な外部送信が残っていないか見る
- レビュー期限と修正時の差し替え方を決めておく
HTML共有で関係する場面
ライトモードのデザインでは問題なく見えても、屋外のスマートフォン画面ではコントラストが足りずに文字が見えづらくなります。プレビューURLを受け取った相手が屋外や明るい照明下で確認している場合、「文字が見えない」という感想が返ってくることがあります。
官公庁・医療機関・教育機関向けにAI生成HTMLを共有する場合、アクセシビリティ調達基準においてコントラスト比が定量的に評価されることがあります。提出前にスキャンツールでコントラストエラーを0件にしておかないと、差し戻しが発生するリスクがあります。
よくある誤解
「デザインツールで見たときは問題なかった」という声がありますが、FigmaやXDのプレビューはディスプレイのキャリブレーションに依存します。実際のWebブラウザ上では色の見え方が異なる場合があり、ブラウザで計測したコントラスト比が正確な値です。
「コントラストが低くてもユーザーはフォントサイズを拡大できる」は誤りです。フォントサイズを拡大しても輝度差は変わりません。コントラスト比はフォントサイズとは独立した特性であり、拡大表示では解決できない問題です。
安全に使うための注意点
Chrome DevToolsのElements→Accessibilityパネルでテキスト要素を選択すると、自動でコントラスト比が表示されます。赤いアイコンが付いていればWCAGの基準を下回っている証拠です。代替の色候補も提案してくれるため、その場でCSSを修正してから共有するとスムーズです。
プレースホルダーテキスト(inputのplaceholder)はデフォルトで薄い色が設定されており、多くのAI生成フォームでコントラスト不足になります。CSSで`::placeholder { color: #767676; }`などと明示的に上書きするか、さらに濃い色に変更することで基準を満たせます。
よくある質問
グラデーション背景の上にあるテキストのコントラスト比はどう評価されますか?
グラデーションは位置によって背景色が変わるため、最も薄い部分での比率で評価するのが安全です。WebAIM Contrast Checkerで最も条件の悪い組み合わせを入力し、基準を下回らないことを確認してください。グラデーション部分にテキストを重ねるデザインは原則として避けることを推奨します。
アイコンや装飾的な画像もコントラスト比の対象になりますか?
WCAG 2.1では情報を伝えるアイコン(操作目的を示すもの等)はUIコンポーネントとして3:1以上が必要です。一方、純粋に装飾目的の画像はコントラスト基準の対象外です。意味を持つアイコンはそれ自体の色と背景のコントラストを確認してください。
ダークモード対応のHTMLで、ライトとダークどちらのコントラストを確認すれば十分ですか?
両方確認する必要があります。ライトモードで4.5:1をクリアしていても、ダークモードでは同じCSSが別の背景色に当たりコントラストが逆転する場合があります。prefers-color-schemeのメディアクエリで切り替えている場合、両方のシートを別々にスキャンしてください。