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
未知规范

另请参阅