我们必须为基于浏览器的客户端实现键盘支持。我找到了两种实现方法 1.通过在 HTML 中指定“accesskey”属性或 2.通过 javascript 支持热键
我倾向于选择 1。因为它是内置和标准的,但是我观察到大多数网站都选择 2。
这有什么特别的原因吗?
我们必须为基于浏览器的客户端实现键盘支持。我找到了两种实现方法 1.通过在 HTML 中指定“accesskey”属性或 2.通过 javascript 支持热键
我倾向于选择 1。因为它是内置和标准的,但是我观察到大多数网站都选择 2。
这有什么特别的原因吗?
主要原因,或者至少是一个很好的理由,是该accesskey
属性设计不佳,未指定(规范并没有真正说明它是如何工作的),并且在浏览器中实现不一致。
此外,accesskey
除了字母或数字键之外,使用通常需要用户使用 Alt 或 Option 键或等效键。这不是特别好的可用性或可访问性。
超脚本技术的唯一优势accesskey
是它在禁用 JavaScript 时有效。但这很少是应用程序中真正关心的问题或类似应用程序的网页中很少真正引起关注,因为无论如何它们都不能在没有 JavaScript 的情况下工作。
许多网站忽略了屏幕阅读器的测试,它们对热键的支持有限,但对 accesskey 的支持要好得多。JAWS 通过说“alt plus [the_accesskey]”来宣布一个带有 accesskey 的项目,但对 JavaScript 的运行方式知之甚少。
有些人还使用粘滞键,可以在MS windows和MAC OS X中打开。因此情况变得更加复杂。JAWS 使用 ctrl 来静音。如果 Accesskey 或热键与屏幕阅读器自己的热键冲突,则它们无法正常工作。
正如@Jukka K. Korpela所说:
主要原因,或者至少是一个很好的理由,是 accesskey 属性设计不佳,未指定(规范并没有真正说明它是如何工作的),并且在浏览器中实现不一致。
随着时间的推移会更好。更重要的是,大多数用户只需要学习如何在他们喜欢的浏览器上触发 accesskey。
accesskey 属性——我们还需要它吗?讨论更多关于这个话题。对于这两种计划,您都可以使用屏幕阅读器进行测试以使其更实用。
盲人或视力低下的人会感谢您的努力。