我可以在同一元素上使用aria-label和aria-hidden =“ true”吗?

时间:2018-10-16 16:18:41

标签: html5 wai-aria web-accessibility

问题是我可以在同一元素上使用aria-labelaria-hidden="true"吗?

我想要实现的是拥有一个带有aria标签的元素(<span>中的打开图标),但是忽略其内容。

<span class="oi" data-glyph="star" aria-label="Favourite" aria-hidden="true"></span>

这种用法是否正确,或者aria-hidden试图忽略该元素与aria-label试图赋予其含义之间存在冲突?

1 个答案:

答案 0 :(得分:4)

aria-hidden将元素完全隐藏在辅助技术中,例如屏幕阅读器和盲文设备。该元素将不在可访问性树中(类似于DOM树),因此屏幕阅读器用户将不知道该元素在其中。 aria-label将被忽略,因为它是隐藏的。

如果您想忽略元素的内容,那么它将是您放置aria-hidden的嵌套元素。

<span aria-label="Favourite">
  ...
  <span aria-hidden="true">you can't see me</span>
  ...
</span>

但是,即使该示例也不是完全正确的,因为它在不具有语义含义的元素上具有aria-label。如果您使用的html标签没有任何语义,许多屏幕阅读器都会忽略aria-label(不会被读取),除非您还指定了{{3} }。

<span>对屏幕阅读器没有任何意义。语义标签,例如<h1><li><table><section><header><footer>等,对于屏幕阅读器来说都是有意义的。这些标签将被声明为标题,列表,表格或区域等。<span>不会被声明为任何东西。如果屏幕阅读器正在使用向上/向下箭头键在辅助功能树中浏览,则<span>包含文本,则文本将被读取,仅此而已。