Danielle Romo 讲解了在您有一个带有 <input type="radio">
的花哨样式的冗长 <label>
时所需的 HTML 模式。
诀窍? 使用旧的 <span class="hidden-visually">
来包含要读取的标签,以及一个 <span aria-hidden="true">
来包含仅供视觉显示的内容。
我认为人们经常使用这种模式很有趣。 您是否看过 Ethan 的 The World-Wide Work? 他在此谈论的下降帽模式本质上与这种模式相同。
<span aria-hidden="true">
Markup for the visual experience only,
where you can (somewhat safely) use markup
that would be crap for screen readers.
</span>
<span class="visually-hidden">
Markup for the read experience only, that
you keep very clean on purpose.
</span>
这个 类是这样的。
是的。 在大多数情况下,在非平凡的视觉设计中,a11y 的最佳方法最终会使用两个独立的元素。 而且有点奇怪的是,
.visually-hidden
本质上是一个 hack,并且需要开发人员发现。 我觉得应该有一个 HTML 原语属性来处理这个问题,就像aria-hidden
但反过来(甚至可以将其称为aria-visually-hidden
)。 有没有人知道为什么规范中没有这个属性?它类似于
但它不是最受欢迎的
https://meowni.ca/hidden.is.a.lie.html