JavaScript按键功能和JAWS

时间:2014-10-29 19:30:23

标签: javascript jquery accessibility jaws-screen-reader

我的客户端必须符合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 才能滚动到正确的部分并开始阅读。

1 个答案:

答案 0 :(得分:4)

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

这里有两个解决方案:

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