什麼是 WCAG 色彩對比度?
對比度用來衡量兩種顏色彼此之間的辨識難易程度——最常見的就是文字與背景之間的差異。網頁內容無障礙指引(WCAG 2.x)以這個比值設定最低門檻,確保視力較弱或有色覺障礙的使用者也能順利閱讀內容。對比度的範圍從 1:1(兩色完全相同)一路到 21:1(純黑配純白)。
如何使用這個計算機
請以十六進位色碼輸入前景(文字)顏色與背景顏色,例如 #1a73e8,或縮寫格式 #fff。計算機會先將每個顏色線性化、算出其相對亮度,再回傳對比度,並依各項 WCAG 門檻顯示「通過」或「未通過」的檢查結果。
公式說明
對比度的算式為 \((L1 + 0.05) / (L2 + 0.05)\),其中 L1 是較亮顏色的相對亮度,L2 是較暗顏色的相對亮度。
$$\text{Ratio} = \frac{L_1 + 0.05}{L_2 + 0.05} \\[1.5em] \text{where}\quad \left\{ \begin{aligned} L_1 &= \max(L_{\text{Foreground}},\, L_{\text{Background}}) \\ L_2 &= \min(L_{\text{Foreground}},\, L_{\text{Background}}) \end{aligned} \right.$$
相對亮度的計算方式為:先將 sRGB 各色版轉換成 0–1 的數值並進行線性化(數值小於或等於 0.03928 的色版除以 12.92;較亮的色版則使用 \(((c+0.055)/1.055)^{2.4}\)),再以 \(0.2126\cdot R + 0.7152\cdot G + 0.0722\cdot B\) 加權組合而成。算式中的 0.05 偏移量可避免除以零,同時模擬螢幕在環境光下的反射散光。
$$L = 0.2126\,R_{lin} + 0.7152\,G_{lin} + 0.0722\,B_{lin}$$
$$c_{lin} = \begin{cases} \dfrac{c}{12.92} & c \le 0.03928 \\[0.4em] \left(\dfrac{c+0.055}{1.055}\right)^{2.4} & c > 0.03928 \end{cases}$$
實際範例
白底(#FFFFFF)配黑字(#000000):黑色的亮度為 0,白色的亮度為 1。對比度為 $$\frac{1 + 0.05}{0 + 0.05} = \frac{1.05}{0.05} = 21:1$$——這是理論上的最大值,輕鬆通過每一個等級的標準。
常見問題
我需要多少對比度? WCAG AA 等級要求一般文字達 4.5:1、大型文字(≥18pt 或 14pt 粗體)達 3:1。AAA 等級則分別要求 7:1 與 4.5:1。
顏色的前後順序會影響結果嗎? 不會。公式一律以較亮的亮度除以較暗的亮度,因此就算把前景與背景對調,對比度也完全相同。
為什麼不能直接用亮度高低來判斷? 人眼對顏色的感知是非線性的,而且對綠色特別敏感,所以亮度計算必須採用 gamma 校正與各色版專屬的加權係數,而非單純取平均值。