我听说将display:none
应用于不可见的内容比更改不透明度更容易理解。然而,使用display:none
会使我的一些css动画变得混乱,这些动画逐渐分层到核心功能上。
如果我的css中的元素隐藏了opacity:0
并且该元素为aria-hidden=true
角色,或该元素是否还有display:none
,那么它是否可访问?
要考虑的另一个因素是aria角色由javascript控制(css在此实例中具有:hover
伪类后备)。因此,对于没有javascript的环境,元素只能隐藏opacity:0
。
答案 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
更符合您的要求。