NVDA 内幕故事5:控件名称和角色的来源是什么?
· 阅读需 17 分钟
这个内幕故事是一系列帖子的一部分,将介绍 NVDA 对象,这是使屏幕阅读成为可能的 NVDA 的核心部分。 参与 NVDA 用户列表的人们知道,我可以对一个事情继续讲上几个小时,而 NVDA 对象就是其中之一。
NVDA 内幕故事系列文章
查看所有标签这个内幕故事是一系列帖子的一部分,将介绍 NVDA 对象,这是使屏幕阅读成为可能的 NVDA 的核心部分。 参与 NVDA 用户列表的人们知道,我可以对一个事情继续讲上几个小时,而 NVDA 对象就是其中之一。
下面的故事源于[此讨论贴][1]中提出的问题:NVDA 如何在睡眠状态下接收到传递给自己的键盘命令? 更深层次的问题是:按下 NVDA+Shift+S/Z 切换睡眠模式时,NVDA 是否处于“睡眠”状态?
本故事的部分内容包括实际的 NVDA 源代码。对于大多数人来说,这可能是你第一次真正看到用 Python 编写的屏幕阅读器源代码。我认为让大家看到一些源代码是很重要的,这样人们就可以更好地理解正在发生的事情。并让我能用实际的代码来解释一些概念和机制。
在我们真正开始讨论 NVDA 组件之前,有必要先思考一下屏幕阅读器是什么和不是什么,以及屏幕阅读器的可能性及限制背后的整体概念。我们还需要了解与屏幕阅读相关的可访问性。只有这样,其余的内幕帖子才有意义,因为故事的开始和结束都定义了屏幕阅读技术的现实、可能性和限制。 对于任何希望向 NVDA 项目提交代码贡献的人,你需要考虑 NVDA 及其用户面临的整体社会和文化现实。
译注:《内幕故事》系列文章为英文译文。后文中的“我”指 Joseph Lee
首先,感谢 Brian V 允许我做一些我过去几年梦寐以求的事情:带大家了解 NVDA 屏幕阅读器的内部结构。 在过去的几年里,我希望我能花一些时间告诉你屏幕阅读器的内部是如何工作的,并为屏幕阅读器的研究添加急需的知识体系。