有没有办法写出屏幕阅读器会忽略的内容?

nic*_*ckf 21 html css accessibility

我刚刚开始研究需要有视力和视力障碍的用户访问的页面.内容的某些元素,仅​​仅与仅与视觉元素相关的性质,根本不适用于使用屏幕阅读器的人.例如,一个链接在一个新窗口中打开一个视听演示文稿,但是由于我无法控制的情况,窗口调整得很笨拙,因此有一条消息说你应该调整窗口大小以便更好地查看所有内容.显然,对于无论如何都看不到它的人来说,这是无用的信息.

有没有一种可以让屏幕阅读器忽略某些内容的方法?

nic*_*ckf 27

在写这个问题的中途,我记得在哪里看.

CSS可以这样做:

<span class="dontRead">Screen readers shouldn't read this</span>

.dontRead {
    speak: none;
}
Run Code Online (Sandbox Code Playgroud)

  • 可能不言而喻,但是<link rel ="stylesheet"type ="text/css"href ="..."media ="aural"/>也改善了屏幕阅读器的定位. (12认同)
  • 这实际上适用于任何已知的屏幕阅读器吗?我的理解是屏幕阅读器完全忽略了这一点,所以它没有任何效果.请记住,尽管名称不同,屏幕阅读器在其演示中并非严格"听觉"; 许多也通过盲文输出. (3认同)
  • 这不适用于 JAWS。使用这个不起作用。 (2认同)

Dan*_*son 27

实际上,正确的方法是使用ARIA role=hidden.像这样:

<button type="button">
  <span aria-hidden="true" class="icon">&gt;</span>
  <span class="hide">Go!</span>
</button>
Run Code Online (Sandbox Code Playgroud)

通过执行此操作,您可以隐藏>字符,因此屏幕阅读器不会读取"直角括号",而是显示"Go!".只有您可视地隐藏.hide类中的内容,才会看到>.像这样:

.hide{
  position: absolute;
  left:-999em;
}
Run Code Online (Sandbox Code Playgroud)

ARIA角色presentation用于"规范化"语义,例如<table>,role="presentation"不会将其读作表格内容,而只是纯文本.

如果您想要不读取图像,可以输入如下的空alt文本:

<img src="decorative-flower.jpg" alt=""/>
Run Code Online (Sandbox Code Playgroud)

..或者如果它<svg>省略了<title><description>

<svg>
  <!-- <title>Remove this line</title> -->
  <!-- <description> Remove this too..</description> -->
</svg>
Run Code Online (Sandbox Code Playgroud)

我注意到在一些罕见的情况下,一些屏幕阅读器仍然读取空的alt图像,所以你也可以aria-hidden="true"在这里使用.

此时不支持CSS'adoc属性,对于链接属性media ="aural"也是如此.


shu*_*ndu 6

检查一下

<h1 role="presentation" tabindex="-1">Some text that screen readers will ignore </h1>
Run Code Online (Sandbox Code Playgroud)

因为role ="presentation"tabindex =" - 1"屏幕阅读器会忽略上面的标签.

我在ie8和firefox 3.5上检查了它,它正在使用JAWS屏幕阅读器.