ARIA:應用程式角色

application 角色指示輔助技術,應將元素及其所有子元素視為類似於桌面應用程式,並且不應使用任何傳統的 HTML 解釋技術。此角色僅應用於定義非常動態且類似桌面的 Web 應用程式。大多數移動和桌面 Web 應用程式被視為此目的的應用程式。

html
<div role="application" aria-label=""></div>

透過指定 application 角色,它表示此 div 元素及其所有後代將被視為桌面應用程式的一部分。

描述

application 文件結構角色指示輔助技術,Web 內容的這一部分包含不符合任何其他已知 HTML 元素或 WAI-ARIA 小部件的元素。應暫停對 HTML 結構和小部件的任何特殊解釋,並應完全將控制權交給瀏覽器和 Web 應用程式來處理滑鼠、鍵盤或觸控互動。

在這種模式下,Web 作者對處理任何和所有鍵盤輸入、焦點管理以及其他互動完全負責,並且不能假設輔助技術會在其端執行任何處理。

如果包含在應用程式角色中的 Web 應用程式包含被視為正常 Web 內容的部分,則應使用 documentarticle 角色來包含此類內容。

背景

出於歷史原因,尤其是在 Windows 上,螢幕閱讀器和其他一些輔助技術 (AT) 傳統上會在 Web 內容載入完畢後立即從瀏覽器中獲取整個 Web 內容。AT 會構建他們自己的表示形式,這對於視障使用者來說是最有意義的消費內容。這通常稱為虛擬文件瀏覽模式或類似術語。文件簡化為單列檢視。生成的鍵盤互動模型與文字處理器非常相似,使用者可以逐行、逐句或逐段閱讀。AT 將讀取任何語義,例如連結、標題、表單控制元件、表格、列表或影像。

此外,多年來已經建立了一組所謂的快速導航鍵,這些鍵允許視障使用者透過特定元素型別來瀏覽頁面。此類元素通常包括標題、表單欄位、列表、表格、連結、圖形或地標區域。

為了使所有這些工作,AT 會攔截幾乎所有鍵盤輸入並自行使用它們,不會將任何內容傳遞給瀏覽器或其他使用者代理。為了能夠與網頁進行互動,會識別一組標準的小部件,當按下特定鍵(通常是 Enter 鍵)時,此模式將關閉。螢幕閱讀器模式,通常稱為表單模式焦點模式,允許所有鍵盤輸入重新傳遞給瀏覽器。 Escape 是切換回瀏覽模式的最常用方法,但在特定 application 部分內,一些螢幕閱讀器可能需要其他鍵才能有意退出此模式。例如,JAWS 使用 NUMPAD PLUS

application 角色旨在為不在標準集中的小部件提供一種方法,使其能夠在使用瀏覽焦點兩種模式與 Web 內容進行互動的 AT 中直接互動。大多數常見的小部件都有預期的鍵盤互動行為。因此,Web 作者建立的自定義鍵盤體驗會導致令人困惑的體驗。

關聯的 WAI-ARIA 角色、狀態和屬性

documentarticle

用於指示應被視為正常 Web 內容的應用程式部分

aria-activedescendant

用於管理應用程式內部的焦點。

aria-label

用於提供應用程式的名稱或正在公開的小部件的用途。

aria-describedby

用於指示包含有關導航或操作此元素的其他說明的元素的 idref。

aria-roledescription

用於為應用程式提供更具描述性的角色文字,供螢幕閱讀器朗讀。這應該進行本地化。

aria-disabled

表示元素可見但已停用

aria-errormessage

對提供設定它的元素的錯誤訊息的元素的引用

aria-expanded

如果設定為 true,則此元素擁有的或控制的組元素將展開,如果摺疊,則為 false

aria-haspopup

表示可以透過元素觸發彈出視窗,例如選單或對話方塊。

鍵盤互動

鍵盤互動完全由 Web 作者控制,可以是與正在實現的特定小部件相關的任何內容。例如,在幻燈片應用程式中,可以建立一個使用箭頭鍵定位幻燈片上的元素,並使用 ARIA 即時區域透過音訊反饋來傳達位置和其他物件重疊狀態的小部件。焦點透過aria-activedescendant進行管理。

應用程式必須處理 TabSpaceEnter 鍵以及 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 內容提供的任何閱讀機制將不適用。

另請參見