如何对屏幕阅读器隐藏元素及其所有子元素?

问题描述 投票:0回答:1

如何对屏幕阅读器隐藏元素及其所有子元素,并阻止使用键盘访问?

我正在使用可访问性,并且在我维护的页面上有一些广告横幅,不幸的是,我无法简单地将其删除,因此我需要某种方法来使屏幕阅读器不会滚动经过这些横幅。

我已经尝试过负 tabindex 和 aria-hidden,但广告横幅中的某些元素仍然可以通过键盘导航访问

javascript html jquery accessibility
1个回答
0
投票

这就是

inert
属性的用途:

该元素的所有平面树后代 […] 都将被忽略。

inert
属性还使浏览器忽略用户发送的输入事件,包括与焦点相关的事件和来自辅助技术的事件。

根据 MDN,该功能目前已获得完整的浏览器支持。


您应该对屏幕阅读器隐藏广告吗?

虽然我认识到不通过广告打扰辅助技术用户的初衷可能是好的,并且这一次提供了可能更好的用户体验,但也有一些警告。

大约三分之一的屏幕阅读器用户不是盲人

这意味着他们可能会被那些经常华丽的内容所吸引和好奇,如果他们无法正确看到它们,他们会想弄清楚它们是什么。

因此,视觉上可访问的内容(未模糊化)也能被 AT 访问,这一点很重要。

更好的广告替代方案可能是使用适当的地标和标题来允许绕过障碍但识别用户正在处理的内容。

<aside aria-labelledby="ads-title">
  <h2 id="ads-title">Advertisments</h2>
  …
© www.soinside.com 2019 - 2024. All rights reserved.