用真正開放的基礎打造無障礙檢測工具 | Ai2
用真正開放的基礎打造無障礙檢測工具
Brendan Works 是西雅圖的一名技術產品與專案經理,專注於輔助型公共運輸服務(paratransit):這類服務能協助身心障礙者前往工作場所、學校與醫療院所。他近距離看見,數位工具有多常讓最仰賴它們的人失望。
「當預約工具無法使用,或螢幕閱讀器無法瀏覽班表頁面時,這不只是造成不便而已,」Works 說。「它會讓某個人沒辦法去見朋友,或去上課。」
他描述的許多使用者,都仰賴線上輔助科技。低視能者可能會使用瀏覽器縮放或高對比模式。有動作障礙的人,可能完全靠鍵盤瀏覽,按 Tab 鍵從一個互動元素移到下一個。
如果網站在設計時沒有把這些人納入考量,這些工具就會失效。市面上有軟體試圖避免這種情況,但多數都有根本限制:它們只檢查底層程式碼,並把檢查結果與標準無障礙指南比對。問題在於,即使程式碼符合規範,頁面仍可能難以使用。
Works 想要一個能抓出這類情況的工具。於是他利用自己的時間,打造了 PointCheck 這個網頁應用程式,把 Molmo、MolmoWeb 與 Olmo 3 串接在一起,從螢幕實際呈現的畫面評估網頁無障礙,而不只是看 HTML 裡有什麼。
用於無障礙檢測的視覺檢查器
為了補上感知層面的落差,Works 知道他需要兩件事:一種能像鍵盤使用者那樣操作真實瀏覽器的方法,以及一種能以像素層級細節檢查畫面的方法。他在開放框架與模型中找到了兩者。
PointCheck 建構在 Playwright 之上。Playwright 是一套開放的瀏覽器自動化工具,會在背景的 Chromium 視窗中載入目標頁面。Works 撰寫的腳本會先掃描常見鍵盤問題,包括使用者無法用 Tab 鍵離開某個元素、損壞的連結模式、不應互動的元素上綁了點擊處理器,以及會覆蓋頁面自然閱讀順序的 tab-order 數值。
PointCheck 會像使用者一樣用 Tab 鍵逐步瀏覽網頁,並在每一步截圖。第一輪檢測時,Works 選擇 MolmoWeb,因為它是為網頁上的視覺指向任務而設計。每張截圖都會連同提示「找出目前具有鍵盤焦點的元素」送進模型,MolmoWeb 則回傳該元素所在的像素座標。接著,PointCheck 會把同一個區域送到 Molmo,直接詢問畫面上有什麼,包括焦點框是否真的可見。這讓 PointCheck 能確認焦點指示器確實在螢幕上可見,而不只是定義在某個樣式表裡。
焦點指示器是當使用者用 Tab 鍵移到按鈕或連結時,出現在其周圍的視覺提示,通常是彩色外框或輪廓線。它是只用鍵盤的使用者在頁面上定位自己的方式,相當於看見游標正在移動。焦點指示器可能通過所有自動化程式碼檢查,卻因為與背景對比不足而完全看不見。對數百萬只靠鍵盤瀏覽的人來說,這個提示就是知道自己停在「立即購買」按鈕上,或不小心按到「取消」之間的差別。
在 PointCheck 中,鍵盤瀏覽與焦點可見性在底層是兩個獨立測試,用來評估不同缺陷。Works 也加入 200% 縮放測試、針對最常見色盲類型「綠色盲」(deuteranopia)的模擬與對比檢查、以無效資料提交表單,以及頁面標記結構分析。
當 PointCheck 的所有測試模組完成後,Olmo 3 會用淺白英文撰寫結果摘要。Works 選擇 Olmo,是因為報告需要對產品經理或設計師有用,而不只是給無障礙專家閱讀;Olmo 3 在白話綜整方面已經足以勝任。
透明度的重要性
Works 曾考慮為 PointCheck 使用專有的視覺與文字 API,但最後決定不用。
「PointCheck 的核心就是它應該能完全自行託管,」他說。「你不應該為了取得無障礙判定,就必須把自己頁面的截圖送給[第三方]。有了 Molmo 和 Olmo,你可以取得權重,在自己的基礎架構上執行,沒有任何資料會離開你的環境。」
Works 在一個週末內完成了 PointCheck 的第一版。讓 Playwright 用 Tab 鍵瀏覽頁面並擷取截圖並不困難。比較難的部分,是在不耗盡 VRAM 的情況下,把三個模型塞進單張 A10G GPU,並處理推論程式碼中的邊緣相容性問題。
「但核心概念很快就跑起來了,這讓我能繼續做下去,」Works 說。「我本質上是產品人。我喜歡把東西完成,讓它超越原型。所以我買了網域、切了 DNS、設定基本分析,還做了 logo。」
早期回饋來自曾以無障礙為專業工作的人。一位曾在華盛頓州社會與健康服務部門負責無障礙的前同事告訴 Works:「我有兩年時間一直希望有這樣的東西。關掉螢幕、只靠鍵盤瀏覽,沒有什麼比這更有效,但那很難規模化。」
因此,Works 認為 PointCheck 是現有工具的補充,而不是替代品;它涵蓋的是程式碼檢查永遠碰不到的範圍。
「我感興趣的是,進一步推進到那些據說只有人工驗證才能涵蓋的領域,」Works 說。「我指的是感知層面的東西,也就是那些必須真的看見頁面才需要處理的事。」
PointCheck 很好地示範了開源模型與工具能促成什麼樣的專案。我們釋出權重、訓練資料與程式碼,是因為我們相信,最具變革性的應用,往往是我們事先無法預料的那些。在全球無障礙關注日,我們很高興能參與一項努力,讓開放網路對每個人都更容易瀏覽。
PointCheck 是 Brendan Works 的獨立專案,與他的雇主或 Ai2 無關。Works 以個人身分發言。
