不會,在任何 WCAG 對比檢查工具中,兩個色彩的先後順序都不會影響結果。WCAG 對比公式 (L1 + 0.05) / (L2 + 0.05) 在數學上是對稱的,無論你先輸入前景還是背景,都會回傳相同的數字。對比是色彩配對本身的屬性,而非取決於哪一個扮演文字角色。一旦兩個色碼都填入欄位,檢查工具會計算出一個比率,無論較亮的色彩在上面還是下面,這個比率都是相同的。L1 定義為兩者中較亮色彩在 sRGB 線性化後的相對亮度,因此交換輸入值並不會改變除法的順序。這代表當你翻轉深色模式的設計 token、hover 狀態或反轉的焦點指示器時,不必重新測試鏡像配對——這個公式在建構上就是方向無關的。像 Color Contrast Checker 這類標準檢查工具會接收兩個輸入、計算一次比率,並顯示 AA 一般文字、AA 大字、AAA 一般文字、AAA 大字以及非文字對比規則的通過或失敗徽章,這些全都來自同一個對稱運算。遵循官方規範的實作會產生介於 1:1(同色)最小值到 21:1(純黑對純白)最大值之間的數值,而介於其間的每一個點都與其交換值配對。

對稱比率背後的數學
WCAG 2.x 將對比定義為兩色之間感知亮度的差異,1:1 表示毫無差異,21:1 則是螢幕所能呈現的最大差距。精確公式為 (L1 + 0.05) / (L2 + 0.05),其中 L1 和 L2 分別是較亮與較暗色彩的相對亮度。亮度本身來自逐通道轉換:每個 sRGB 元件先以標準 gamma 曲線進行線性化,再依感知權重 0.2126(紅)、0.7152(綠)、0.0722(藍)加以組合。由於人眼對綠色最敏感,因此綠色主導,紅色貢獻其餘大部分,而藍色對可讀性的影響最小。
由於公式先取較亮色彩、再取較暗色彩,計算內部並沒有名為「亮」或「暗」的欄位——實作會檢視兩個值、內部排序後回傳一個數字。人們有時預期輸入會產生不對稱(「前景代表 L1」),但這不存在於數學中;它只出現在結果的報告與呈現方式上。W3C 關於對比最小值的參考頁面(螢幕閱讀器與檢查工具皆以此為基準)便以這種方向無關的形式 直接列於 WCAG 2.1 Understanding 頁面 陳述公式。
若以數字驗證,請看教科書中的最大配對:黑色 #000000 對白色 #ffffff。線性化後,白色的相對亮度為 1.0,黑色為 0。代入公式得到 (1.0 + 0.05) / (0 + 0.05) = 1.05 / 0.05 = 21,這就是上限。先輸入白色再輸入黑色,答案仍然是 21:1,因為公式無論如何都會取 L1 = 1.0;兩個輸入沒有改變,只有標籤互換。
如何在 Color Contrast Checker 中檢查對比
- 在瀏覽器中開啟 Color Contrast Checker。頁面載入時,前景與背景輸入欄以及即時結果面板已經在畫面上。
- 使用色彩選擇器設定前景(文字)色彩,或在該輸入欄的文字框中直接輸入色碼,例如 #111111。
- 同樣方式設定背景色彩,例如輸入 #ffffff,或點擊色塊從色彩選擇器中挑選。
- 讀取結果面板頂部顯示的對比比率,以及一般文字、大字與非文字對比門檻的 AA/AAA 通過或失敗徽章。
- 調整任一色彩——前景或背景,順序不拘——直到你在意的每個徽章都顯示為目標等級的通過,然後將色碼複製出來用於設計 token。
由於比率是對稱的,你可以隨意交換兩個輸入,用同一標準比較品牌淺色主題、深色主題與 hover 狀態,而不必重新計算。每個設計變體會顯示自己的比率,你只需保留能讓所有通過徽章都亮綠燈的那一組。
WCAG 門檻一覽
| 標準 | 一般文字 | 大字 | UI 元件與圖形 |
|---|---|---|---|
| WCAG 2.x Level AA | 4.5:1 或以上 | 3:1 或以上 | 3:1 或以上 |
| WCAG 2.x Level AAA | 7:1 或以上 | 4.5:1 或以上 | 未定義門檻 |
表格中的門檻直接取自 WCAG 2.x 規範。大字定義為至少 18pt 標準字重(24px)或 14pt 粗體(約 18.66px),由於較粗的筆畫更易閱讀,因此允許較低的比率。UI 元件規則涵蓋表單欄位邊框、焦點指示器、圖示及其他需要可被感知、不依賴相鄰標籤的圖形物件。如果你想看到可直接套用至設計系統的通過配對,文章 Color Contrast Checker Examples: WCAG AA and AAA Pairs 列出了數組範例,附上精確比率與使用情境。
對比比率無法衡量的部分
對稱的比率讓人安心,但它只描述一件事:兩色在亮度上的差異,並以人眼對綠色最敏感的方式加權。兩種色彩可能亮度相同,看起來卻截然不同。一個鮮紅與一個鮮綠若亮度相近,雖然其中一個是綠色盲(deuteranopia)觀眾最易看見的色彩,仍可能在公式中相互抵消而未通過。這也是 WCAG 2.x 警告不要僅依賴色彩傳達意義的原因;應搭配文字標籤、圖示或底線,讓無論能辨識哪些色彩的觀眾都能得出相同結論。
比率也無法沿著漸層或半透明疊加層追蹤。若你的文字置於一張從一角淡出至另一角的英雄圖上,每個字母下的有效背景可能橫跨數百個亮度值。請在配對最淺與最深處分別測試,因為最差情況終究會在版面的某處被使用者遇到。佔位符文字也同樣如此——設計師常將其留為低對比的淡灰色;停用的表單控制項依慣例看起來偏淡,但仍須對周圍畫布達到 3:1 的 UI 門檻。這些注意事項皆非由色彩順序引起,而是公式所建構來報告的亮度指標本身的限制。
測試色彩配對的實用技巧
把 AA 當作地板,而非終點。若一組內文配對僅以零點幾之差勉強通過 4.5:1,未來任一色彩的調整都可能悄悄使其跌破門檻,因此工程師通常會預留 5.5:1 以上的對比,保留小幅修改的餘裕。能達到 7:1 時,就當作 AAA 來追求,因為較大的差距在視覺上更舒適,即使品牌更新時色彩漂移仍能保持合規。
以批次方式測試,而非逐色測試。將檢查工具接入設計 token 審查流程,在試算表中將每組文字對背景的組合都跑過公式,或在設計系統中保存一組核准的配對。由於比率是對稱的,你只需測試無序配對——(#111111, #ffffff) 同時涵蓋深色文字配淺色背景與淺色文字配深色背景,將測試矩陣減半。另外再為容易忽略的狀態做一輪檢查:焦點環、錯誤訊息、佔位符文字、停用按鈕,以及任何在新背景上未通過的飽和品牌色連結。
所有運作都在你的瀏覽器本地完成,未公開的品牌色盤與設計 token 在反覆調整時皆留在裝置上。當無障礙審查涵蓋尚未對外公布的色彩時,這點尤其重要。結合公式的對稱性,剩下的就只剩藝術性的工作——挑選要出貨的兩種色彩。
延伸閱讀:Avoid Mistakes When Using a WCAG Color Contrast Checker。