4

我是一名 Web 开发人员,我想让使用屏幕阅读器的人更容易访问我开发的网站。屏幕阅读器有哪些我应该最清楚的限制,以及我可以做些什么来避免遇到这些限制。

这个问题是通过阅读另一个关于non-image based captchas 的问题引发的。在那里,一位评论者说蜜罐表单域(用 CSS 隐藏的表单域,只有机器人会填写)是一个坏主意,因为屏幕阅读器仍然会选择它们。

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

4

7 回答 7

3

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

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

您甚至可以识别页面中的菜单或目录部分,并提供某种简单的方法让这些部分可以独占阅读或跳过。

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

我对屏幕阅读器的局限性不是很感兴趣,但是我读过很多关于它们并不理想的文章。我可以推荐的最好的事情是整理你的来源 - 你如何阅读它。

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

于 2008-08-25T20:58:02.553 回答
2

推荐收听:Hanselminutes

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

于 2008-08-25T23:02:32.613 回答
1

有多少表格只有一个 * 或粗体来向视觉用户表明正确提交需要一个字段?屏幕阅读器在做什么?说“明星”?

下面是一个代码示例,通过口头表达而不是视觉表达很有帮助。

(注意 - 在下面的示例中,“必需”一词被说出但在屏幕上看不到)

在模板中:

<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 页面中的“所见”背后都可以有一个完整的平行视图。

于 2008-08-25T21:15:27.003 回答
0

@robertmyers

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


@罗斯

我很清楚屏幕阅读器实际上并没有阅读屏幕,但你会认为要正常工作,它必须建立一个有视力的人会看到的模型,否则,它似乎会做向用户传达页面上实际内容的工作非常糟糕。此外,将内容按您阅读的顺序排列并不真正有效,因为视力正常的人会快速浏览页面并阅读他们想要阅读的部分。你是把内容放在最前面,让用户每次都听,还是把它们放在最后,这样他们才能先得到内容?此外,将内容按顺序排列意味着需要一些棘手的 CSS 才能将内容定位到您希望它们为有视力的用户所放置的位置。


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

我意识到存在局限性,并且做这些类型的事情并不容易。然而,我觉得就屏幕阅读器而言,我们只做了最低限度的工作,然后就离开了。

于 2008-08-26T00:06:18.917 回答
0

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

于 2008-08-25T21:03:51.960 回答
0

以下是 Karl Groves 编制的 CAPTCHA 替代品列表:CAPTCHA-less Security

于 2013-06-24T18:05:51.430 回答
0

@基比,

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

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

在许多其他场景中,这种技术可用于添加对盲人用户有用的信息。

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

于 2014-03-03T22:08:44.833 回答