ARIA:應用程式角色
application 角色指示輔助技術,應將元素及其所有子元素視為類似於桌面應用程式,並且不應使用任何傳統的 HTML 解釋技術。此角色僅應用於定義非常動態且類似桌面的 Web 應用程式。大多數移動和桌面 Web 應用程式不被視為此目的的應用程式。
<div role="application" aria-label="…">…</div>
透過指定 application 角色,它表示此 div 元素及其所有後代將被視為桌面應用程式的一部分。
描述
背景
出於歷史原因,尤其是在 Windows 上,螢幕閱讀器和其他一些輔助技術 (AT) 傳統上會在 Web 內容載入完畢後立即從瀏覽器中獲取整個 Web 內容。AT 會構建他們自己的表示形式,這對於視障使用者來說是最有意義的消費內容。這通常稱為虛擬文件、瀏覽模式或類似術語。文件簡化為單列檢視。生成的鍵盤互動模型與文字處理器非常相似,使用者可以逐行、逐句或逐段閱讀。AT 將讀取任何語義,例如連結、標題、表單控制元件、表格、列表或影像。
此外,多年來已經建立了一組所謂的快速導航鍵,這些鍵允許視障使用者透過特定元素型別來瀏覽頁面。此類元素通常包括標題、表單欄位、列表、表格、連結、圖形或地標區域。
為了使所有這些工作,AT 會攔截幾乎所有鍵盤輸入並自行使用它們,不會將任何內容傳遞給瀏覽器或其他使用者代理。為了能夠與網頁進行互動,會識別一組標準的小部件,當按下特定鍵(通常是 Enter 鍵)時,此模式將關閉。螢幕閱讀器模式,通常稱為表單模式或焦點模式,允許所有鍵盤輸入重新傳遞給瀏覽器。 Escape 是切換回瀏覽模式的最常用方法,但在特定 application 部分內,一些螢幕閱讀器可能需要其他鍵才能有意退出此模式。例如,JAWS 使用 NUMPAD PLUS。
application 角色旨在為不在標準集中的小部件提供一種方法,使其能夠在使用瀏覽和焦點兩種模式與 Web 內容進行互動的 AT 中直接互動。大多數常見的小部件都有預期的鍵盤互動行為。因此,Web 作者建立的自定義鍵盤體驗會導致令人困惑的體驗。
關聯的 WAI-ARIA 角色、狀態和屬性
document、article-
用於指示應被視為正常 Web 內容的應用程式部分
aria-activedescendant-
用於管理應用程式內部的焦點。
aria-label-
用於提供應用程式的名稱或正在公開的小部件的用途。
aria-describedby-
用於指示包含有關導航或操作此元素的其他說明的元素的 idref。
aria-roledescription-
用於為應用程式提供更具描述性的角色文字,供螢幕閱讀器朗讀。這應該進行本地化。
aria-disabled-
表示元素可見但已停用
aria-errormessage-
對提供設定它的元素的錯誤訊息的元素的引用
aria-expanded-
如果設定為
true,則此元素擁有的或控制的組元素將展開,如果摺疊,則為false。 aria-haspopup-
表示可以透過元素觸發彈出視窗,例如選單或對話方塊。
鍵盤互動
鍵盤互動完全由 Web 作者控制,可以是與正在實現的特定小部件相關的任何內容。例如,在幻燈片應用程式中,可以建立一個使用箭頭鍵定位幻燈片上的元素,並使用 ARIA 即時區域透過音訊反饋來傳達位置和其他物件重疊狀態的小部件。焦點透過aria-activedescendant進行管理。
應用程式必須處理 Tab、Space 和 Enter 鍵以及 Escape 鍵。唯一的例外是,如果焦點設定在應用程式內部支援瀏覽器鍵盤導航的標準小部件上,例如 input 元素。
所需的 JavaScript 功能
- keyPress
-
用於處理鍵盤輸入和控制焦點
- Click, Touch
-
根據您的小部件進行適當處理
- 更改屬性值
-
aria-activedescendant用於管理應用程式容器內的焦點。根據更改焦點或互動點的鍵盤或其他應用程式事件進行設定。
注意:application 角色沒有相關聯的 HTML 小部件,因此完全是自由格式的。應用程式的作者必須承擔全部責任,確保使用者不會陷入應用程式內部無法退出的焦點陷阱。必須處理所有互動方面,包括返回頁面其他部分的常規 Web 內容。明智而謹慎地使用,並記住進行測試!
示例
一些使用或已正確使用 application 角色的知名 Web 應用程式:
- Google Docs、Sheets 和 Slides
- CKEditor 和 TinyMCE WYSIWYG 網頁編輯器,例如 Mozilla 開發者網路上使用的編輯器
- Gmail 的部分內容
無障礙問題
不正確地使用 application 角色可能會無意中剝奪訪問網頁上資訊的許可權,因此請務必注意使用它。認真思考您是否真的需要它,是否無法僅僅使用一組其他已知的小部件來完成相同的任務。
如果使用,application 角色應新增到可能的最低公共容器中,而不是 <body> 元素中。此外,務必使用輔助技術測試您編寫的程式碼,以驗證它是否按預期工作。
規範
| 規範 |
|---|
| 可訪問的富網際網路應用程式 (WAI-ARIA) # application |
優先順序順序
應用 application 角色將導致此元素及其所有後代元素被視為應用程式內容,而不是 Web 內容。輔助技術可能針對 Web 內容提供的任何閱讀機制將不適用。
另請參見
- 如果您使用 WAI-ARIA 角色
application,請明智地使用 - 馬可·澤赫的部落格文章 - 使用 ARIA
application角色 - 由萊奧妮·沃森撰寫