bdf*_*ios 3 javascript accessibility keyevent jaws-screen-reader
我有一个应用程序,每次按下空格键时都会执行某些操作(例如警报).如果我不使用JAWS屏幕阅读器,这可以正常工作.但是,一旦我加载JAWS屏幕阅读器,当我按空格键时它不会执行警报.我需要使用JAWS,所以我需要这个工作.这是代码片段.
$(document).keypress(function(event) {
var chCode = ('charCode' in event) ? event.charCode : event.keyCode;
if (chCode == 32){ //32 is keyCode for spacebar
alert("spacebars!!!");
}
});
Run Code Online (Sandbox Code Playgroud)
根据我的观察,似乎JAWS抓住键盘焦点并且不允许空格键事件触发.当我按下空格键时JAWS总是读取"Space"但警报事件不会触发.当空格键按下时,如何仍然可以触发警报或doSomething()?如何从JAWS获取控制权或者可以与JAWS共享键盘控制,这样即使JAWS读出我按下的角色(在本例中为Spacebar),它也会允许我的事件(警报)触发.谢谢.
更多代码:
$(document).keypress(function(event) {
var cc= ('charCode' in event) ? event.charCode : event.keyCode;
if (cc == 32)
{
spArray.push(Number(new Date()));
}
});
Run Code Online (Sandbox Code Playgroud)
Ala*_*irC 10
一般来说,即使他们允许你也不建议覆盖屏幕阅读器.有很多JAW键盘命令(与INS一起使用)使用空格键,你可能会锁定这些命令.
如果该区域主要是表单控件或交互式小部件,那么您可以将其包装在一个元素中role="application".这使得(窗口)屏幕阅读器进入"表单"模式,其中键被传递到网页.
不要不包一切button,就在互动区.
更新:有了更多信息,这是关于基于音频的捕获,其中用户触发音频文件,然后再次触发某事来设置时间并通过捕获.
使用原生onclick,Jaws将通过使用enter(不确定空间,这不是通常的'激活'键).我建议检查输入密钥(我认为是charcode 13),甚至onclick应该工作.在原生按钮/链接上,它适用于屏幕阅读器.
$(document).click(function() {
spArray.push(Number(new Date()));
});
Run Code Online (Sandbox Code Playgroud)
假设它位于正确的位置,以便在需要之前不会变为活动状态.(JS不是我的强项,但请使用回车键或role="application".