aria-keyshortcuts

全域性 aria-keyshortcuts 屬性指示作者為啟用或將焦點設定到元素上而實現的鍵盤快捷鍵。

描述

鍵盤快捷鍵是告訴軟體執行預程式設計操作的一系列一個或多個鍵。鍵盤快捷鍵使鍵盤使用者能夠使用鍵盤呼叫命令,否則需要訪問選單或使用觸控或滑鼠。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 鍵)。

非修飾鍵是單獨使用時具有影響的鍵,無論是列印字元、移動焦點還是在使用時以其他方式建立鍵盤事件。列印單個字元的非修飾符包括像 Pz. 這樣的字元。

由於加號用於編寫鍵組合,因此如果用作非修飾符,則寫為 plus。其他寫出的非修飾符包括空格字元 SpaceTabEnter,以及所有導致操作的字元,如 ArrowUpPageUpEscape

如果你想使用可能導致問題的字元,比如雙引號內的雙引號字元,請轉義該字元:Control+'

每個鍵組合中修飾鍵必須先列出。可能的鍵組合包括 Control+PShift+SpaceQ。如果完整快捷鍵需要按順序按這三個組合,則應寫為 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,修飾鍵包含在鍵組合的屬性值列表中,並且必須在其中進行指令碼化功能。

html
<p>
  Press the
  <strong><u>S</u></strong
  >tress reliever to relax!
</p>
<button accesskey="s">Stress reliever</button>

在此示例中,我們確保透過突出顯示非修飾符字元,讓有視力的使用者瞭解快捷鍵的存在。

雖然 accesskey 屬性的目標與 aria-keyshortcuts 的意圖相匹配,並且以本機方式實現,但 accesskey 存在很多問題。由於這些問題,通常建議不要將訪問鍵用於大多數通用網站和 Web 應用程式。

除了瀏覽器支援不佳之外,accesskey 還存在與 aria-keyshortcuts 相同的問題。

  • 訪問鍵值可能會與系統或瀏覽器鍵盤快捷鍵或輔助技術功能衝突。
  • 某些鍵值可能在某些鍵盤上不存在,尤其是在國際化是一個問題的情況下。因此,適應特定語言可能會導致更多問題。
  • 依賴於數字的值可能會讓遇到認知問題的人感到困惑,因為數字與觸發功能之間沒有邏輯關聯。
  • 通知使用者快捷鍵的存在,以便他們瞭解該功能。如果系統缺乏通知使用者此功能的方法,使用者可能會意外啟用快捷鍵。

<string>

按壓時執行操作的鍵組合的空格分隔列表。

示例

在此示例中,元素上的 aria-keyshortcuts 屬性設定為“Alt+Shift+A”。

html
<a href="#content" aria-keyshortcuts="Alt+Shift+A">Skip to content</a>

關聯介面

Element.ariaKeyShortcuts

ariaKeyShortcuts 屬性(Element 介面的一部分)反映了 aria-keyshortcuts 屬性的值。

ElementInternals.ariaKeyShortcuts

ariaKeyShortcuts 屬性(ElementInternals 介面的一部分)反映了 aria-keyshortcuts 屬性的值。

關聯角色

在 **所有** 角色中使用。

規範

規範
可訪問的富網際網路應用程式 (WAI-ARIA)
# aria-keyshortcuts
未知規範

另請參閱