如何防止Windows“讲述人”读取隐藏的HTML标记



我有一个HTML页面,其中有多个隐藏元素,只有在特定情况下才可见。

当我在页面包装上设置焦点(读取所有内容)时,Windows"讲述人"会读取所有元素,甚至是隐藏的元素。

我尝试过使用aria hidden="true",CSS display:none,HTML5隐藏属性,所有这些都被完全忽略了。到目前为止,我发现唯一有效的机制是在将焦点设置在包装器上之前,从DOM中删除这些元素。但这不是一个理想的解决方案。

role="presentation" tabindex="-1"应用于已应用aria-hidden的元素。

刚刚与同样的东西进行了斗争,发现如果有一个元素的role="main"没有定义明确的aria-label/aria-labelledby,那么它的整个内容,包括所有隐藏的元素,都会添加到MSAA和UIA树中,然后由讲述人读出。添加一个显式aria属性解决了这个问题,但显然也阻止了讲述人开始自动阅读主要内容。

好的是AccChecker对这些问题发出了警告。显然,最好遵循它的建议,尽管自动阅读内容会很好。

显然这在MS Edge上不再是问题了!万岁!如果元素被CSS display:none隐藏,那么它就不会读取它的内容。

相关内容

  • 没有找到相关文章

最新更新