小编Mic*_*l R的帖子

如何防止屏幕阅读器焦点(不是指键盘焦点)离开预定义区域(例如模态)

我一直在试图找出如何将屏幕阅读器焦点限制在某个区域内。当我说屏幕阅读器焦点时,我并不是指可以通过 Tab 键/Shift-Tab 键移动的默认浏览器焦点。我主要在 Mac 上使用 Voiceover 时实现辅助功能,当您打开它时,页面上会出现一个新的焦点框,并读出它“突出显示”的信息。

此时,如果您要按 Tab 键,浏览器和屏幕阅读器焦点会同时移动。除了按 Tab 键切换到不同的可聚焦元素之外,您还可以按住 cmd + opt 并左右按键将屏幕阅读器焦点从一个元素移动到另一个元素,无论是否可以按 Tab 键切换到某个元素。这就是我试图控制的焦点。

当焦点位于我想要聚焦的最后一个元素上时,我尝试阻止按下 cmd、opt 和箭头键,但浏览器似乎无法识别屏幕阅读器焦点。而且我相信键盘禁用无论如何都不适用于屏幕阅读器,因为它似乎独立于浏览器工作。

我还尝试在模式出现时向页面上的所有其他元素动态添加 tabindex: -1 和 aria-hidden: true 。当您在事后打开 Voiceover 时,此功能有效;屏幕阅读器焦点实际上确实被困住了。但是,如果屏幕阅读器首先打开(在大多数用户实例中可能会出现这种情况),则屏幕阅读器不会考虑动态更改。这就像屏幕阅读器在页面加载时拍摄可访问性状态的“快照”,并且不考虑对 DOM 的新更改。

有人有主意吗?

javascript accessibility wai-aria

5
推荐指数
1
解决办法
5400
查看次数

标签 统计

accessibility ×1

javascript ×1

wai-aria ×1