选项卡和虚拟光标模式下的焦点管理行为

时间:2019-05-05 23:27:34

标签: focus accessibility nvda

我有一个包含主要部分和页脚的应用程序。主要部分有一个tabIndex =“-1”。页脚保留版权的内容。主要部分还包含一些小部件,这些小部件将按钮保存在列表中。当页面加载时,屏幕阅读器宣布页面加载。正文是默认的活动元素。在选项卡上,焦点移到主要部分的第一个按钮。这是预期的行为。但是我在虚拟光标模式下看不到这种行为。因此,页面加载后,Chrome中的实时表达式将主体显示为活动元素。当我按下向下箭头时,屏幕阅读器开始阅读页脚而不是从上遍历dom。它完全跳过了主要部分。不确定是什么问题。我不能共享代码,因为它是专有的。

我尝试将主节容器的标签索引设置为0。

预期:屏幕阅读器(在虚拟光标模式/浏览模式下)NVDA + Chrome应该从顶部读取dom结构,而不要跳过主要部分。 实际:它跳过主要部分并直接读取页脚。

1 个答案:

答案 0 :(得分:0)

我想您正在使用角色或语义HTML元素吗?它们在屏幕阅读器行为上有profound effect

您提到“主”中有按钮-这可能会使屏幕阅读器进入表单模式,因此屏幕阅读器除了“标签”(通过制表键获得)外,没有其他要“读取”的内容。在表单模式下,除非在aria-describedby属性中提及,否则所有“类文档”内容都将被忽略。

您应该谨慎使用tabindex="-1"-仅在要在该元素上调用focus()的情况下。目前尚不清楚您是否正在这样做。当您从main中完全删除tabindex属性时,会发生什么?

还要尝试将“主要”的文档部分与按钮部分分开,每个部分都有各自不同的角色(例如,“文档”和“应用程序”,但可以尝试others)。