NVDA Add-on Guides

Welcome to NVDA Add-on Guides. This repository contains documentation on NVDA add-ons, including add-on development guide, various user guides for add-ons and notes on add-on internals.

A letter from the NVDA Community Add-on reviewers

Dear NVDA users, developers and supporters around the world:

Welcome to NVDA Add-on Guides. My name is Joseph Lee, a translator and code contributor to NVDA screen reader project and one of the community add-on reviewers. On behalf of other community add-on reviewers, I'd like to cordially invite you to a tour of NVDA documentation, including various online guides for add-ons, notes on add-on internals and other references to help you understand internals of this free, open-source, community-driven screen reader that is now an integral part of lives of thousands of blind people around the world.

As a community reviewer, one of the questions I received was, "how can we improve NVDA and write new add-ons?" Along with this question, some members of the community have voiced concerns with lack of documentation on NVDA, including explanation of NVDA's overall architecture, add-on documentation and so forth. Based on my own experiences with product documentations and seeing the need for handy references to help new developers grasp NVDA features, I decided to launch a series in my own blog entitled "NVDA Add-on Internals" to help you understand how an add-on works. A few days later, a fellow developer suggested creating a repository to house NVDA documentation, thus this repository was born (formerly, this page was home to the add-on development guide).

We the community add-on reviewers team hope this collection will serve as a valuable resource for you to learn more about NVDA, its internals and how you can help NVDA development in the future. Along with a guide on developing add-ons, you'll find other helpful articles, including notes on internals of various add-ons, papers on how NVDA performs its task and so on. Our hope is that, through these resources, you'll understand the work involved to bring NVDA to life, glimpse into the process involved in NVDA and add-on development, learn more about mechanics of screen reading and much more.

In closing, I'd like to say a few words regarding NVDA and this documentation collection. First, please remember that NonVisual Desktop Access is a free, open-source, community-driven screen reader which is licensed under GPL, and please respect copyrights and copyright holders (we the community add-on team release this documentation under GPL as well, and we welcome community contributions). Second, the views expressed by article authors, especially add-on articles, may not represent views of original add-on authors. Lastly, some articles require knowledge of Python, Windows API, accessibility standards and combination of these.

Thank you, and I hope you find this collection useful as you continue to learn about NVDA screen reader. If you have any questions about these resources, please let us know by email or via Twitter (subscribe to NVDA Add-ons list first, then send an email to; for Twitter, please use #NVDASR hash tag).

Joseph S. Lee


Please read this page to learn how you can contribute.

Add-on development documentation

To view the latest version of add-on development guide, select the following link:
NVDA Add-on Development Guide

NVDA Add-on Internals

The NVDA Add-on Internals is a series of articles explaining how community add-ons work. The following articles are available:

Golden Cursor:

StationPlaylist Studio:

SysTray List:

Windows 10 App Essentials: