我有一个应用程序在每次按空格键时都会执行某些操作(例如,提醒)。如果我不使用JAWS屏幕阅读器,这工作正常。但是,一旦我加载JAWS屏幕阅读器,当按下空格键时它不会执行警报。我需要使用JAWS,所以我需要这个工作。这是代码片段。Javascript keyevent和JAWS屏幕阅读器
$(document).keypress(function(event) {
var chCode = ('charCode' in event) ? event.charCode : event.keyCode;
if (chCode == 32){ //32 is keyCode for spacebar
alert("spacebars!!!");
}
});
从我的观察,它似乎JAWS抓住键盘焦点,并不会允许空格键事件触发。当我按下空格键时,JAWS总是读取“空格”,但警报事件不会触发。当空格键被按下时,我还能如何触发alert或doSomething()?我如何从JAWS获得控制权,或者与JAWS共享键盘控制权,这样即使JAWS读出我按下的角色(在本例中为空格键),它也会允许我的事件(警报)触发。谢谢。
更多代码:
$(document).keypress(function(event) {
var cc= ('charCode' in event) ? event.charCode : event.keyCode;
if (cc == 32)
{
spArray.push(Number(new Date()));
}
});
感谢您的反馈。根据上下文,我正在开发音频验证码。验证码控件(播放和重新加载按钮)位于表单页面上。用户通过按空格键回答验证码来回答验证码。每次按空格键时我需要捕获当前时间,但JAWS不允许捕获空格键,但每次按空格键时它都会读出“空格”。我需要一种方式来捕获空格键,就像它在不使用JAWS时的工作方式一样。我会尝试你提到的应用程序角色,看看它是否有帮助。谢谢。 – bdfios
您是否尝试过使用按钮并接受onkeypress甚至onclick?使用标准控制意味着大白鲨可以通过按下Enter键并触发一次onclick/onkeypress。 – AlastairC
是的,我做到了。它是这样实现的:点击播放按钮,开始听按键。请参阅上面的代码。 – bdfios