辅助功能 - 使用JAWS时,焦点锁定会被箭头键断开

问题描述 投票:0回答:2

我有一个函数将焦点锁定在对话框中。

<div role="dialog" aria-label="test dialog">
    <input type="text" id="a"/><br />
    <input type="text" id="b"/><br />
    <input type="text" id="c"/><br />
    <input type="text" id="d"/><br />
    <button id="buttonA">a</button>
    <button id="buttonB">b</button>
    <button id="buttonC">c</button>
</div>

当使用Tab / Shift选项卡时,它工作正常,但现在我已经开始使用JAWS测试我的代码了,我发现箭头键的行为有所不同。

锁定对话框类似于这个小提琴中的逻辑:https://jsfiddle.net/zw6w5gx2/

我尝试将箭头的键码添加到'if'语句中,但是我注意到这些键没有触发事件。

我的对话框有role = dialog,当使用NVDA时,足以使箭头键恢复正常行为,但它不适用于JAWS。

我确实看到使用role = application时一切都很好,但我不想使用这个角色,因为它不是我在这里需要的。

有任何想法吗?

jquery accessibility jaws-screen-reader arrow-keys
2个回答
1
投票

对不起,但你在这里做的是不良做法和同时过度编码。 首先,最新版本的JAWS具有内置功能,可通过当前对话框限制虚拟光标,因此无需重新实现此功能。 其次,您不应以任何方式限制您的用户。如果以编程方式锁定焦点,对于屏幕阅读器用户来说,这类似于一个虚构的过程,在操作过程中,除了对话框之外,您将突然使所有显示器变暗。这是不可接受的,这就是JAWS没有给你这种能力的原因。 第三,为了通过“按Tab键 - 获得具体输入”来实现你的效果,你只需要指出正确的tabindex属性,那么所有的Tab / Shift + Tab移动都将按预期进行。 问题是网页上的JAWS使用称为虚拟光标的东西进行操作。它允许盲人用户通过使用快捷键(即字母(h按标题导航,按b按钮,依此类推等)浏览页面。这就是为什么你看到这么奇怪(乍一看(行为)。 但是,如果你绝对需要做你目前做的所有这些事情(你有权这样做,尽管我之前说过),role="application"是你最好的朋友:因此用户肯定会知道他/她密钥不会像他/她期望的那样运行,这是正常的,因为开发人员就这样做了。


0
投票

当使用“虚拟光标”模式和“应用程序”模式尝试在应用程序模式下使用“insert + z”切换模式时,Jaws表现不同,当在“虚拟光标”下颌使用时,焦点移动到可标签元素DOM结构用于聚焦下一个/前一个元素。当使用“扫描”模式“大写锁定+空格”启用/禁用时,其他辅助工具(如讲述人)也会发生同样的情况。

© www.soinside.com 2019 - 2024. All rights reserved.