【问题标题】:Limitations of screen readers屏幕阅读器的限制
【发布时间】:2010-09-06 19:29:54
【问题描述】:
我是一名网络开发人员,我想让使用屏幕阅读器的人更容易访问我开发的网站。屏幕阅读器有哪些我应该最清楚的限制,以及我可以做些什么来避免遇到这些限制。
这个问题是由阅读另一个关于 non-image based captchas 的问题引发的。在那里,一位评论者说蜜罐表单域(用 CSS 隐藏的表单域,只有机器人会填写)是一个坏主意,因为屏幕阅读器仍然会选择它们。
屏幕阅读器真的很原始,以至于他们会阅读甚至没有显示在屏幕上的文本吗?理想情况下,您不能制作一个屏幕阅读器,等待页面完成加载,应用所有 css,甚至在它弄清楚实际显示的内容之前运行 Javascript onload 函数,然后将其读给用户吗?您甚至可以识别页面中的菜单或目录部分,并为这些部分提供某种简单的方法来专门阅读或跳过这些部分。我认为编程社区可以提出更好的解决方案来解决这个问题。
【问题讨论】:
标签:
html
browser
accessibility
【解决方案1】:
屏幕阅读器真的很原始,以至于他们会阅读甚至不显示在屏幕上的文本吗?
您必须记住的是,任何 HTML 解析器都不会读取屏幕 - 它会读取源标记。您在屏幕上看到的是浏览器尝试将 CSS 应用于源代码。这无关紧要。
您甚至可以识别页面中的菜单或目录部分,并提供某种简单的方法让这些部分可以独占阅读或跳过。
如果有这样的标准,你可以。
我对屏幕阅读器的限制不是很感兴趣,但是我读过很多关于它们并不理想的文章。我可以推荐的最好的事情是整理你的来源 - 你如何阅读它。
还有一个set of CSS properties,你也应该看看屏幕阅读器。
【解决方案3】:
有多少表格只有一个 * 或粗体来向普通用户表明正确提交所需的字段?屏幕阅读器在做什么?说“明星”?
下面是一个代码示例,通过口头表达而不是视觉表达很有帮助。
(注意 - 在下面的示例中,“必需”一词被说出但在屏幕上看不到)
在模板中:
<label for="Requestor" accesskey="9"><span class="required"> Requestor * </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 页面中的“所见”背后都可以有一个完整的平行视图。
【解决方案4】:
@robertmyers
CSS 包含听觉媒体类型,专门用于在屏幕阅读器工作时控制事物的“渲染”。因此,以您为例,您只需将其设置为对听觉媒体类型可见。
@罗斯
我很清楚屏幕阅读器实际上并没有阅读屏幕,但你会认为要正常工作,它必须建立一个有视力的人会看到的模型,否则,它看起来像它在向用户传达页面上的实际内容方面做得非常糟糕。此外,按您阅读的顺序排列内容并没有真正起作用,因为视力正常的人会快速浏览页面并阅读他们想要阅读的部分。你是把内容放在最前面,让用户每次都听,还是把它们放在最后,这样他们才能先得到内容?此外,将内容按顺序排列意味着需要一些棘手的 CSS 才能将内容定位到您希望它们为有视力的用户提供的位置。
在我看来,大多数网页都包含非常相似的结构,并且在许多情况下,应该可以找出重复的标题和侧栏的位置。在同一站点上查看具有相同格式的许多后续页面时,应该很容易确定哪些部分是导航,哪些是内容。这样做,屏幕阅读器可以完全跳过导航部分,直接进入内容,就像大多数有视力的用户一样。
我意识到存在局限性,而且做这些类型的事情并不容易。然而,我觉得就屏幕阅读器而言,我们只做了最低限度的工作,然后就离开了。
【解决方案5】:
看看ARIA,它是开发可访问的富网络客户端应用程序的标准。
【解决方案7】:
@Kibbee,
您所描述的“原始”实际上是屏幕阅读器的一项功能,可以并且已经用于使网站更易于访问。例如,如果您有一个选项卡式界面,使用无序列表和列表项实现,那么有视力的用户通常会看到所选选项卡以不同的背景颜色突出显示(或其他一些视觉处理)。盲人用户看不到这一点。因此,在页面中添加一些额外的文本并将其隐藏在屏幕之外是用于向盲人用户传达哪个标签处于活动状态的技术。
在可访问性术语中,此信息称为角色、名称、值和状态。
在许多其他情况下,此技术可用于添加对盲人用户有用的信息。
最近,添加了 WAI-ARIA 以允许此状态、角色、名称和值信息,因此您现在可以使用 HTML 属性实现有限数量的小部件(如选项卡)。但是,更通用的“屏幕外”技术仍然有用。