自訂控制項具有 ARIA 角色

確認所有自訂控制項都有適當的 role 和任何必要的 ARIA 屬性,這些屬性分別具有其屬性和狀態。舉例來說,自訂核取方塊需要 role="checkbox"aria-checked="true|false" 才能正確傳達狀態。請參閱 ARIA 簡介,大致瞭解 ARIA 如何為自訂控制項提供缺少的語意。

如何手動測試

如要檢查所有自訂互動控制項是否具有適當的 ARIA 角色,請使用 Chrome 開發人員工具無障礙窗格或螢幕閱讀器測試頁面。JAWSNVDA 是較熱門的 Windows 螢幕閱讀器兩大。VoiceOver 是 MacOS 內建的螢幕閱讀器。

使用 CSS,您可以為 <div><button> 元素設定樣式,藉此傳達相同的視覺預設用途,但同時使用螢幕閱讀器時,這兩種體驗會大有不同。<div> 只是一般的分組元素,因此螢幕閱讀器只會朗讀 <div> 的文字內容。<button> 會宣布為「按鈕」,這能夠讓使用者更清楚瞭解可與其互動的內容。另請參閱「語意和螢幕閱讀器」。

如何修正

如要解決這個問題,最簡單的方法通常是避免使用自訂互動式控制項。例如,將類似按鈕的 <div> 替換為實際的 <button>

如果您必須保留 <div>,請將 role="button"aria-pressed="false" 新增至 <div>

現在螢幕閱讀器會朗讀 <div> 的角色和互動狀態。

這些資訊的重要性

想實際瞭解輔助技術使用者體驗的體驗,唯一的方法就是透過螢幕閱讀器自行檢查內容。第一種使用螢幕閱讀器可讓您清楚瞭解內容的標記方式,以及輔助技術導覽是否出現障礙。如果您不熟悉輔助技術如何解讀語意標記,請參閱語意簡介

另請參閱如何進行無障礙審查

資源

自訂控制項的原始碼具有 ARIA 角色稽核功能