У меня есть функция, которая блокирует фокус внутри диалога.
<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 все в порядке, но я не хочу использовать эту роль, так как она мне здесь не нужна.
Есть идеи?