JavaScript按键功能和JAWS



我有一个客户需要符合ADA。我们在使用IE9和JAWS屏幕阅读器时发现了一个问题。我们设置了一个jQuery函数,当用户Tab键向下滚动到一个按钮并点击Enter键

jQuery('#ball_i5nqtjcVVB0CxYBJICklS6w').keypress(function(event) {
    if (event.keyCode == 13) {
        jQuery("#headofcurve").focus();
        scrollTo("form");
        liveballTag('Learn More');
    }
});

问题是,当JAWS运行时,点击Enter并没有任何作用。我必须点击Shift+Enter才能滚动到正确的部分并开始阅读。

这是正常行为。这是因为JAWS(以及大多数其他现代屏幕阅读器,btw)处理网页和其他类似HTML的内容的方式
当用户打开一个网页时,他/她会用一个所谓的虚拟光标来观察它。这意味着所有键盘命令在网页上都会改变其含义。这样做是为了快速导航。例如,如果按h,则移动到下一个标题;如果按b,则移动到下一个按钮,依此类推。
为了输入内容,您应该处于表单模式。要进入表单模式,您应该在表单元素(如编辑字段或组合框)上按enter
也就是说,您不能期望在没有运行JAWS的情况下处理Enter。

这里有两个解决方案:

  1. 将按键从Enter更改为Ctrl+Enter滚动到您的元素(我建议选择另一个,因为Ctrl+Enter用于在大量信使和其他类似软件中发送消息)
  2. application ARIA角色分配给页面的一部分。如果JAWS遇到application角色,它会将所有键盘命令传递给网页本身。但是要非常小心这个模式,因为W3联盟建议不要过度使用这个角色

相关内容

  • 没有找到相关文章

最新更新