Here, you can find information and resources related to all aspects of NVDA development.
On this page:
If you are interested in the NVDA source code in order to contribute, you can browse the source online or you may fetch a copy of the source. To find out how, read the accessing and running the source code page.
Please provide contributions either as a diff or a link to a public Git branch.
All contributions must be attached to or referenced from a Trac ticket specific to that feature or fix.
NVDA Developer Guide
For people wishing to learn about NVDA development, including the development of components for NVDA, please read the NVDA developer guide. This guide includes various examples.
Other Development Articles
Following is a list of development related articles that currently exist in our Wiki:
- AccessingAndRunningSourceCode Accessing Source Code
- DesignOverview Design Overview
- ReleaseProcess Release Process
- Translate NVDA Translation and Localization
- TranslatingAddons Translating NVDA Add-ons
- TranslatingChanges Translating changes.t2t
- TranslatingCharacterDescriptions Character Descriptions
- TranslatingSymbols Symbol Pronunciation
- TranslatingTheInterface Translating the interface nvda.po
- TranslatingUsingAutomaticProcess Translating using the automatic workflow process
- TranslatingUsingManualProcess Manual translation process
- UsingASelfSignedCertificate Using a Self-signed Certificate
NVDA API for external applications (NVDA Controller Client)
If you wish for your application to communicate with NVDA in order to speak or braille custom messages, you can make use of the NVDA controller client 2010-02-19. Provided in this 7zip archive is A dll with which your application can use to communicate with NVDA. The archive also includes documentation which explains the available functions.
Check out the timeline for recent code, ticket, wiki and other changes.
The roadmap provides access to information on future NVDA milestones/releases.
Development email list
For discussion about NVDA development, including questions about translating, contributing code and testing, please join the nvda-dev eemail list.
For automatic notifications of source code and ticket changes, please join the nvda-commits eemail list.
We're finally drawing very near to the end of the NVDA 2010.2 release cycle. It's been a bit longer than I hoped, but I think the wait was justified and worthwhile.
We will release according to the guidelines documented in ReleaseProcess. All developers and translators should familiarise themselves with this document, which I updated earlier today.
Following is the tentative release schedule for 2010.2:
- beta1: 13 September
- rc1: 13 October
- final: 20 October
Of course, this will ...
NVDA has quite a few dependencies. Some of these have nice installers, but others are very small or aren't readily available in the form we need for some reason or another. Therefore, for people running from source, we previously bundled all of these dependencies into a single, convenient "miscellaneous dependencies" package. Unfortunately, this is rather tedious for us to maintain. Most of these dependencies rarely ever change, making updating the whole package for every change rather pointless ...
We have noticed that some people have been getting a little confused with NVDA's current version numbers. I have also been wondering about them, especially in regards to the closely approaching next stable release.
As a bit of a background: We released NVDA 0.5 in Mid 2007. We then started planning for 0.6. Very early on in the creation of 0.6 we massivly improved support for Mozilla Firefox (introducing the new virtualBuffers). However at the same time we started neglecting the code for In ...
I'm pleased to announce that Optelec contributed a driver for their ALVA BC640/680 braille displays, which is now included in NVDA. Like NVDA itself, these displays do not require any drivers or software to be installed on the computer (and therefore don't require administrator privileges), which makes for a fantastic combination when used with a portable copy of NVDA. The displays can optionally ...
I have posted a document outlining future goals for NVDA which are all candidates for funding sources. This document is intended to evolve as relevant information changes. If you or your organisation are interested in funding any of these goals or know of a potential source of funding, NV Access would love to hear from you.
Thanks to a grant from Microsoft to NV Access, I have been able to implement support in NVDA for Microsoft's unmanaged UI Automation client API found in the up and coming Windows 7 Operating System. I have been working on this support since the start of this year and just a few days ago we decided that it was complete enough to be included in our main development branch for NVDA, which means that this support is now available to ...
I've just posted an article which attempts to provide an overview of NVDA's technical design and architecture. It is quite lengthy, as it is probably impossible to explain this briefly. It is also necessarily somewhat technical in nature. If you're an interested or potential developer, please give it a read. Feedback is very much welcome.
Last September, Mick started completely refactoring our virtual buffer library, a task which ended up becoming almost a complete redesign. This new library is called nvVBufLib. Over the last few months, he has been working on porting the Mozilla Gecko back-end to the new library. We encountered a few major hiccups along the way, which have now thankfully been solved.
Meanwhile, a few weeks ago, I decided to try my hand at implementing a new Adobe Acrobat/Reader ...
This past week we have been busy preparing for the up and coming NVDA 0.6 p3 release, which we hope will be out in the next week or so. Work has been mainly fixing bugs that we and users have been noticing as we check that all is working as it should for the release.
I have fixed a bug introduced some time after 0.6p2 where NVDA would not detect that a new page had been loaded in Internet Explorer. This code broke when we moved to a new version of the Python COM Types library, which seems to ...
Many different things have been worked on in NVDA in the past week. Much of the work has been to improve the user experience, though a few bugs have been fixed as well.
Probably one of the most important things for this week is that we have finally been able to stop crashes in Firefox in Windows Vista while using NVDA. We have known about this problem for a rather long time, but have not ever been able to reproduce it ourselves. However, due to some unknown reason, my wife's computer suddenly ...