我刚刚在一个页面上工作,该页面需要有视力和视力受损的用户都可以访问。内容的某些元素,只是由于仅与视觉元素相关的性质,根本不适用于使用屏幕阅读器的人。例如,一个链接在一个新窗口中打开了一个视听演示文稿,但由于我无法控制的情况,窗口的大小被调整得很尴尬,所以有一条消息说你应该调整窗口的大小,以便更好地查看所有内容。显然,对于无论如何都看不到的人来说,这是无用的信息。
是否有一种可接受的方式让屏幕阅读器忽略某些内容?
我刚刚在一个页面上工作,该页面需要有视力和视力受损的用户都可以访问。内容的某些元素,只是由于仅与视觉元素相关的性质,根本不适用于使用屏幕阅读器的人。例如,一个链接在一个新窗口中打开了一个视听演示文稿,但由于我无法控制的情况,窗口的大小被调整得很尴尬,所以有一条消息说你应该调整窗口的大小,以便更好地查看所有内容。显然,对于无论如何都看不到的人来说,这是无用的信息。
是否有一种可接受的方式让屏幕阅读器忽略某些内容?
实际上这样做的正确方法是使用 ARIA role=hidden
。像这样:
<button type="button">
<span aria-hidden="true" class="icon">></span>
<span class="hide">Go!</span>
</button>
通过这样做,您隐藏了 > 字符,因此屏幕阅读器不会读取“右尖括号”,而是读取“Go!”。如果您在视觉上隐藏 .hide 类中的内容,有视力的用户只会看到 >。像这样:
.hide{
position: absolute;
left:-999em;
}
ARIA 角色presentation
用于“规范化”语义含义,例如 a <table>
withrole="presentation"
不会被读取为表格内容,而只是纯文本。
如果您不想读取图像,可以输入如下空alt
文本:
<img src="decorative-flower.jpg" alt=""/>
..或者如果它是一个<svg>
省略<title>
和<description>
<svg>
<!-- <title>Remove this line</title> -->
<!-- <description> Remove this too..</description> -->
</svg>
我注意到在一些罕见的情况下,一些屏幕阅读器仍然会阅读空的 alt 图像,所以你也可以aria-hidden="true"
在这里使用。
此时不支持 CSS 的 speak 属性,链接属性 media="aural" 也是如此。
写到一半,我记得在哪里看。
CSS 可以做到这一点:
<span class="dontRead">Screen readers shouldn't read this</span>
.dontRead {
speak: none;
}
检查这个
<h1 role="presentation" tabindex="-1">Some text that screen readers will ignore </h1>
因为role="presentation"和tabindex="-1"屏幕阅读器会忽略上面的标签。
我在 ie8 和 firefox 3.5 上检查了它,它与 JAWS 屏幕阅读器一起使用。
CSS 具有这些听觉属性,但由于它们没有在任何地方实现,它们完全没用。
对辅助技术用户隐藏特定信息的问题在于,它假设他们在某个黑暗的房间里单独使用您的软件,这根本不是一个安全的假设。许多辅助技术用户与其他用户(与此信息相关)密切合作,一些非常幸运的人甚至拥有助手。明智的做法是为他们淡化或低估这些内容的优先级,而是以某种方式稍后将其放置在文档中。