Aria-hidden=true 在 parent 上不会使其 children 也 aria-hidden
Aria-hidden=true on parent does not make its children also aria-hidden
我正在阅读一些关于 aria 用途的文章,并看到了这篇文档:Fourth Rule of ARIA Use。我不清楚的一部分是:
"Applying aria-hidden to a parent/ancestor of a visible interactive
element will also result in the interactive element being hidden,"
我尝试了以下代码片段,但仍然可以访问锚标记(即使我在其 parent 上放置了 aria-hidden)。我在这里错过了什么?
body, html {
background-color: #333;
height: 100%;
}
#main {
margin: 0 auto;
width: 80%;
background-color: #fff;
height: 100%;
padding: 50px;
}
.test {
border: 1px solid #555;
padding: 10px;
}
<div id="main">
<div tabindex="0">Woohoo</div>
<div class="test" aria-hidden="true" role="presentation">
<div class="one" aria-hidden="true">
<span aria-hidden="true">
<a href="#">Testing</a>
</span>
</div>
</div>
</div>
取决于您所说的 link 仍然是 "accessible" 的意思。添加 aria-hidden="true"
将阻止元素包含在可访问性树中(类似于 DOM),这样屏幕 reader 用户将无法找到 link 遍历辅助功能树时(通常使用up/down箭头键完成)。
ARIA 属性会影响屏幕 reader 访问元素的方式。它不提供任何 行为 。在您提供的 "rules of aria use" link 中,进一步向下看“What Adding a Role Does Not Do”。
因此,在添加 aria-hidden="true"
时 会阻止元素被插入到辅助功能树中,它 不会 删除来自正常键盘 Tab 键顺序的元素。您仍然可以跳转到 link 和 select 它。您必须将 tabindex="-1"
添加到 link 以防止跳转到它。
我知道您的示例片段仅用于测试目的,但希望您不会遇到交互元素(例如 link 从屏幕中隐藏的情况 reader用户。 aria-hidden
应用于从屏幕 readers 中隐藏不重要的东西(装饰性的东西),或者如果您暂时在视觉上隐藏某些东西并且还希望从屏幕 readers 中隐藏东西,例如,如果你有一个 expand/collapse 的东西,当元素折叠时,你通过将它移出屏幕(而不是使用 display:none
)来在视觉上隐藏内容,你会想要 aria-hidden="true"
也设置了内容。
我正在阅读一些关于 aria 用途的文章,并看到了这篇文档:Fourth Rule of ARIA Use。我不清楚的一部分是:
"Applying aria-hidden to a parent/ancestor of a visible interactive element will also result in the interactive element being hidden,"
我尝试了以下代码片段,但仍然可以访问锚标记(即使我在其 parent 上放置了 aria-hidden)。我在这里错过了什么?
body, html {
background-color: #333;
height: 100%;
}
#main {
margin: 0 auto;
width: 80%;
background-color: #fff;
height: 100%;
padding: 50px;
}
.test {
border: 1px solid #555;
padding: 10px;
}
<div id="main">
<div tabindex="0">Woohoo</div>
<div class="test" aria-hidden="true" role="presentation">
<div class="one" aria-hidden="true">
<span aria-hidden="true">
<a href="#">Testing</a>
</span>
</div>
</div>
</div>
取决于您所说的 link 仍然是 "accessible" 的意思。添加 aria-hidden="true"
将阻止元素包含在可访问性树中(类似于 DOM),这样屏幕 reader 用户将无法找到 link 遍历辅助功能树时(通常使用up/down箭头键完成)。
ARIA 属性会影响屏幕 reader 访问元素的方式。它不提供任何 行为 。在您提供的 "rules of aria use" link 中,进一步向下看“What Adding a Role Does Not Do”。
因此,在添加 aria-hidden="true"
时 会阻止元素被插入到辅助功能树中,它 不会 删除来自正常键盘 Tab 键顺序的元素。您仍然可以跳转到 link 和 select 它。您必须将 tabindex="-1"
添加到 link 以防止跳转到它。
我知道您的示例片段仅用于测试目的,但希望您不会遇到交互元素(例如 link 从屏幕中隐藏的情况 reader用户。 aria-hidden
应用于从屏幕 readers 中隐藏不重要的东西(装饰性的东西),或者如果您暂时在视觉上隐藏某些东西并且还希望从屏幕 readers 中隐藏东西,例如,如果你有一个 expand/collapse 的东西,当元素折叠时,你通过将它移出屏幕(而不是使用 display:none
)来在视觉上隐藏内容,你会想要 aria-hidden="true"
也设置了内容。