关于html:屏幕阅读器的限制

关于html:屏幕阅读器的限制

Limitations of screen readers

我是一名Web开发人员,我想使使用屏幕阅读器的人可以更轻松地访问我开发的网站。屏幕阅读器我应该最了解哪些限制,以及如何避免这些限制。

这个问题是通过阅读另一个有关基于非图像的验证码的问题而引发的。在那里,有评论者说,蜜罐表单字段(用CSS隐藏的表单字段,只有机器人可以填写)是一个坏主意,因为屏幕阅读器仍会选择它们。

屏幕阅读器真的是如此原始,以至于他们会阅读甚至不显示在屏幕上的文本吗?理想情况下,您不能让屏幕阅读器等到页面完成加载,应用所有css甚至运行Javascript onload函数,然后才弄清实际显示的内容,然后将其读取给用户吗?您甚至可以识别页面的某些部分,这些部分是菜单或目录,并提供一种简单的方法来使这些部分专门阅读或跳过。我认为编程社区可以针对此问题提出更好的解决方案。


Are screen readers really so primitive that they would read text that isn't even displayed on the screen?

您要记住的是,任何HTML解析器都不会读取屏幕-它会读取源标记。您在屏幕上看到的是浏览器尝试将CS??S应用于源代码的尝试。没关系

You could probably even identify parts of the page that are menus or table of contents, and give some sort of easy way for those parts to be read exclusively or skipped over.

如果有这样的事情的标准,则可以。

我对屏幕阅读器的局限性不是很热,但是我已经阅读了很多关于它们不理想的文章。我可以推荐的最好的方法是整理您的源代码-阅读方式。

对于屏幕阅读器,您还应该查看一组CSS属性。


推荐听的:Hanselminutes

这是对盲人程序员的采访。


有多少个表格仅带有*或粗体字,以向视觉用户表明正确提交必填字段?屏幕阅读器在做什么?说"星"?

下面是一个示例代码,有助于通过口头而非视觉方式进行表达。

(请注意-在下面的示例中,口语为"必填"。在屏幕上看不到)

在模板中:

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

在CSS中:

1
2
3
4
5
6
7
8
#hidden {
    position:absolute;
    left:0px;
    top:-500px;
    width:1px;
    height:1px;
    overflow:hidden;
}

要么

1
2
3
4
5
6
7
8
.hidden {
    position:absolute;
    left:0px;
    top:-500px;
    width:1px;
    height:1px;
    overflow:hidden;
}

每个X / HTML页面中的" seen"后面都有一个完整的平行视图。


@Kibbee,

您所描述的"原始"实际上是屏幕阅读器的一项功能,该功能可以并且一直用于使网站更易于访问。例如,如果您有一个选项卡式界面,使用无序的列表和列表项实现,那么有视力的用户通常会看到选中的选项卡以不同的背景色突出显示(或其他视觉处理)。盲人用户看不到这一点。因此,向页面中添加一些其他文本并将其隐藏在屏幕之外的技术是用于与盲用户交流哪些标签处于活动状态的技术。

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

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

最近,添加了WAI-ARIA以允许此状态,角色,名称和值信息,因此您现在可以使用HTML属性实现数量有限的小部件(如选项卡)。但是,更通用的"屏幕外"技术仍然有用。


这是卡尔·格罗夫斯(Karl Groves)汇编的验证码的替代列表:无需验证码的安全性


@robertmyers

CSS包含听觉媒体类型,专门用于在屏幕阅读器执行工作时控制事物的"渲染"。因此,以您为例,您只能将其设置为对听觉媒体类型可见。

罗斯

我很清楚屏幕阅读器实际上并没有阅读屏幕,但是您会认为要正常工作,就必须建立一个有视力的人可以看到的模型,否则,看起来就可以了向用户传达页面上实际内容的工作真是糟糕。同样,将事物按您阅读的顺序排列实际上是行不通的,因为有视力的人会快速扫描页面并阅读他们想阅读的部分。您是将内容放在第一位,以便用户每次都必须聆听它们,还是将它们放在最后,以便他们可以首先到达内容?同样,将内容整理好将意味着一些棘手的CSS,以便将内容放置在您希望它们适合有视力的用户的位置。

在我看来,大多数网页包含非常相似的结构,并且在许多情况下,应该有可能找出重复的标题和侧栏的位置。当以相同的格式查看同一站点上的许多后续页面时,应该很容易弄清楚哪些部分是导航,哪些是内容。这样做,屏幕阅读器可以完全跳过导航部分,并像大多数有视力的用户一样,直接移至内容上。

我意识到存在局限性,而且做这些事情并非易事。但是,我觉得就屏幕阅读器而言,我们只是做了最低限度而已。


看看ARIA,这是开发可访问的富Web客户端应用程序的标准。


推荐阅读