NVDA 内幕故事2:屏幕阅读器是什么、不是什么、可能性和限制
什么是屏幕阅读器
在我们真正开始讨论 NVDA 组件之前,有必要先思考一下屏幕阅读器是什么和不是什么,以及屏幕阅读器的可能性及限制背后的整体概念。我们还需要了解与屏幕阅读相关的可访问性。只有这样,其余的内幕帖子才有意义,因为故事的开始和结束都定义了屏幕阅读技术的现实、可能性和限制。 对于任何希望向 NVDA 项目提交代码贡献的人,你需要考虑 NVDA 及其用户面临的整体社会和文化现实。
屏幕阅读器不是...
首先,让我们谈谈屏幕阅读器不是什么。 屏幕阅读器不是操作系统,也不是操作系统的用户界面。它不是“万事通”的生产力工具,也不是盲人使用计算机的唯一方式(尽管屏幕阅读器受到了很多关注,因为它们是社会上最熟悉的工具之一)。屏幕阅读器不是可访问性倡导者,也不是为每个人带来残疾正义而设计的。最重要的是,屏幕阅读器并不是解决生活中所有问题、失明和可访问性的价值百万美元的答案。
令人震惊?(对我们大多数人来说)我想是的。
事实是,我有时觉得屏幕阅读器是我列出的一个或多个“不”。 这个论坛上的人们一年 365 天、每周 7 天、每天 24 小时与屏幕阅读器相遇并生活。像 NVDA 这样的屏幕阅读器正在获得越来越多的 主流关注(在谷歌上搜索“辅助功能(accessibility)”和“屏幕阅读器(screen readers)”这两个词,其中一个结果是不久前发表的一篇关于屏幕阅读器历史的文章; NVDA 论坛对此进行了广泛的讨论)。我们在许多地方使用屏幕阅读器:学校、公司、可访问性测试、软件开发,甚至作为可访问性进展的一个例子。
什么是屏幕阅读器
那么究竟什么是屏幕阅读器呢?在众多的谷歌搜索结果中,共同的定义是:它是一个通过阅读屏幕内容来帮助盲人使用计算机的程序。 更具体地说,屏幕阅读器是读取用户正在与之交互(或不与之交互)的内容的程序。有时内容是可访问(accessible)和可用的(usable),而另一些时候则不是,通常需要提示和技巧才能使它们变得对屏幕阅读器和用户友好。这两个术语都很重要,我一会儿再谈我刚才说的话。
在更专业的定义中,屏幕阅读器是一种信息处理器,它收集、解释并呈现屏幕上显示的信息,并提供让盲人用户与基于计算机的任务进行交互的方法。 NVDA 等屏幕阅读器使用操作系统(在本例中为 Microsoft Windows)和应用程序提供的功能来收集屏幕上(有时在屏幕外)的信息。屏幕阅读器对收集到的信息是什么和应该是什么有规则和期望,并使用复杂的规则来解释它“看到”的内容,即在操作系统、相关应用和其他方式的帮助下收集的信息。根据收集和随后解释的信息,屏幕阅读器使用文本转语音(Text To Speech, TTS)、盲文和其他输 出机制等组件来呈现屏幕内容。
我将在下一个内幕故事中准确讨论哪些组件是 NVDA 的一部分。
整体原理
为了说明较高级别屏幕阅读器的整体工作原理,假设您打开记事本并键入字母“H”。在屏幕上,显示字母“H”,如果朗读输入的字符处于打开状态,NVDA 会输出“H”(NVDA + 数字第 2 行)。如果连接了盲文显示器,它将以盲文显示字母“H”(在统一英语盲文中,它是点 6,然后是 125,或者在这种情况下,它可以是点 56, 6,然后是 125)。
但是,NVDA 是如何实现如此神奇的事呢?方法如下:
- 用户键入字母 “H”
- Windows 意识到键盘发生了一些事情,因此它尝试解释发生了什么
- Windows 会看到输入了字符,并会看到系统焦点所在的位置
- Windows 发现记事本(一个文本编辑器)正在使用中,因此它在屏幕上显示字母“H”
- 同时,一个名为辅助功能 API (accessibility API) 的帮助程序会注意到此事件,并看到输入了一个字符
- 然后,辅助功能 API 会告诉正在侦听的人(在本例中为 NVDA)发生了输入事件
- 记事本(应用)意识到辅助功能 API 正在运行,因此它对辅助功能 API 说:“请引发值更改事件,以便屏幕阅读器可以向用户通知它”
- 辅助功能 API 会引发值更改事件,然后由 NVDA 识别
- NVDA 知道发生了值更改事件,因此它试图找出更改的内容,并最终看到输入了新字符
- 然后,NVDA 使用配置的语音合成器通知用户已输入字母“H”。如果用户对 NVDA 说“不要告诉我键入的字符”,则不会发生这种情况
上面列出的步骤应该已经提供了足够的信息来证明,屏幕阅读器本质上是一个复杂的信息处理器:收集、解释和呈现信息。
可能性与限制
回到我上面所说的可访问和不可访问(以及可用和不可用)的内容:我上面概述的内容可能表明,如果操作系统、应用程序和屏幕阅读器之间的事情顺利进行,一切都是可访问的。这忽略了这样一个事实,即屏幕阅读器是当前计算、残疾、可访问性和可用性等社会和文化条件的变通方法。记住屏幕阅读器的一个“不”:他们不是你的辅助功能、可访问性的倡导者。为什么?
想想“辅助技术”这个词。这在实践中意味着什么?这意味着我们生活的电脑、平板电脑、智能手机和小工具在设计时并没有考虑到残疾,而屏幕阅读器的出现是为了“填补”无法访问和无法使用的空白。屏幕阅读器的历史充满了诸如“平等获得技术”、“提高工作效率”、“帮助盲人找到工作”等口号。 屏幕阅读器的故事可以追溯到几十年前,信不信由你。
乍一看,“辅助技术”一词是这个论坛和其他地方的人们的积极定义:帮助您成功使用计算机执行任务的工具。但另一方面,它表明,尽管在无障碍标准和提供“技术社会正义”(例如残疾表情符号)的新方法方面取得了进展,但由于缺乏更好的词语,世界仍然对盲人漠不关心,或没有受过足够的教育或没有完全意识到。 屏幕阅读器之所以存在,正是因为它们表明在设计数字技术时缺乏对残疾人的考虑,正如我们将在随后的 NVDA 内幕故事系列中看到的那样,像 Mick Curran 和其他类似的人提出了一种又一种的变通方法,以证明对宣传的持续需求。
我关于屏幕阅读器是变通方法的声明应该为你们中的一些人敲响警钟。不仅因为你的生活经历充满了可访问性的倡导,还因为它触及了我自己关于可访问性和可用性的口头禅之一:心态很重要。 修复无法访问的应用程序,使其对屏幕阅读器用户友好,这只是一个微观层面的解决方案。我列出的展示 NVDA 内部部分的步骤是在盲人多年的倡导之后提出的,他们告诉 Microsoft 他们需要做得更好(生活在 1990 年代的人应该记得我在说什么)。 可访问性标准和 API 在解决屏幕阅读器用户的计算问题方面更上一层楼。编写标准的人和组织通过提出标准,以承认由于更大的社会和文化问题,残疾人面临着持续的问题。最根本的问题,也是 NVDA 不能解决屏幕阅读器用户生活中所有问题的原因,是硬币的两面都长期存在着无知:公众(主流)对软件设计中的可访问性和可用性的无知,以及屏幕阅读器用户和残疾倡导组织的无知,我们是少数,必须不断倡导。
把所有的东西都放在 NVDA 的背景下,仅仅因为屏幕阅读器是免费和开源的,并不意味着最终可以平等地获得技术。当您使用 NVDA 或为项目贡献代码时,您同时在做三件事:表现出对项目的奉献精神,承认在屏幕阅读方面取得的进展,并了解社会和文化对残疾态度的影响。 最后一个是 2022 年屏幕阅读的现实:即使新型冠状病毒(COVID-19)大流行让我们意识到屏幕阅读器对我们的重要性,但它也带来了挑战,例如无法访问和无法使用的视频会议系统、无法阅读的在线文档,以及技术可以解决世界问题的观念(我认为它不会)。
当从可访问性和可用性的大局来看 NVDA 时,它开辟了可能性和限制。可能性,因为代码就在那里,所 以人们可以学习和研究它,而作为相同源代码的约束表明了盲人面临的更大的社会和文化问题。这也许是我希望读者在遇到 NVDA 内部时理解的最大教训:像 NVDA 这样的屏幕阅读器代表了由于社会和文化态度而需要使用替代品的人们的现实、可能性和限制。在整个内幕故事系列中,我将尽可能多地强调这三个。
小节
记住这一点:屏幕阅读器不是生产力工具,不是解决生活问题的方法,不是技术社会正义,也不是用户的代言人。作为复杂的信息处理器,屏幕阅读器以技术的形式代表了残疾的现实、可能性和限制。
NVDA 既显示了无障碍和可用性的进展和方向,也显示了对残疾宣传的更多需求。我希望你们所有人都能理解这一点,否则 NVDA 的内幕故事的其余部分将毫无意义————我不仅会带您了解 NVDA 内部结构,还可以帮助您思考很多。对于任何希望为 NVDA 项目贡献代码的人,您必须有这样一种心态,即您正在为可访问性和残疾的可能性和限制做出贡献。
下一篇:NVDA 屏幕阅读器组件和/或您希望我介绍的任何功能(欢迎评论和主题建议)。
Cheers Joseph
评论与回复
评论指出了初版文章中的一些用词方面的问题。
初版中,原文提及辅助技术时,有一句提到:
“但由于缺乏更好的词语,世界仍然对盲人怀有敌意。”
经评论指出“敌对”是一个主动的词,但大多数人只是忽略,所以用在这里并不合适。后原文改为:
“但由于缺乏更好的词语,世界仍然对盲人漠不关心”
译注
译自 Joseph Lee - The Inside Story of NVDA: what a screen reader is and is not, possibilities and constraints of screen readers (2022-09-19)
- 2023-12-11:调整摘要内容;增加“译文”标签;补充部分首字母所写的全称;调整分段
- 原载于:NVDA 内幕故事2:屏幕阅读器是什么、不是什么、可能性和限制 - NVDA 中文站