跳到主要内容

NVDA 内幕故事7:API 和覆盖类

· 阅读需 11 分钟
Joseph Lee
The author of NVDA-Internals
Chengyu HAN
Open Source Contributor

本文为[《内幕故事》][1]系列英文译文的第七篇,也是关于 NVDA 对象的三部曲的最后一部分。

对于新读者:欢迎来到《NVDA 内幕故事》系列, 一位经验丰富的 NVDA 开发人员将带您揭秘 NVDA 屏幕阅读器的内部工作原理。 由于我们讨论的是软件内部原理,这些帖子很快就会变得非常复杂,所以请耐心阅读。

NVDA 内幕故事6:解析 NVDA 对象

· 阅读需 14 分钟
Joseph Lee
The author of NVDA-Internals
Chengyu HAN
Open Source Contributor

本文是第六篇《内幕故事》的译文,也是 NVDA 对象的三部曲之一: NVDA 对象的解析,深入探索构成 NVDA 对象组成部分。

对于新读者:《NVDA 内幕故事》是一系列详细介绍 NVDA 操作和内部机制的帖子。 由于某些部分可能会变得相当技术性,我会尽力简化一些,但不会削减关键细节。 对于经验丰富的 NVDA 用户,我希望这些帖子能帮助他们理解 NVDA 的工作原理。

NVDA 内幕故事5:控件名称和角色的来源是什么?

· 阅读需 12 分钟
Joseph Lee
The author of NVDA-Internals
Chengyu HAN
Open Source Contributor

这是第五篇 NVDA 内幕故事,将会介绍 NVDA 的核心部分:NVDA 对象。

对于我们的新朋友、新读者们: 如果你是一个新的 NVDA 用户,或者刚开始使用屏幕阅读器, 我要介绍的部分可能令人难以理解,因为它会涉及屏幕阅读器的内部工作原理。 作为一个即将踏上人生新阶段的开发者,我觉得这是一个好机会, 我可以传授我对屏幕阅读器的了解,以帮助下一批用户和有意成为开发者的人。 我会尽我所能让这些信息易于理解。

NVDA 内幕故事3:构成 NVDA 屏幕阅读器的组件

· 阅读需 15 分钟
Joseph Lee
The author of NVDA-Internals
Chengyu HAN
Open Source Contributor

本故事的部分内容包括实际的 NVDA 源代码。对于大多数人来说,这可能是你第一次真正看到用 Python 编写的屏幕阅读器源代码。我认为让大家看到一些源代码是很重要的,这样人们就可以更好地理解正在发生的事情。并让我能用实际的代码来解释一些概念和机制。

NVDA 内幕故事2:屏幕阅读器是什么、不是什么、可能性和限制

· 阅读需 10 分钟
Joseph Lee
The author of NVDA-Internals
Chengyu HAN
Open Source Contributor

什么是屏幕阅读器

在我们真正开始讨论 NVDA 组件之前,有必要先思考一下屏幕阅读器是什么和不是什么,以及屏幕阅读器的可能性及限制背后的整体概念。我们还需要了解与屏幕阅读相关的可访问性。只有这样,其余的内幕帖子才有意义,因为故事的开始和结束都定义了屏幕阅读技术的现实、可能性和限制。 对于任何希望向 NVDA 项目提交代码贡献的人,你需要考虑 NVDA 及其用户面临的整体社会和文化现实。

NVDA 内幕故事1:概述与总体目标

· 阅读需 8 分钟
Joseph Lee
The author of NVDA-Internals
Chengyu HAN
Open Source Contributor

译注:《内幕故事》系列文章为英文译文。后文中的“我”指 Joseph Lee

首先,感谢 Brian V 允许我做一些我过去几年梦寐以求的事情:带大家了解 NVDA 屏幕阅读器的内部结构。 在过去的几年里,我希望我能花一些时间告诉你屏幕阅读器的内部是如何工作的,并为屏幕阅读器的研究添加急需的知识体系。