我有一个HTML页面,其中包含多个隐藏元素,这些元素仅在某些情况下才可见 .
当我将焦点设置在页面包装器上(以读取所有内容)时,Windows讲述人会读取所有元素,甚至是隐藏的元素 .
我试过使用aria-hidden =“true”,CSS显示:无,HTML5隐藏属性,都被完全忽略 . 到目前为止,我发现唯一有效的机制是在将焦点设置在包装器上之前从DOM中删除这些元素 . 但它不是一个理想的解决方案 .
将 role="presentation" tabindex="-1" 应用于已应用 aria-hidden 的元素 .
role="presentation" tabindex="-1"
aria-hidden
只是用同样的东西战斗,并发现如果有一个没有明确 aria-label / aria-labelledby 定义的 role="main" 的元素,它的整个内容,包括所有隐藏的元素,都被添加到MSAA和UIA树中,然后由讲述人读出 . 添加显式的aria属性可以解决问题 - 但显然也会阻止Narrator自动开始读取主要内容 .
aria-label
aria-labelledby
role="main"
好消息是AccChecker警告这些问题 . 显然更好地遵循它的建议,即使自动阅读内容会很好 .
显然这不再是MS Edge的问题了!欢呼!如果使用CSS display:none隐藏元素,则它不会读取它的内容 .
3 回答
将
role="presentation" tabindex="-1"
应用于已应用aria-hidden
的元素 .只是用同样的东西战斗,并发现如果有一个没有明确
aria-label
/aria-labelledby
定义的role="main"
的元素,它的整个内容,包括所有隐藏的元素,都被添加到MSAA和UIA树中,然后由讲述人读出 . 添加显式的aria属性可以解决问题 - 但显然也会阻止Narrator自动开始读取主要内容 .好消息是AccChecker警告这些问题 . 显然更好地遵循它的建议,即使自动阅读内容会很好 .
显然这不再是MS Edge的问题了!欢呼!如果使用CSS display:none隐藏元素,则它不会读取它的内容 .