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