Add-on development guide: terminology changes, Python 3 examples are being added


Dear NVDA development and add-ons community,


As the original author of NVDA Add-on development Guide, I would like to take this time to thank everyone for honest (and blunt) comments about terminology going forward. Based on community feedback, the upcoming edition of NVDA Add-on Development Guide (this weekend) will include terminology changes as follows:


The difference between “plugin” and “add-on” will be clarified, along with noting a history of how they came to be known. For future reference, the definitions to be used (taking effect on January 1, 2020) will be:


  • Add-on: a package for NVDA that includes one or more components for enhancing support for an app, a speech synthesizer, or a braille display, along with global features and vision enhancement providers.
  • Plugin: a module that modifies NVDA’s functionality, including adding support for a new app or a global feature.
  • Component: another name for “plugin”, although this term will include things such as support components.
  • Enhancer: a plugin that works in tandem with NVDA in order to enhance usability of computer systems. Currently vision enhancement provider will be categorized as an “enhancer”.
  • Vision enhancement provider: a type of enhancer that allows people with varying sight to use computers more efficiently with help from NVDA. These include highlight tracking, screen curtain, magnification, and other possibilities.


Along with these changes, the November 2019 edition of the guide will feature Python 3 examples alongside Python 2 ones to ease porting add-ons to Python 3. Unless otherwise noted, a dedicated appendix will be created to highlight key differences and gotchas between Python 2 and 3.


Thank you.