为什么Javascript IF keyCode === Enter键或空格键不适用于NVDA屏幕阅读器?

阿伦斯基

我正在研究客户端站点的可访问性,并且正在使用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] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

什么是JavaScript KeyCode?

Keypress 事件 keyCode 可用于空格键,但不能用于字母 F

将keyCode事件添加到javascript计算器

Android-onKeyDown不适用于KEYCODE_MENU

JavaScript:应该用什么替换 keyCode?

为什么当我按下 ENTER 键时触发表单中第一个按钮的 onclick(并且没有 keyCode 事件)?

keyCode和不赞成使用的-为什么不起作用?

keypress和keyup-为什么keyCode不同?

为什么Javascript比较不适用于对象?

如果语句不适用于空格键计数

为什么Vue.js键修饰符仅适用于`<button>`而不适用于`<div>`?

为什么键前缀优化不适用于群集列上的二级索引?

Javascript 不适用于 Internet Explorer,但适用于所有其他浏览器。为什么?

使 NVDA 屏幕阅读器在 Angular 中单击按钮后提醒用户的最佳方法是什么?

NVDA屏幕阅读器无法读取Chrome中的Javascript Alert()弹出窗口

为什么没有完全渲染空格键模板?

C#:为什么以编程方式按下键盘快捷键不适用于所有窗口?

为什么 Jest(用于单元测试的 JavaScript 框架)不适用于 `this`?

如何定义键盘事件的keyCode或哪个或键或代码属性

解析特殊键的字符串以获取KeyCode

Chrome为什么JAWS屏幕阅读器有问题?

“#” keyCode = 222 vs 51(Chrome vs Chrome for Android)-为什么会有所不同?

为什么“ charCodeAt(0)”和“ e.keyCode”的结果不匹配?

为什么event.keyCode在ng-keyup中不起作用?

为什么onChange事件在反应中没有event.keyCode属性?

为什么这种行为适用于javascript代码?

为什么 Javascript 文件仅适用于“关于”?

为什么我的Javascript警报不适用于此自定义WordPress插件?

为什么 uglify 不适用于我在 gulp 中的 javascript 文件