屏幕阅读器的局限性

4

我是一名网站开发者,希望让我开发的网站更容易被使用屏幕阅读器的人访问。那么屏幕阅读器有哪些限制是我应该特别注意的,我可以做些什么来避免这些限制。

这个问题是因为我读到另一个关于非图像验证码的问题而引起的。在那里,评论者说蜜罐表单字段(使用CSS隐藏的表单字段,只有机器人才会填写)不是一个好主意,因为屏幕阅读器仍然会读取它们。

屏幕阅读器真的如此原始,以至于它们会阅读甚至没有显示在屏幕上的文本吗?理想情况下,你不能制作一个屏幕阅读器,在页面完成加载之前等待,应用所有的css,甚至运行onload函数,然后找出实际显示的内容,并将其读给用户听吗?你甚至可以识别页面的菜单或目录等部分,并提供某种简便方法使这些部分可以独立阅读或跳过。我认为编程社区应该能够找到更好的解决方案来解决这个问题。

6个回答

3

屏幕阅读器真的那么原始,以至于它们会阅读甚至没有显示在屏幕上的文本吗?

你需要记住的是,任何HTML解析器都不会读取屏幕 - 它读取源标记。你在屏幕上看到的是浏览器尝试将CSS应用于源代码的结果。这是无关紧要的。

你甚至可以识别页面的菜单或目录表的部分,并为这些部分提供一些易于独立阅读或跳过的简便方法。

如果有这样的标准,你可以这样做。

我对屏幕阅读器的限制不是很了解,但我已经阅读了很多关于它们不理想的文章。我能推荐的最好的事情就是按照你的阅读顺序放置源代码。

还有一组CSS属性,你也应该考虑用于屏幕阅读器。


2

推荐收听:Hanselminutes

这是一位盲人程序员的访谈。


1

有多少表单只是用 * 或粗体来提示视觉用户该字段需要正确提交?屏幕阅读器会怎么做?会说“星号”吗?

以下是一个代码示例,通过口头表述而不是视觉呈现对用户有帮助。

(注意 - 在下面的示例中,“required.”这个词被朗读但在屏幕上看不到)

在模板中:

<label for="Requestor" accesskey="9"><span class="required">&nbsp;Requestor&nbsp;*&nbsp;</span><span class="hidden">required.</span></label>

在CSS中:
#hidden {
    position:absolute;
    left:0px;
    top:-500px;
    width:1px;
    height:1px;
    overflow:hidden;
}

或者

.hidden {
    position:absolute;
    left:0px;
    top:-500px;
    width:1px;
    height:1px;
    overflow:hidden;
}

每个 X/HTML 页面中的“可见”背后都可能有一个完整的并行视图。

0

@Kibbee,

你所描述的“原始”,实际上是屏幕阅读器的一个功能,可以用来使网站更具可访问性。例如,如果您使用无序列表和列表项实现了选项卡界面,则视觉用户通常会看到所选选项卡突出显示为不同的背景颜色(或其他视觉处理方式)。盲人用户无法看到这一点。因此,将一些额外的文本添加到页面中并将其隐藏在屏幕外是用于向盲人用户传达活动选项卡的技术。

在可访问性术语中,此信息称为角色、名称、值和状态。

还有许多其他情况可以使用此技术添加对盲人用户有用的信息。

最近,WAI-ARIA已被添加以允许此状态、角色、名称和值信息,因此现在可以使用HTML属性实现有限数量的小部件(如选项卡)。然而,更普遍的“屏幕外”技术仍然很有用。


0

看一下ARIA,它是开发无障碍丰富 Web 客户端应用程序的标准。


0

@robertmyers

CSS包含声音媒体类型,专门用于控制屏幕阅读器在工作时的“渲染”方式。因此,对于您的示例,您只需将其设置为声音媒体类型可见即可。


@Ross

我很清楚屏幕阅读器实际上并不会读取屏幕,但是你会认为为了良好地工作,它必须建立一个视觉人士所看到的模型,否则,它似乎会在向用户传达页面内容方面做得非常糟糕。此外,按照阅读顺序排列事物并不真正起作用,因为视力正常的人会快速浏览页面并阅读他们想要阅读的部分。您是将内容放在最前面,以便用户每次都必须听到它们,还是将其放在最后,以便他们可以首先获取内容?此外,按顺序放置内容意味着需要一些棘手的CSS来使事物在视力正常的用户所需位置上定位。


我觉得大多数网页具有非常相似的结构,并且在许多情况下应该可以挑选出重复的标题和侧边栏。当使用相同格式查看同一站点上的许多后续页面时,应该很容易确定哪些部分是导航,哪些部分是内容。通过这样做,屏幕阅读器可以完全跳过导航部分,直接进入内容部分,就像大多数视力用户所做的那样。

我意识到存在限制,并且这样做并不容易。但是,对于屏幕阅读器而言,我觉得我们只做了最低限度的工作,然后就没再管了。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接