如果恰好为 0,CSS 属性 "opacity" 是否只对屏幕阅读器隐藏内容?

Will the CSS property "opacity" only hide content from screen readers if exactly 0?

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

你们中有人知道这个问题的答案吗?谢谢

当你把 属性

opacity:0

,所发生的只是它仍然存在,意思是在代码中,实际上,它仍然采用它应该的 space,它可以用来点击东西,所有悬停效果都有效很好,等等。因此,它不会对 SEO 或屏幕阅读器产生任何不同的影响。

Visibility:hidden

与不透明度略有不同,因为它不需要点击事件。显示:none 将其从代码中完全删除(虽然不是 DOM),并且会影响 SEO 和屏幕阅读器,但这是 Google 不断更新的黑帽 SEO 技术,Bing等赶上。因此,display 属性 可能会或可能不会影响 SEO,但是完全不建议使用此类技术。你可以给一个元素

opacity:0.01

然后毫无问题地恢复到 1。

大多数屏幕阅读器会跳过带有 opacity: 0 的内容我在想也许 opacity: 0.01 会起作用。但是我在任何地方都找不到关于此的任何文档。感谢您提供有关 SEO 的答案。

一般来说,CSS 不会影响屏幕 readers。唯一的例外是:

  • 显示:none
  • 可见性:隐藏
  • :before 和 :after 伪元素
  • (edit) height:0 或 width:0(某些屏幕 reader / 浏览器组合会忽略大小为 0 的元素,但不是所有其中)

前两个将从屏幕上隐藏元素 reader。最后一个可能会向 "accessible name" 添加文本。请参阅“Accessible Name and Description Computation 1.1”中的步骤 2.F.ii。

不透明度被屏幕 readers 忽略。它只是改变了元素的外观,并没有将其从 DOM 中移除。您可以将其设置为 0,屏幕 reader 仍会读取该元素。

Most Screen Readers will skip content with opacity: 0

我不确定你从哪里得到的。我从未见过 opacity:0 的元素被屏幕 reader.

跳过

If I add opacity: 0 I am not sure how this effects screen readers and 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

所以没有满足您需求的答案。如果您选择从屏幕中隐藏,则必须从屏幕阅读器中隐藏它。