CSS属性“ opacity”是否仅在完全为0时才对屏幕阅读器隐藏内容?

时间:2019-01-07 10:34:19

标签: css accessibility css-animations visibility screen-readers

我需要知道是否可以使用opacity: 0.01来可视地隐藏我的内容。我需要淡入淡出滚动显示的内容,但是如果添加opacity: 0,我不确定这会如何影响屏幕阅读器和SEO。动画效果很好,值为0.01。

你们中的任何人都知道答案吗?谢谢

4 个答案:

答案 0 :(得分:2)

Most Screen Readers will skip content with opacity: 0 If you want your site to be accessible I can't use this CSS property to load my content in. This is why I was thinking that maybe opacity: 0.01would work. But I can't find any documentation about this anywhere. Thanks for the answers regarding SEO.

答案 1 :(得分:1)

放置属性时

  

opacity:0

,所有发生的事情是它仍然存在,这意味着在代码中,实际上,它仍然占据了应有的空间,可以用来单击内容,所有悬停效果都可以正常工作,等等。因此,它不会对SEO或屏幕阅读器产生任何不同的影响。

  

可见性:隐藏

与不透明度稍有不同,因为它不包含点击事件。显示:没有人将其从代码中完全删除(虽然不是DOM),并且会影响SEO和屏幕阅读器,但这是由Google,Bing等不断更新的blackhat SEO技术。因此,显示属性可能会影响SEO,也可能不会影响SEO,但是完全不建议使用此类技术。您可以提供一个元素

  

不透明度:0.01

,然后完全恢复为1。

答案 2 :(得分:1)

通常,CSS不会影响屏幕阅读器。唯一的例外是:

  • display:none
  • visibility:hidden
  • :before和:after伪元素
  • 编辑)高度:0或宽度:0(某些屏幕阅读器/浏览器组合会忽略大小为0的元素,但不是全部)

前两个将隐藏屏幕阅读器中的元素。最后一个可能会在“可访问名称”中添加文本。请参阅“ Accessible Name and Description Computation 1.1”中的步骤2.F.ii。

不透明度被屏幕阅读器忽略。它仅更改元素的外观,而不会将其从DOM中删除。您可以将其设置为0,屏幕阅读器仍会读取该元素。

  

大多数屏幕阅读器都会跳过不透明的内容:0

我不确定你从哪里得到的。我从未见过屏幕阅读器跳过了opacity:0元素。

答案 3 :(得分:1)

  

如果我添加不透明度:0,我不确定这会如何影响屏幕阅读器和SEO。

通过添加opacity: 0.01(或0)而不添加aria-hidden="true",您的页面将失败1.4.3 Contrast (Minimum): The visual presentation of text and images of text has a contrast ratio of at least 4.5:1

因此无法满足您的需求。如果您选择从屏幕隐藏,则必须从屏幕阅读器中隐藏它。