ウェブサイトやデザイン制作に携わっていると、コントラスト比という言葉を耳にする機会が増えてきます。
文字と背景の見やすさを客観的に評価するための指標として、近年ますます注目度が高まっているのです。
しかし、コントラスト比の計算方法は?公式と算出手順を解説(輝度差:数値化:測定式:比率計算)と検索してみても、専門用語が並んでいて理解しづらいと感じる方も多いのではないでしょうか。
実際のところ、コントラスト比の仕組みを正しく理解するには、輝度という概念から丁寧に押さえていく必要があります。
色の明るさをどのように数値化するのか。
そしてその数値をどう比率に落とし込むのか。
このあたりが曖昧なままだと、いくらツールを使っても結果の意味を読み解けません。
この記事では、コントラスト比の基本的な考え方から、輝度差の測定式、具体的な算出手順まで、順を追って詳しく解説していきます。
アクセシビリティ対応やWCAGの基準を満たすデザインを目指す方にとって、きっと役立つ内容になっているはずです。
それでは早速、コントラスト比とは何かという基本から見ていきましょう。
目次
コントラスト比とは明るい色と暗い色の輝度の比率を示す数値である
それではまずコントラスト比の結論となる基本的な意味について解説していきます。
コントラスト比とは、簡単に言えば二つの色の明るさの差をどれだけはっきりと感じられるかを示す数値のことです。
具体的には、最も明るい色の相対輝度と最も暗い色の相対輝度の比率として表されます。
この比率が大きいほど、文字と背景のコントラストがはっきりして読みやすくなるという仕組みです。
逆に比率が小さいと、色同士が近く見えてしまい、視認性が下がってしまいます。
コントラスト比は1対1から21対1までの範囲で表現されるのが一般的です。
1対1は全く同じ明るさの色同士を意味し、21対1は白と黒のような最大限の明暗差を意味します。
コントラスト比の基本公式は次の通りです。
コントラスト比=(L1+0.05)/(L2+0.05)
ここでL1は明るい方の色の相対輝度、L2は暗い方の色の相対輝度を指します。
この公式はWCAG(Web Content Accessibility Guidelines)で定められた国際的な標準の算出式です。
この数式だけを見ると難しく感じるかもしれません。
ですが、輝度という値さえ求められれば、あとは単純な割り算をするだけなのです。
次の見出し以降で、輝度の求め方から順番に詳しく見ていきましょう。
相対輝度とは色の明るさを数値化した指標である
相対輝度とは、人間の目が感じる明るさをできる限り客観的な数値に変換したものです。
単純にRGB値の平均を取るだけでは、人間の視覚特性を正確に反映できません。
なぜなら、人の目は緑色に対して敏感で、青色に対しては鈍感だからです。
この視覚特性を踏まえて、赤・緑・青それぞれの成分に異なる重み付けを行うのが相対輝度の計算方法になります。
この重み付けの仕組みを理解しておくと、後の計算式もスムーズに把握できるでしょう。
コントラスト比が重要視される理由はアクセシビリティにある
コントラスト比がなぜここまで注目されるのか、気になる方もいるでしょう。
その理由は、視覚に障害を持つ方や高齢者など、多様なユーザーが情報を正しく読み取れるようにするためです。
文字と背景の明暗差が不十分だと、健常者であっても長時間の閲覧で目が疲れやすくなります。
誰もがストレスなく情報にアクセスできる環境を整えることが、コントラスト比を意識する本質的な目的なのです。
特に公共性の高いウェブサイトや企業サイトでは、この配慮が信頼性にも直結します。
WCAGが定める基準値を押さえておく
コントラスト比には、達成すべき基準値がガイドラインとして定められています。
通常の文字サイズであれば4.5対1以上、大きな文字であれば3対1以上が推奨される最低ラインです。
さらに厳しい基準であるレベルAAAでは、通常の文字で7対1以上が求められます。
この基準を知らずにデザインを進めてしまうと、後から大幅な修正が必要になることもあるでしょう。
基準値を先に把握しておくことが、効率的な制作の第一歩と言えます。
輝度差を数値化するには各色チャンネルの変換計算が必要になる
続いては輝度差を数値化する具体的な手順を確認していきます。
相対輝度を求めるには、まずRGB値をそれぞれ0から1の範囲に正規化する作業から始まります。
RGB値は通常0から255までの整数で表されているため、255で割ることで正規化を行うのです。
例えば、RGB値が(200, 100, 50)の場合を考えてみましょう。
正規化後の値はそれぞれ200÷255、100÷255、50÷255という計算になります。
結果として約0.784、約0.392、約0.196という数値が得られます。
正規化した後は、それぞれの値にガンマ補正と呼ばれる変換を適用します。
この処理は、ディスプレイ上の色表現と人間の視覚感度のズレを補正するために欠かせません。
変換後の値が0.03928以下であれば単純な線形変換、それより大きければべき乗を使った変換を行うというルールがあります。
この分岐処理があるからこそ、暗い部分の輝度がより正確に反映されるのです。
| 項目 | 内容 | 目安の数値範囲 |
|---|---|---|
| RGB正規化値 | 0から255を0から1に変換 | 0.0~1.0 |
| 線形変換の閾値 | 0.03928以下は単純除算 | 0.0~0.03928 |
| べき乗変換の指数 | 2.4乗で補正 | 指数2.4固定 |
| 重み係数(赤) | 視覚感度に応じた係数 | 0.2126 |
| 重み係数(緑) | 最も感度の高い成分 | 0.7152 |
| 重み係数(青) | 最も感度の低い成分 | 0.0722 |
この表からも分かるように、緑色の重み係数が圧倒的に大きいことが特徴です。
人間の目は緑色の変化に最も敏感に反応するため、この係数配分になっていると覚えておくとよいでしょう。
ガンマ補正の計算式を具体的に確認する
ガンマ補正の計算式は、正規化した値をCとした場合、次のように場合分けされます。
もしCが0.03928以下であれば、変換後の値はC÷12.92となります。
もしCが0.03928より大きければ、変換後の値は((C+0.055)÷1.055)の2.4乗となります。
この処理を赤・緑・青のそれぞれの値に対して個別に行う必要があります。
手計算だと少し面倒に感じるかもしれません。
ですが、一つずつ丁寧に処理すれば決して難しい計算ではないのです。
重み付けを行い相対輝度を合成する
ガンマ補正が終わったら、次は重み付けを行って一つの輝度値にまとめます。
計算式は、相対輝度L=0.2126×R+0.7152×G+0.0722×Bという形になります。
ここでのR、G、Bはガンマ補正後の値を指しますので、正規化した元の値とは異なる点に注意しましょう。
この式によって、色ごとにバラバラだった三つの値が、一つの明るさを示す数値へと統合されるわけです。
計算ミスを防ぐためのチェックポイント
輝度計算は工程が多いため、途中でミスをしやすい作業でもあります。
正規化を忘れて255のままべき乗計算をしてしまう、というのはよくある失敗例です。
また、閾値0.03928の場合分けを逆にしてしまうケースも見られます。
計算後は、白(255, 255, 255)の相対輝度が1に近い値になるかを確認すると、検算として役立つでしょう。
同様に黒(0, 0, 0)の相対輝度が0になるかどうかも、確認しておきたいポイントです。
測定式を使った具体的な算出手順を順番に見ていく
続いては実際にコントラスト比を算出する一連の手順を確認していきます。
ここまでで輝度の求め方を理解できたところで、実際の数値を使って一緒に計算してみましょう。
例として、背景色を白(255, 255, 255)、文字色を濃いグレー(51, 51, 51)とします。
まず白の相対輝度を求めると、L1はほぼ1.0となります。
次に濃いグレーの相対輝度を求めると、L2は約0.0296という値になります。
これを公式に当てはめると、コントラスト比=(1.0+0.05)/(0.0296+0.05)となり、約13.15対1という結果が得られます。
この数値であれば、WCAGのレベルAAAの基準even満たす、非常に読みやすい組み合わせだと判断できます。
実際の数値をもとに計算する練習を重ねることで、公式への理解が一気に深まるはずです。
手順としては、まず二つの色のRGB値を確認する、それぞれの相対輝度を求める、明るい方をL1、暗い方をL2として公式に代入する、という流れになります。
この三つのステップさえ覚えておけば、どんな色の組み合わせでも同じ手順で計算できるでしょう。
手計算とツールを使った計算の違い
手計算でコントラスト比を求める方法を紹介してきましたが、実務では専用ツールを使うケースがほとんどです。
手計算はあくまで仕組みを理解するための練習として位置づけるとよいでしょう。
ツールを使えば、カラーコードを入力するだけで瞬時に比率が表示されます。
ですが、計算式の背景を知らないまま数値だけを見ていると、なぜその結果になるのか理解できません。
基礎を押さえた上でツールを活用することが、最も効率的な進め方と言えます。
色の組み合わせによる比率の変化を把握する
色の組み合わせが変わると、コントラスト比も大きく変動します。
例えば、白背景に黄色の文字を乗せた場合、比率は1.07対1程度まで下がってしまいます。
これは基準値を大きく下回るため、実務では避けるべき組み合わせです。
一方で、白背景に黒文字であれば21対1という最大値に近づき、非常に読みやすくなります。
この違いを体感的に理解しておくと、デザインの初期段階で危険な配色を避けられるようになるでしょう。
グラデーションや半透明色への対応方法
単色同士であれば比較的シンプルに計算できますが、グラデーションや半透明の色が絡むと少し複雑になります。
半透明の場合は、背景色と合成した後のRGB値を先に求めてから、輝度計算に進む必要があります。
グラデーションの場合は、最も明るい部分と最も暗い部分の両方でコントラスト比を確認するのが安全です。
一箇所だけ確認して満足してしまうと、グラデーションの端で基準を満たさない箇所が見落とされることもあります。
比率計算の結果をどう評価すべきか基準を確認する
続いては算出したコントラスト比の数値をどのように評価すればよいのか確認していきます。
数値を計算できても、それが良いのか悪いのか判断できなければ意味がありません。
| 対象文字 | レベルAA | レベルAAA |
|---|---|---|
| 通常サイズの文字 | 4.5対1以上 | 7対1以上 |
| 大きいサイズの文字 | 3対1以上 | 4.5対1以上 |
| ロゴや装飾的な文字 | 基準対象外 | 基準対象外 |
| 非活性状態のUI部品 | 基準対象外 | 基準対象外 |
この表を基準にすれば、自分のデザインが最低限の要件を満たしているかどうかを一目で判断できます。
大きいサイズの文字とは、一般的に18ポイント以上の太字、または24ポイント以上の通常の文字を指します。
サイトの目的や対象ユーザー層によって、目指すべきレベルを使い分けることが重要です。
官公庁や医療系のサイトであれば、レベルAAAを目指すケースも珍しくありません。
一方で、一般的な企業サイトであれば、レベルAAを満たしていれば十分とされることが多いでしょう。
基準を満たさない場合の改善アプローチ
計算した結果が基準値を下回っていた場合、どのように改善すればよいのでしょうか。
最もシンプルな方法は、文字色をより暗く、または背景色をより明るくすることです。
ただし、ブランドカラーを大きく変えたくないという事情もあるでしょう。
その場合は、彩度を調整しつつ明度だけを変化させるという手法が有効です。
色相を保ったまま明るさだけを調整すれば、ブランドイメージを損なわずに視認性を改善できます。
デザインツールでの確認方法
多くのデザインツールには、コントラスト比を自動でチェックする機能が搭載されています。
カラーピッカーの近くに数値が表示されるタイプのものが一般的です。
この機能を使えば、配色を決める段階でリアルタイムに数値を確認しながら作業を進められます。
デザインが完成してから修正するよりも、制作段階でチェックする方が手戻りを大幅に減らせるでしょう。
ブラウザの拡張機能を活用した検証
公開済みのウェブサイトに対しては、ブラウザの拡張機能を使った検証も有効な手段です。
ページ全体をスキャンして、基準を満たしていない箇所を自動的にリストアップしてくれる機能もあります。
この方法であれば、サイト全体を人の目で一つずつ確認する手間を大きく省けます。
特に大規模なサイトのリニューアル時には、こうした自動検証の仕組みを活用するとよいでしょう。
実務で気をつけたい輝度差の落とし穴を整理する
続いては実際の制作現場で見落としがちなポイントについて確認していきます。
理論を理解していても、実務では思わぬところでつまずくことがあります。
特に注意したいのが、画像の上に文字を重ねるケースです。
背景が単色ではなく写真やイラストの場合、部分ごとに明るさが異なるため、コントラスト比が一定になりません。
この場合は、最も明るい部分を基準に計算するか、文字の背後に半透明のオーバーレイを敷くといった対策が求められます。
もう一つ見落としがちなのが、ホバー時やフォーカス時の色変化です。
通常時の状態だけコントラスト比を確認して満足してしまうケースは少なくありません。
ですが、マウスオーバー時に色が薄くなるデザインの場合、その状態でも基準を満たしているか確認する必要があります。
静止画だけでなく、インタラクションによって変化する全ての状態をチェックすることが本当の意味での対応と言えるでしょう。
ダークモード対応時の再計算の必要性
近年増えているダークモード対応ですが、これもコントラスト比の観点から注意が必要な領域です。
ライトモードで基準を満たしていたとしても、ダークモードでは色を反転させるため、比率が変わってしまいます。
ライトモード用とダークモード用、それぞれ別々にコントラスト比を計算し直す必要があるのです。
この手間を惜しんでしまうと、片方のモードだけ視認性の低いデザインになってしまうリスクがあります。
フォントの太さやサイズとの関係性
コントラスト比の数値そのものは色だけで決まりますが、実際の見やすさにはフォントの太さやサイズも影響します。
同じコントラスト比であっても、細い書体よりも太い書体の方が視認性は高くなる傾向があります。
そのため、基準値ギリギリの色を使う場合は、あわせてフォントの太さを見直すという工夫も有効でしょう。
数値上は合格していても、実際に画面で確認して違和感がないかを最終チェックすることをおすすめします。
印刷物とディスプレイでの差異に注意する
ウェブサイトを前提とした計算方法を解説してきましたが、印刷物では事情が異なります。
紙媒体はディスプレイのように光を発しないため、輝度の感じ方そのものが変わってくるのです。
印刷物のコントラストを評価する場合は、CMYKでの色再現や紙の質感も考慮に入れる必要があります。
ウェブ用のコントラスト比の公式をそのまま印刷物に当てはめると、実際の見え方とズレが生じることもあるため注意しましょう。
コントラスト比を高めるデザインの工夫を紹介する
続いてはコントラスト比を効果的に高めるための具体的なデザインの工夫について確認していきます。
計算方法を理解した上で、実際にどう応用すればよいのかも押さえておきたいところです。
まず基本となるのが、無彩色の組み合わせを軸にするという考え方です。
白と黒、または濃いグレーと薄いグレーの組み合わせは、比較的簡単に高いコントラスト比を実現できます。
色相を持つ色同士を組み合わせるよりも、計算がシンプルになる点もメリットです。
次に有効なのが、彩度を抑えて明度差を強調するという手法です。
鮮やかな色同士は見た目の印象こそ強いものの、明度が近いとコントラスト比は意外と低くなりがちです。
デザインのアクセントとして鮮やかな色を使いたい場合は、面積を小さく抑えるという工夫も一つの方法でしょう。
配色のバランスと視認性のバランスを両立させることが、優れたデザインの条件と言えます。
ブランドカラーとアクセシビリティを両立させる方法
企業のブランドカラーは簡単に変更できないという事情も多いはずです。
その場合は、ブランドカラーを背景の広い面積に使わず、アクセント的に使う配置に変更する方法があります。
文字部分には別途、コントラスト比の高い色を用意しておくというアプローチも現実的でしょう。
ロゴやボタンなど、限られた箇所であればブランドカラーをそのまま使いつつ、本文テキストでは別の配色にするという使い分けが有効です。
アクセシビリティチェックを制作フローに組み込む
コントラスト比の確認を後回しにすると、リリース直前に大量の修正が必要になることがあります。
デザインカンプの段階、コーディングの段階、それぞれのタイミングでチェックを行う体制を作っておくとよいでしょう。
複数人でチェックを行うことで、一人では気づかない見落としも防ぎやすくなります。
制作フローの一部として定着させることが、長期的に見て最も効率的な進め方です。
ユーザーテストによる実際の見え方の検証
数値上の基準を満たしていても、実際のユーザーにとって本当に見やすいかどうかは別問題です。
可能であれば、実際のユーザーに画面を見てもらい、フィードバックを得る機会を設けるとよいでしょう。
特に高齢者や視覚に特性を持つユーザーからの意見は、数値だけでは分からない気づきを与えてくれます。
数値と実際の使用感、両方の視点を持つことで、より完成度の高いデザインに近づけるはずです。
まとめ
今回はコントラスト比の計算方法は?公式と算出手順を解説(輝度差:数値化:測定式:比率計算)というテーマで詳しく解説してきました。
コントラスト比は、明るい色と暗い色の相対輝度の比率を示す指標であり、WCAGの公式に基づいて算出されます。
相対輝度を求めるには、RGB値の正規化、ガンマ補正、重み付けという三つの工程を経る必要がありました。
算出した数値は、レベルAAやレベルAAAといった基準と照らし合わせることで、初めて意味を持ちます。
実務では、画像への文字重ね、ホバー時の色変化、ダークモード対応など、さまざまな場面で計算し直す機会が出てくるでしょう。
手計算の仕組みを理解した上でツールを活用すれば、効率的かつ正確にアクセシビリティ対応を進められます。
ぜひこの記事で紹介した計算方法や基準値を参考にしながら、誰にとっても読みやすいデザインづくりに役立ててみてください。