首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用ARIA role="none“从可访问性树中删除项目

使用ARIA role="none“从可访问性树中删除项目
EN

Stack Overflow用户
提问于 2021-09-24 10:14:00
回答 2查看 173关注 0票数 0

删除“通用”项是否有效(例如,<div><custom-tag>)是否通过应用角色“无”属性从可访问性树中删除?

代码语言:javascript
复制
<custom-tag role="none"><...></custom-tag>
EN

回答 2

Stack Overflow用户

发布于 2021-09-24 11:31:13

这不会将其从可访问性树中删除,但会将项转换为可访问性树中的通用容器(如<div><span>),并删除所有语义含义。

因此,所有内容仍将是可访问性树的一部分。

更有可能的是,您希望aria-hidden="true"从可访问性树中删除某些内容。

但是,请注意,具有aria-hidden="true"的项中的任何可聚焦项仍然是可聚焦的,因此您还必须向它们添加tabindex="-1"

你应该问的真正问题是“为什么我要对屏幕阅读器隐藏它”,因为你更有可能需要一个不同的解决方案(比如让项目可访问,或者完全删除所有使用display: none或类似工具的用户)。

票数 3
EN

Stack Overflow用户

发布于 2021-10-05 09:23:21

屏幕阅读器,如JAWS和NVDA,非常擅长解释可访问性树中的通用或自定义标记。因此,除非您正在做一些需要从可访问性树中剥离语义信息的非常规操作,否则很少需要使用role="none"

您可能希望使用role="none"来防止意外的屏幕阅读器行为,例如屏幕阅读器解析表中的数据,该表仅用于可视化布局。

相反,在对任何元素应用aria-hidden="true"时都应该格外小心,因为该属性隐藏了应用它的元素以及该元素的任何后代。这意味着屏幕阅读器根本不会报告这个元素或其中的任何内容。因此,在使用它之前,请确保这就是您要做的事情。

我同意Graham的观点,您可能首先要考虑为什么要对屏幕阅读器隐藏元素。应该谨慎地使用ARIA来指导屏幕阅读器的预期行为,而不是在没有首先考虑为什么它是必要的情况下就应用于元素。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69313304

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档