我可以代替<div aria-hidden>
做<div aria-hidden="true">
吗?还是应该总是做<div aria-hidden="true">
?
答案 0 :(得分:2)
它不是布尔属性。必须提供一个明确的值。
答案 1 :(得分:2)
The current version of spec表示“隐藏的状态”是一种状态,它可以具有三个值:
false :该元素像呈现的一样暴露于可访问性API。
true :该元素从可访问性API中隐藏。
未定义(默认):元素的隐藏状态由用户代理根据是否呈现来确定。
这意味着当在没有显式true或false值的元素上设置aria-hidden
属性时,如果未呈现该属性,则将其视为隐藏的。
我可以代替
<div aria-hidden>
做<div aria-hidden="true">
吗?还是应该总是做<div aria-hidden="true">
?
<div aria-hidden>
和<div aria-hidden="true">
不是等效的,如果元素在屏幕上可见,但您希望将其从可访问性API中隐藏,则必须设置aria-hidden="true"
。
答案 2 :(得分:1)
您需要使用aria-hidden="true"
(或分别使用false
)。
不过,对aria-hidden="false"
的评论:据我所知,这没有用。即使将display:none;
设置为aria-hidden
,false
仍将使屏幕阅读器看不到内容,因此,这并不是将元素拖出屏幕阅读器的可见性。
请注意,应谨慎考虑使用aria-hidden
:根据所使用的浏览器,可能会发生意想不到的影响。由于aria-hidden
将一个元素及其所有子元素标记为隐藏,但可能不会否定其他属性,因此在使用aria-hidden
时,需要彻底测试UI。例如,子元素可能是可聚焦的,但被标记为隐藏的-焦点仍移至该元素,但未呈现任何可访问性信息,因为该元素应被隐藏。