css 设置 speak:none 现在等同于 aria-hidden="true" 吗?

Is the css setting speak:none now equivalent to aria-hidden="true"?

我只是想知道我是否应该期望大约 2015 年 1 月的浏览器和辅助技术以等同于设置 aria-hidden="true" 的方式使用 speak:none。我想指出一些半透明的文本应该被忽略,并且想知道我是否可以在一次操作中完成它(只需添加一个设置不透明样式的 class 和 speak:none,而不是添加 class 并设置 aria-hidden 属性)。

似乎没有关于支持 speak 的可靠数据,但似乎尚未实施。

独立于实施状态,speak: none 等同于aria-hidden="true"

根据 CSS 语音模块 CR,speak 属性“确定是否以听觉方式呈现文本”,即听得见。

根据 ARIA 规范,aria-hidden“表示 元素 及其所有后代不可见或可感知 任何 作者实现的用户”(原文为斜体)。

因此,aria-hidden="true" 不会 导致 任何事情;它只是 声明 作者隐藏了该元素。它涉及所有类型的渲染:听觉的、可见的、触觉的,或者未来可能发明的任何形式。

回答我原来问题的意图——我想知道我是否可以添加一个 class 来设置不透明样式并禁用屏幕阅读器的文本, 而不是添加 class 并且 设置 aria-hidden 属性。

我最后做的是设置 aria-hidden 属性,然后在我的 css 中使用 [aria-hidden] 而不是 class 设置不透明样式的名称。

p[aria-hidden="true"] {
  opacity: 0.3;
  pointer-events: none;
  user-select: none;
  cursor: default;
}
<p aria-hidden="true">Ignore this text!</p>
<p>See this text!</p>

使用这个组合:

  • 说话:从不;
  • speak-as: spell-out;

发言值

  • auto:只要元素不显示:块并且是 visibility:visible,文本将被朗读。
  • 从不:不会听取文本
  • 总是:无论显示值或 说话的祖先价值观。

speak-as的值 与演讲有关,因为它涉及如何阅读文本:

  • 正常:采用浏览器的默认朗读设置。
  • spell-out:指示浏览器拼写一个属性内容 而不是说出完整的单词。
  • digits:一次读一个数字,比如 69 会读作“六 九”。不错
  • literal-punctuation:拼写标点符号(如分号)而不是 而不是像暂停一样对待它们。
  • no-punctuation: 完全跳过标点符号。