aria-hidden = true是否意味着你不必使用display:none?

时间:2015-07-13 12:13:13

标签: javascript html web accessibility wai-aria

我听说将display:none应用于不可见的内容比更改不透明度更容易理解。然而,使用display:none会使我的一些css动画变得混乱,这些动画逐渐分层到核心功能上。

如果我的css中的元素隐藏了opacity:0并且该元素为aria-hidden=true角色,或该元素是否还有display:none,那么它是否可访问?

要考虑的另一个因素是aria角色由javascript控制(css在此实例中具有:hover伪类后备)。因此,对于没有javascript的环境,元素只能隐藏opacity:0

1 个答案:

答案 0 :(得分:5)

嗯,这基本上是aria-hidden定义的方式:

  

表示作者实现的任何用户都看不到或看不到该元素及其所有后代。见相关的咏叹调。

     

如果元素仅在某些用户操作后可见,则作者必须将aria-hidden属性设置为true。当元素出现时,作者必须将aria-hidden属性设置为false或删除属性,指示元素是可见的。一些辅助技术直接通过DOM访问WAI-ARIA信息,而不是通过浏览器支持的平台可访问性。无论用于隐藏它的机制如何,作者必须在未显示的内容上设置aria-hidden =“true”。这允许辅助技术或用户代理正确地跳过文档中的隐藏元素。

所以我说“是”。

当然,只要您设置aria-hidden,即使对于非读者版本[aria-hidden="true"] { visibility: hidden; },使用实际隐藏元素也是微不足道的,例如。理想情况下,您可以在“隐藏”动画结束时设置它。

事实上,由于您使用opacity来隐藏元素,因此没有理由使用display: none - visibility: hidden更符合您的要求。