自訂控制項具有 ARIA 角色

請確認所有自訂控制項都具有適當的 role,以及任何必要的 ARIA 屬性,以便提供屬性和狀態。舉例來說,自訂核取方塊需要 role="checkbox"aria-checked="true|false",才能正確傳達其狀態。

瞭解如何使用 ARIA 和 HTML,瞭解在哪些情況下最能為自訂控制項提供缺少語意。

測試方式

如要檢查所有自訂互動式控制項是否具有適當的 ARIA 角色,請使用 Chrome 開發人員工具無障礙功能窗格或螢幕閱讀器測試頁面。

JAWSNVDA 是兩個較受歡迎的 Windows 螢幕閱讀器。VoiceOver 是 macOS 內建的螢幕閱讀器。

您可以使用 CSS 為 <div><button> 元素設定樣式,以便傳達相同的視覺操作元素,但使用螢幕閱讀器時,體驗會截然不同。<div> 只是一般群組元素,因此螢幕閱讀器只會朗讀 <div> 的文字內容。<button> 會以「按鈕」的形式顯示,向使用者傳達更強烈的信號,讓他們知道這是可互動的項目。

另請參閱「語意和螢幕閱讀器」。

如何修正

解決這個問題的最佳做法是完全避免自訂互動式控制項。例如,將模擬按鈕的 <div> 替換為實際的 <button>

<button>Learn more</button>

如果您必須使用 <div>,請新增 role="button"aria-pressed="false"

<div role="button" aria-pressed="false">Learn more</div>

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

重要性

如果您從未使用過輔助技術,可能不知道內容在輔助技術使用者身上的表現如何。理想情況下,您可以與經常使用輔助技術的使用者交談,並分享他們對網站或網頁應用程式效能的意見。

另一種瞭解輔助技術使用者如何體驗內容的方法,就是使用輔助技術進行測試。使用螢幕閱讀器可讓您更清楚瞭解內容的標示方式,以及瀏覽時是否有任何障礙物。

資源

您可以查看自訂控制項具有 ARIA 角色稽核的原始碼