axe-core 無障礙檢查教學:AI 修到違規歸零後,還有哪些事要人看?

axe-core 能自動檢查部分網頁無障礙問題。從訂位頁實驗看掃描、修復與重掃如何配合,並分清零違規、incomplete 人工判讀,以及免費開源核心與商業 Axe MCP 的差別。

Share
Deque Systems 官方 Axe MCP Server Demo 縮圖,展示編輯器與 AI 工具整合。
Deque Systems 官方 Axe MCP Server 示範影片縮圖。圖中是商業 MCP 產品;本文的本地實驗使用免費 axe-core。圖片來源:Deque 官方影片。

axe-core 可以幫你找出部分網頁無障礙問題,例如連結文字對比不足,或輔助工具讀到的名稱和畫面上的字不一致。

這很適合放進 AI 做網站的流程。讓它先掃描,再針對結果修改,會比只要求「注意無障礙」更有可核對的依據。

AI 郵報 11 月 14 日的訂位頁實驗,讓四張有違規的頁面各修一輪,重掃後都降到零。但另外仍有需要人工判讀的對比項目。

所以,零違規可以作為一個檢查結果,無法單獨代表網站已經適合所有人使用。鍵盤能不能走完流程、文字是否好懂,還得回到實際操作。

axe-core 是什麼?免費核心和商業產品要分清

axe-core 是 Deque 維護的開源無障礙檢查引擎,能在頁面上執行一組規則,回報它有把握判定的問題。

無障礙的目標,是讓不同使用方式的人都能完成工作。例如有人用鍵盤取代滑鼠,有人靠螢幕閱讀器,把畫面上的內容轉成語音理解。

官方 README明確說明,自動化只能找到部分問題,無法替代人工檢查。工具結果應作為改善流程的一部分。

Deque 也提供商業產品。官方示範中的 Axe MCP 整合在 Axe DevTools for Web,可以讓 AI 在編輯器裡分析、提出修復,再由人檢視差異。

本文整理的本地實驗只使用免費開源版 axe-core 4.14.0,沒有測試付費產品,也不能由此比較兩者的修復效果。

MCP 是讓 AI 連接外部工具的通訊方式。即使工具用相同的檢查核心,帳號、整合方式與工作流程仍可能不同,評估時應看清實際使用的是哪一項。

Deque Systems 官方 Axe MCP Server Demo 縮圖,展示編輯器與 AI 工具整合。
Deque Systems 官方 Axe MCP Server 示範影片縮圖。圖中是商業 MCP 產品;本文的本地實驗使用免費 axe-core。圖片來源:Deque 官方影片。

只寫「符合無障礙」有用嗎?先看小型比較

在這一組樣本裡,加上要求後違規較少,但仍有問題。更有意義的差別,是有沒有真的執行掃描,並核對結果。

AI 郵報用同一份小春拉麵訂位頁需求,分兩組各產生五頁。一組不特別提醒,另一組加入無障礙要求,模型名稱由子代理自報為 Opus 5.5。

檢查使用同一版 axe-core,並在 390 與 1280 兩種寬度重跑。紀錄中的違規數會去除跨寬度重複的同一元素與規則,和單純把兩份報告相加不同。

組別 有違規的頁面 去重後違規元素與規則組合
沒特別提醒 4/5 5
加入無障礙要求 2/5 2

這個比較只適用於十張頁面,沒有估計一般成功率。它顯示即使提醒了,仍可能留下錯誤,因此要求應接上實際檢查。

加入要求的五份回報中,有四份明寫沒有跑過 axe。這是當時子代理的自述,不能當成執行紀錄,也不能由文字看起來專業就推定已掃過。

Deque 官方 Axe MCP 商業產品示範;本文的本地實驗使用免費 axe-core,兩者不同。 來源:原始發布者。

名稱對不上,為什麼會影響操作?

畫面文字和輔助名稱不一致,可能讓使用者難以知道自己選的是不是同一個東西。實驗裡,三張頁面都出現這類標籤問題。

例如連結畫面上顯示品牌名稱,程式另外用 aria-label 提供更長的描述。aria-label 是給輔助工具讀取的名稱,如果它蓋掉原本的字,又沒有包含可見文字,便可能造成不一致。

這也提醒我們,多加標籤未必更好。若原本可見文字已能清楚說明用途,就應先確認是否需要另一份名稱,再決定怎麼寫。

另一張頁面則是電話連結太淡。使用者需要能看清楚的聯絡方式,字存在程式裡並不代表畫面上足夠容易辨認。

修復時應對到報告指定的元素。直接移除所有標籤,或一次把整個網站顏色改深,都可能超出問題範圍,還讓其他資訊層級受到影響。

修一輪歸零後,為什麼還有二十一處需要看?

重掃零違規,代表已確認的違規項目在當時條件下消失。報告中還有另一類 incomplete,表示自動化無法判定,需要進一步檢視。

本次把沒有特別提醒的五頁交回修正,其中四頁原本有違規,每頁各修一輪。之後由同一掃描流程重跑,已確認違規都降為零。

但以修後五頁的手機寬度結果計算,四頁合計仍有二十一處文字對比被列為 incomplete。這裡包含那張本來就零違規、沒有修改的頁面。

二十一處是待判讀項目,不能寫成二十一個已確定錯誤。它也不是證明工具漏抓的反例,因為工具已經把不確定處列了出來。

讀報告時可以把兩種狀態分開處理:先修明確違規,再逐一確認 incomplete,並留下自己的判斷依據。axe-core 的結果說明也區分這些類別。

掃描之外,還要怎麼走一遍頁面?

先用鍵盤完成主要任務,通常比再看一張分數更容易理解實際問題。訂位頁可以從第一個輸入欄位開始,走到選日期、確認與送出。

檢查焦點框能不能看見,順序是否合理,遇到選單或對話框時能否進入和離開。焦點就是鍵盤此刻正在操作的元素,畫面需要讓人知道位置。

接著用螢幕閱讀器聽欄位名稱、錯誤訊息與成功結果。畫面上有紅框,並不表示只聽語音的人也能知道哪一格需要重填。

這是建議的驗收流程。本次另寫的簡單腳本檢查焦點樣式、順序及圖片說明,沒有找到額外反例,但它也不能代替使用者實際走完任務。

如果 AI 產生的頁面同時有排版問題,應另外查看手機上的換行與按鈕尺寸,避免把所有可用性都縮成無障礙規則的一個數字。

延伸閱讀:五種網頁效果名稱教學:毛玻璃、視差、輪播、跑馬燈與新粗野主義

常見問題

axe-core 的零違規,能當成通過認證嗎?

不能。它只是特定版本、頁面與條件下的自動檢查結果,不能直接推成完整符合標準或取得任何認證。

incomplete 可以直接忽略嗎?

不適合。它表示工具無法自動下結論,應打開對應元素確認。如果判斷不適用,也要留下原因,方便之後回看。

只需要檢查首頁嗎?

應以使用者要完成的流程挑頁面與狀態。例如表單錯誤、展開選單與確認畫面,可能有首頁看不到的問題。

把掃描結果接回修復,再檢查實際任務

對用 AI 做網站的人,最容易開始的方法是保留第一份報告,請 AI 逐項修正,再用相同條件重掃。處理完明確違規後,就用鍵盤與語音把主要任務走完。

如果還需要把介面需求描述得更精準,可以先釐清元件名稱,讓修復要求直接對到要操作的對象。

延伸閱讀:UI 元件名稱教學:下拉選單、抽屜、載入與手勢,怎麼寫成 AI 看得懂的需求?

資料來源