在使用 NVDA 等屏幕阅读器时,如何按向左或向右键?

Posted

技术标签:

【中文标题】在使用 NVDA 等屏幕阅读器时,如何按向左或向右键?【英文标题】:While using screen reader such as NVDA, how to press Left or Right key? 【发布时间】:2022-01-15 03:09:45 【问题描述】:

在使用 NVDA 等屏幕阅读器时,当按下左键或右键时,屏幕阅读器会逐字母读取当前或下一个元素。

如果有人知道如何按左键或右键来触发元素的按键事件?

谢谢。

【问题讨论】:

【参考方案1】:

屏幕阅读器有两种模式:浏览模式(键盘事件被发送到屏幕阅读器)和表单模式(键盘事件被发送到 html 元素)。

大多数屏幕阅读器的默认设置是为某些类型的 html 元素在两种模式之间自动切换,尽管您也可以在两种模式之间手动切换。

因此,将键盘事件发送到您的元素的关键是使用right html element(这些元素需要键盘焦点管理)或为该元素使用role。

以下元素将自动在浏览模式(箭头键读取下一个字符)和表单模式(html 元素处理箭头键)之间切换:

组合框 网格 列表框 菜单或菜单栏 无线电组 标签 工具栏 树形网格 树视图

其中一些元素具有原生 html 元素(例如,<input type='radio'>),但其他元素需要角色(例如,<div role='tablist'>)。

如果您的组件不属于这些小部件之一,那么您可以使用role="application",但我总是谨慎使用该角色。它经常被滥用,如果角色使用不正确,可能会使屏幕阅读器用户难以使用网站。

【讨论】:

感谢 slugolicious。在我通过按 [NVDA] + 切换到表单模式后它可以工作。 是的,您可以手动切换,但您必须问自己是否应该让用户这样做,或者是否应该自动为他们切换。 在我的例子中,控件是一个可拖动的按钮,用作数据网格中的列调整大小处理程序。对于键盘可操作性,它使用 键的按键事件来模拟单击和拖动行为。 NVDA 可能不会在按钮上自动切换到Forms Mode。而且由于它在第三方组件中,我无法使用application 角色对其进行测试。谢谢你的帮助。如果我有新的发现,我会告诉你的。 是的,我们也为表格实现了列大小调整,使用拖动列宽范例。我们使用修改后的箭头(如 ctrl+left 或 shift+left)来调整大小。

以上是关于在使用 NVDA 等屏幕阅读器时,如何按向左或向右键?的主要内容,如果未能解决你的问题,请参考以下文章

UITableViewCell 如何检测用户向左或向右滑动?

向左或向右滑动时,我的卡片视图不会总是消失?

Bootstrap nav 子菜单根据页面限制向左或向右浮动

如何将每个 JPanel 向左或向右对齐到主 JPanel

iPhone:如何向左或向右旋转 UIImageview?

如何仅在一只耳朵中播放声音 i.s.使用音频单元一次向左或向右