2024 年互通性機制:Chrome 全面停用無障礙功能的重點領域

Jocelyn Tran
Jocelyn Tran

今年初,Chrome 在 Interop 2024 的無障礙重點領域中,通過 88.2% 的測試。2024 年 6 月,我們首次達成 100% 的測試通過率。這篇文章將說明達成這項目標所需的工作。

如同 Interop 2024 中的每個重點領域,無障礙領域是由一組針對所選功能的網路平台測試定義。Interop 2024 中的測試旨在確保所有瀏覽器以相同方式建立可存取的名稱和計算角色。

無障礙名稱可傳達 HTML 元素的用途或意圖。這有助於使用者瞭解元素的用途,以及如何與元素互動。accname 規格定義瀏覽器如何為元素建立這個可存取的名稱字串。ARIA 規格包含這個名稱的計算方式逐步說明。

元素的計算角色是字串,代表瀏覽器引擎計算的元素角色。這項功能主要用於開發人員工具,例如 WebDriver 函式 getComputedRole,可啟用互通性測試。

Chrome 團隊需要做什麼?

我們需要完成兩項較大的工作:將角色對應項目變更為一般角色,以及移除已淘汰的角色。接著,我們還要實作一些較小的修正和功能。除了 Chrome 團隊完成的以下工作外,我們也與 Microsoft 合作,針對他們為 Chromium 提供的無障礙重點領域修正項目進行合作。

將特定角色的對應項目變更為一般角色

將對應項目變更為一般角色,即可從元素中移除無障礙語意。通用元素不會為無障礙樹狀結構提供值,因此不會納入樹狀結構。這有助於提升效能,並讓樹狀結構變得更小,更容易剖析輔助技術。以下角色會變更為一般角色。

  • <header> 的範圍為 <main> 或區段內容元素 (<article><aside><nav><section>)。
  • <footer> 的範圍為 <main> 或分區內容元素 (<article><aside><nav><section>)。
  • 在區隔內容元素 (<article><aside><nav><section>) 中,<aside> 沒有可解讀的名稱。
  • <section> 沒有可存取的名稱。
  • 孤立的清單項目 (<li>)。

就前四個項目來說,這些元素通常會對應至地標角色。在頁面上放置太多地標會使瀏覽體驗變得困難,因此這項變更有助於減少多餘的地標,讓頁面更容易瀏覽。最後一個項目通常表示網頁開發人員犯錯,清單項目一律應位於清單中,因此孤立項目會獲得一般角色。

移除已淘汰的角色

我們已淘汰 directory 角色,並將其對應至清單角色。ARIA 1.2 已淘汰 directory 角色。規格說明指出,這與 list 角色相同,開發人員應使用 list。為了維持使用 directory 的舊版內容語意,現在會在 Chrome 中將其對應至 list

其他修正

我們已開始支援 gridcell 角色。這個新角色可讓 gridcellcell 之間的差異更明確。gridcell 可供聚焦、編輯和選取,這與 cell 不同。

我們新增了備用角色計算機。先前我們並未檢查備用角色,因此如果第一個角色無效,我們會使用其他角色,這與規格說明中所述的情況不同。

部分角色只有在正確的情況下才有效,因此我們新增了檢查功能,以防角色使用不當,如下所示:

  • row 角色應位於 tablegridrowgrouptreegrid 中。
  • rowgroup 角色應位於 tablegridtreetreegrid 中。
  • listitem 角色應位於 list 中。

如果角色無效,Chrome 會使用其他資訊 (例如 HTML 元素) 來計算替代角色。

我們已將 theadtfooter 標示為無障礙樹狀結構中的項目。先前這些項目會標示為忽略,但仍會納入樹狀結構。輔助技術現在可以剖析表格標題和表格頁尾。


雖然大多數開發人員可能看不到這些變更,但所有瀏覽器都會確保這些功能以相同方式運作,因此我們會確保不同角色在所有地方都以相同方式公開。