ARIA 螢幕閱讀器實現者指南
即時區域
這只是一個指南。即時區域標記是一個複雜的領域,在某種程度上存在解釋的空間。以下是旨在提供實現指南,這些指南尊重螢幕閱讀器開發人員嘗試不同事物的需求。其目的是在提供關於如何使用標記預期含義的有用指南的同時,支援即時區域作為螢幕閱讀器進行創新和競爭的領域。
解釋 WAI-ARIA 即時區域標記
- 即時更改是提示:通常,即時區域標記由作者提供作為提示,輔助技術可能允許全域性、網站甚至區域特定的設定,以及幫助在沒有 WAI-ARIA 提示的頁面上處理即時更改的啟發式方法。
- 可選地,如果使用者配置了第二個硬體通道,則建立一個第二個附加佇列:如果存在兩個演示通道(例如,文字轉語音和盲文顯示器),則可以維護兩個佇列以允許並行演示。可以根據角色或禮貌使用者配置通道,以演示即時區域。
- 繁忙區域:在標記為 aria-busy="true" 的區域中發生的任何更改,都應該在該屬性清除之前不會新增到佇列中。
- 禮貌(
aria-live或來自 角色)優先順序最高:應根據其禮貌級別從 aria-live 屬性新增專案到佇列中,或從角色繼承(例如,role="log" 預設情況下是禮貌的)。斷言專案排在首位,然後是禮貌級別。或者,實現可以選擇清除更禮貌的專案,例如,斷言專案會清除佇列中的任何禮貌專案。 - 時間優先順序第二:根據事件發生的順序優先處理具有相同禮貌級別的專案(較早的事件排在首位)。按照先發生順序呈現相同禮貌級別的專案。
- 原子(
aria-atomic="true")區域發生多次更改時,不應該兩次呈現相同內容。當向佇列新增原子區域的新事件時,刪除該區域的早期事件。在呈現原子區域更改之前,最好至少有一個很短的超時,以避免在兩個快速發生的更改後兩次呈現該區域。 - 在呈現更改時包含標籤:如果更改發生在具有某種語義標籤的事物中,請說出該標籤。這對於資料單元中的更改尤為重要,因為列和行標題提供了重要的上下文資訊。
設定和啟發式方法的思路
- 允許使用不同的聲音(在文字轉語音中)或其他不同的演示特徵來區分即時更改。
- 當沒有 WAI-ARIA 標記存在時,自動呈現某些更改,除非使用者將所有即時更改配置為關閉。例如,作為該輸入的上下文的一部分,自動說出由使用者自己的輸入引起的更改。
- 允許全域性設定關閉即時更改的呈現、呈現所有即時更改、使用標記或“智慧”(使用啟發式方法)