我在一个 div 中有一组按钮,并带有一些 javascript 在它们之间移动焦点以响应箭头键事件。
当我使用 NVDA/Firefox/Windows 进行测试时,似乎 NVDA 会覆盖我的箭头键处理程序并根据自己的规则移动焦点。这是一个问题,因为我的小部件是高度可定制的、动态的和响应式的——所以移动焦点的规则非常复杂。
Voiceover 和 ChromeVox 都没有这种行为。
我注意到向每个按钮添加 role="gridcell" 似乎可以解决此问题,但我不想这样做,因为这意味着屏幕阅读器不会将我的按钮视为按钮。我也真的不想更改 html 结构(例如,将每个按钮包装在另一个元素中),除非它是绝对必要的。
有没有办法(例如 aria 或专有属性)告诉 NVDA 不要将自己的箭头键行为应用于按钮?