问题是我可以在同一元素上使用aria-label
和aria-hidden="true"
吗?
我想要实现的是拥有一个带有aria标签的元素(<span>
中的打开图标),但是忽略其内容。
<span class="oi" data-glyph="star" aria-label="Favourite" aria-hidden="true"></span>
这种用法是否正确,或者aria-hidden试图忽略该元素与aria-label试图赋予其含义之间存在冲突?
答案 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>
包含文本,则文本将被读取,仅此而已。