カラーコントラストチェッカー

2色のコントラスト比とWCAG AA/AAA適合を判定

大きいテキストのプレビュー

通常サイズの本文はこのように表示されます。長い文章ほどコントラストが重要です。

プレビューの文字をクリックすると直接編集できます。

影はプレビュー確認用で、WCAGコントラスト計算には反映されません。

1.00: 1
コントラスト比
基準AAAAA
通常テキスト
大きいテキスト
UIコンポーネント・図形—

WCAGでは24px(18pt)以上、または19px(14pt)以上の太字を「大きいテキスト」として基準を緩和します。

片方の色を固定して、もう片方の色を提案
固定
目標

明度別の合格範囲・色相と彩度は維持 — バーをクリックして選択
現在
AA 4.5:1AAA 7:1
選んだ目標を満たす他の色相 — クリックして選択

計算はすべてブラウザ内で行われ、サーバーには送信されません。

カラーコントラストチェッカーについて

このツールは2色のコントラスト比をWCAG 2.xの式どおりに計算し、通常テキスト・大きいテキスト・UIコンポーネントそれぞれのAA/AAA適合を表示します。結果は1:1(同じ色)から21:1(黒と白)までの1つの数値です。

基準に届かない場合は、前景色の色相と彩度を固定したままHSLの明度だけを0〜100で走査し、元の明度から最も動きの小さい合格色を提案します。ブランドカラーを捨てずに「少し暗くする」だけで済むかを先に確かめるための機能です。

コントラスト比の計算手順

各チャンネル(0〜255)を255で割った値cを線形光に戻します。cがしきい値以下ならc/12.92、それより大きければ((c+0.055)/1.055)^2.4です。sRGBのガンマを外して、実際の光の量に近づける段階です。

次に相対輝度 L = 0.2126R + 0.7152G + 0.0722B を求めます。緑の重みが青の約10倍なのは、人の目が緑の波長に最も敏感だからです。最後に(明るい方のL + 0.05)÷(暗い方のL + 0.05)がコントラスト比です。0.05は画面の反射光を見込んだ値で、純粋な黒でも比が無限大にならず最大21で止まります。

WCAGの本文には以前しきい値0.03928と書かれ、2021年にsRGB規格の0.04045へ修正されました。W3Cは判定への実質的な影響はないとしており、このツールのコードは旧値0.03928を使っています。

4.5・3・7という数字の根拠

W3Cの解説書によれば、3:1はISO 9241-3が通常の視力の人に推奨する最低値で、視力20/40(日本式でおよそ0.5)の人はコントラスト感度が約1.5倍落ちるため、3×1.5=4.5がAAの基準になりました。7:1(AAA)は20/80程度のロービジョンを想定しています。

大きいテキストは18ポイント以上、または太字14ポイント以上です。CSSではおよそ24px、太字で18.5pxです。日本語フォントについては「同等の大きさ」とだけ書かれており、画数の多い漢字を含む16pxの太字を大きいテキスト扱いにするのは避けるべきです。

UIコンポーネントの3:1は、WCAG 2.1で追加された達成基準1.4.11(非テキストのコントラスト)です。入力欄の枠線、チェックボックスの輪郭、フォーカス表示、意味のあるアイコンが対象です。無効化されたボタンやロゴ、装飾には要求がありません。

式が実感とずれる場面

WCAG 2の式は色の前後を区別しません。白地にグレーの文字と、同じグレー地に白い文字は同じ値になりますが、ダークモードの明るい文字は読みやすさが違うという指摘が多くあります。また鮮やかなオレンジ地に白文字のように実際には読める組み合わせが不合格になりがちです。

こうした批判から生まれたのがAPCA(Accessible Perceptual Contrast Algorithm)で、文字サイズ・太さ・明暗の向きを考慮します。ただしAPCAはWCAG 3の草案に一時入ったものの2023年7月の草案で外され、現在の草案ではコントラストの算出方法は「未定」です。JIS X 8341-3をはじめ現行の基準はWCAG 2系なので、このツールもWCAG 2の比だけで判定します。

コントラストでは解決しない色覚の多様性

赤緑の色覚特性は北欧系の男性で約8%、女性で約0.5%と報告されており、日本人男性では約4%とされています。コントラスト比は明るさの差しか見ないため、同じくらいの明るさの赤と緑は、背景に対して合格していても互いに区別できないことがあります。エラーを赤だけ、成功を緑だけで示さず、アイコンや文言を添えるのが達成基準1.4.1の求めることです。

例

白地で合格する最も明るいグレー

入力
前景 #767676 / 背景 #FFFFFF
結果
4.54:1 — 通常テキストAA合格

118/255=0.4627 → 線形値0.1811。(1+0.05)/(0.1811+0.05)=4.54。1段明るい#777777は4.48:1で不合格です。

純粋な赤

入力
前景 #FF0000 / 背景 #FFFFFF
結果
4.00:1 — 大きいテキストAAのみ合格

赤の相対輝度は0.2126なので1.05/0.2626=4.00。同じ赤を黒地に置くと0.2626/0.05=5.25:1で通常テキストAAに合格します。

緑と青の差

入力
#00FF00 と #0000FF をそれぞれ白地に
結果
緑 1.37:1 / 青 8.59:1

どちらも1チャンネルが255の原色ですが、重み0.7152と0.0722の差で結果が正反対になります。

使い方

  1. 文字色と背景色をHEXまたはrgb()で入力するか、ピッカーで選びます。
  2. コントラスト比と5つの基準の合否を確認します。
  3. 不合格なら提案色や明度範囲バーから、最も近い合格色を選びます。

よくある質問

4.49:1は四捨五入して4.5:1とみなせますか?

できません。W3Cはしきい値を丸めないよう明記しており、4.499:1もAA不合格です。

半透明の色はどう測りますか?

前景色に rgba(0,0,0,0.5) や #00000080 のようにアルファを付けると、入力した背景色の上に合成した実際の表示色でコントラストを計算します。白地に50%の黒は21:1ではなく約3.98:1です。背景色は不透明色で入力してください。背景自体が半透明なら、下の色と合成された最終的な色をスクリーンショットから取得して入力します。

グラデーションや写真の上の文字は?

文字の背後で最も不利な(文字と明るさが近い)地点の色を背景として確認してください。

APCAのLc値は表示されますか?

いいえ。APCAは確定した規格に含まれていないため、WCAG 2の比のみ表示します。

関連ガイド

出典

基準日:

プライバシーとデータの扱い