我正在研究客户端站点的可访问性,并且正在使用JQuery / Javascript检测是否按下Enter键或空格键,这非常有效。
$(document).addEventListener('keydown', navKeyboardHandler);
navKeyboardHandler = function(e) {
console.log('a keyboar key was pressed'); // This does work
if (e.keyCode === 13 || e.keyCode === 32) { // Keyboard Enter OR Spacebar pressed
console.log('enter or spacebar key pressed ! ! !'); // This does NOT work
}
};
...直到我打开NVDA来使用屏幕阅读器测试键盘导航!它只是完全忽略了此声明。有时,这将触发。就像每10或20次键盘按一次。关于何时选择触发,不一致。
我的IF语句需要修改什么才能起作用?任何帮助将不胜感激。我正在Windows上的Chrome和Firefox上对此进行测试。
我通过他们的闲暇渠道联系了可访问性社区中的人们:web-a11y.slack.com
有人提供了一个不错的 解决方案:
它可能不会触发,因为如果您处于浏览模式,这是正常的,NVDA会拦截密钥。如果您要手动切换到聚焦模式(插入+空格-您会听到“打字机”的声音),则代码应该通过。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句