ARIA: aria-keyshortcuts 屬性
全域性 aria-keyshortcuts 屬性用於指明作者實現的、用於啟用或聚焦某個元素(element)的鍵盤快捷鍵。
描述
鍵盤快捷鍵是由一個或多個按鍵組成的組合,用於告知軟體執行預先設定的操作。鍵盤快捷鍵使使用者無需透過選單、觸控或滑鼠,即可在鍵盤上呼叫命令。aria-keyshortcuts 屬性定義了為啟用或聚焦設定該屬性的元素而實現的鍵盤按鍵。
aria-keyshortcuts 屬性向輔助技術公開了快捷鍵的存在,以便能夠將其告知使用者。與所有 ARIA 屬性一樣,它不會影響頁面的功能;鍵盤行為必須透過 JavaScript 事件處理程式新增。
應用於停用元素的鍵盤快捷鍵也應被停用。例如,當停用元素供滑鼠使用者使用時,請記住也要停用鍵盤快捷鍵使用者。
確保所有鍵盤快捷鍵都對視障使用者可見,並可供輔助技術使用。如果您的應用程式足夠複雜,需要使用鍵盤快捷鍵(也稱為“熱鍵”),請提供應用程式的導覽、記錄快捷鍵和其他可訪問性功能的“可訪問性”頁面、快捷鍵備忘單頁面或對話方塊彈出視窗,或者其他告知使用者可用鍵盤快捷鍵的方法。此外,還在選單和工具提示中顯示快捷鍵。
屬性值規則
aria-keyshortcuts 屬性的值是由空格分隔的按鍵組合列表,按下這些組合可以啟用命令或文字框小部件。每個按鍵組合包含零個、一個或多個修飾鍵,後跟一個非修飾鍵,它們同時按下,並用加號("+")連線。屬性值不區分大小寫。
有效鍵盤快捷鍵的示例包括:
aria-keyshortcuts="A" aria-keyshortcuts="Shift+Space" aria-keyshortcuts="Control+Alt+." aria-keyshortcuts="Control+Shift+'" aria-keyshortcuts="alt+shift+p control+f" aria-keyshortcuts="Meta+C Meta+Shift+C"
修飾鍵是單獨按下時沒有影響的按鍵。它們被寫為“Alt”、“Control”、“Shift”、“Meta”(Mac 上的 Command 鍵)或“AltGraph”(Mac 上的 Option 鍵)。
非修飾鍵是單獨按下時有影響的按鍵,無論是列印字元、移動焦點,還是在按下時產生鍵盤事件。列印單個字元的非修飾鍵包括 P、z 和 . 等字元。
由於加號用於書寫按鍵組合,因此如果用作非修飾鍵,則寫為 plus。其他寫出的非修飾鍵包括空格字元 Space、Tab 和 Enter,以及所有導致操作的字元,如 ArrowUp、PageUp 和 Escape。
如果您想使用可能引起問題的字元,例如雙引號內的雙引號字元,請對其進行轉義:Control+'。
修飾鍵必須寫在每個按鍵組合的最前面。可能的按鍵組合包括 Control+P 或 Shift+Space 和 Q。如果完整快捷鍵需要按此順序包含所有這三個組合,則應寫為 aria-keyshortcuts="Control+P Shift+Space Q"。當一個按鍵組合包含多個修飾鍵時,修飾鍵的順序無關緊要,但它們都必須放在非修飾鍵之前。
這兩個屬性宣告是等效的。
aria-keyshortcuts="Shift+Control+V" aria-keyshortcuts="control+shift+v"
請注意,文字大小寫無關緊要。但非修飾鍵的順序很重要。
這兩個屬性宣告無效,因為非修飾鍵必須放在最後。
aria-keyshortcuts="V+Shift+Control" aria-keyshortcuts="V+Control+Shift"
列出的按鍵組合必須是使用者需要按下的按鍵,而不是組合按鍵的結果。例如,在美國鍵盤上,如果您需要“@”符號,則按鍵組合應寫為 "Shift+2",而不是 "@" 或 "Shift+@"。
最佳實踐
為了提高您網站和應用程式的可訪問性,請遵循一些最佳實踐,以確保您的“增強功能”不會對使用者體驗產生負面影響。請記住,沒有 ARIA 比糟糕的 ARIA 更好。
不要覆蓋瀏覽器、輔助技術或作業系統快捷鍵
在實現鍵盤快捷鍵時,請確保不要建立已被瀏覽器、輔助技術或作業系統使用的快捷鍵,除非它們用於相同的功能。例如,“Control+P”被大多數使用者代理用於啟動列印功能。通常,Web 應用程式不應建立“Control+P”快捷鍵,因為它會取代瀏覽器功能。也有例外。在列印很常見的 Web 應用程式中,例如電子郵件應用程式或文件編輯器,為應用程式特定的列印流程取代瀏覽器的“Control+P”列印功能是可以預期的。
除非您正在建立一個生產力應用程式的 HTML 版本,否則您很可能應該避免實現鍵盤快捷鍵。雖然覆蓋作業系統或瀏覽器鍵盤快捷鍵可能會讓非輔助技術使用者感到煩惱,但如果您覆蓋螢幕閱讀器的鍵盤功能,您可能會完全關閉輔助技術使用者的訪問許可權。如果您必須建立鍵盤快捷鍵,請避免使用單字母鍵盤快捷鍵和常見的螢幕閱讀器鍵盤快捷鍵。
考慮語言和鍵盤差異
請考慮各種可用鍵盤和不同的鍵盤語言偏好。修飾鍵通常用於建立特定語言的常見標點符號和數字字元。例如,當鍵盤語言偏好設定為法語(法國)時,數字會使用 Shift 鍵。
不要改用 HTML
aria-keyshortcuts 屬性與有問題的 HTML accesskey 屬性非常相似,後者為當前元素生成鍵盤快捷鍵。當為元素定義 accesskey 時,瀏覽器會定義修飾鍵並無需指令碼即可處理快捷鍵。每個瀏覽器和作業系統組合都有自己針對 accesskey 屬性中設定的非修飾鍵的修飾鍵。對一種作業系統、輔助技術和瀏覽器組合有效的方法可能對其他組合無效。而對於 aria-keyshortcuts,修飾鍵包含在按鍵組合的屬性值列表中,並且必須透過指令碼實現功能。
<p>
Press the
<strong><u>S</u></strong
>tress reliever to relax!
</p>
<button accesskey="s">Stress reliever</button>
在此示例中,我們還透過突出顯示非修飾字符,確保了視覺使用者也瞭解快捷鍵的存在。
雖然 accesskey 屬性的目標與 aria-keyshortcuts 的意圖一致,並且可以原生實現,但 accesskey 存在很多問題。由於這些問題,通常建議不要在大多數通用網站和 Web 應用程式中使用 access keys。
除了瀏覽器支援不佳之外,accesskey 也存在與 aria-keyshortcuts 相同的顧慮。
- accesskey 值可能與系統或瀏覽器鍵盤快捷鍵衝突,或與輔助技術功能衝突。
- 某些按鍵值可能在特定鍵盤上不存在,尤其是在考慮國際化時。因此,適應特定語言可能會導致進一步的問題。
- 依賴數字的值可能令有認知障礙的人感到困惑,因為數字與它觸發的功能沒有邏輯關聯。
- 告知使用者快捷鍵的存在,讓他們瞭解該功能。如果系統缺乏通知使用者此功能的方法,使用者可能會意外啟用快捷鍵。
值
<string>-
按鍵組合的空格分隔列表,按下這些組合即可執行操作。
示例
在此示例中,元素上的 aria-keyshortcuts 屬性設定為“Alt+Shift+A”。
<a href="#content" aria-keyshortcuts="Alt+Shift+A">Skip to content</a>
相關介面
Element.ariaKeyShortcuts-
Element介面的ariaKeyShortcuts屬性反映了aria-keyshortcuts屬性的值。 ElementInternals.ariaKeyShortcuts-
ElementInternals介面的ariaKeyShortcuts屬性反映了aria-keyshortcuts屬性的值。
相關角色
用於 **所有** 角色。
規範
| 規範 |
|---|
| 無障礙富網際網路應用程式 (WAI-ARIA) # aria-keyshortcuts |
| 未知規範 |
另見
- ARIA Authoring Practices 中的“鍵盤快捷鍵”部分
- HTML
accesskey屬性 accesskey的問題