繁体   English   中英

JavaScript按键功能和JAWS

[英]JavaScript keypress function and 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用于以大量Messenger和其他软件发送消息)。
  2. application ARIA角色分配给页面的一部分。 如果JAWS遇到application角色,它将把所有键盘命令传递到网页本身。 但是请谨慎使用此模式,因为W3 Consortium建议不要过度使用此角色。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM