NVDA add-ons and Python 3

The NVDA community has transitioned from Python 2 to Python 3 as part of NVDA 2019.3. This page aims to document add-ons compatible with NVDA 2019.3 (Python 3 version of NVDA), as well as highlighting issues when using add-ons with future NVDA releases.

What is Python 3 transition?

Released in 2000, Python 2.x is one of the most popular programming languages. With support for Unicode, web technologies, and thousands of third-party libraries, Python became a language of choice for many projects, including NVDA in 2006.

In late 2000's, Python developers announced Python 3000, a project to modernize Python. Changes were made to Python syntax, standard library, and other underlying framework, including the print function, more comprehensive support for Unicode, changes to standard library, and changing iteration methods such as xrange to range. Although Python 3.x did modernize Python programming language, due to large-scale deployment of Python 2, Python developers decided to support Python 2.7 (the last version of Python 2) until January 2020 to give people time to move to Python 3.

In 2019, NV Access began its work on Python 3 transition, citing popularity of NVDA and project longevity. This work culminated with release of Project Threshold builds of NVDA in July 2019, which is based on Python 3.7 and includes a host of changes in addition to Python 3 transition such as speech refactor, which will affect add-ons. NVDA 2019.3, released on February 10, 2020, is powered by Python 3.7.

What you need to know about Python 3 transition and add-ons

Python 3 transition affects many add-ons hosted on this website. Specifically, the following issues are known:

  • Add-on does not load because they are flagged as incompatible by NVDA.
  • Add-on does load, but errors such as syntax errors and module not found errors are seen.
  • Add-on does not load due to bytecode mismatch.
  • Add-on behaves oddly when working with text.
  • Add-on works, but certain features that rely on Python standard library are not working such as internet access.
  • Some speech synthesizer and braille display add-ons behave oddly around text output.

When you encounter these issues, you should contact the author(s) of the add-on(s) in question (see the below list for contact info for add-ons hosted on this website). Be sure to provide details when contacting authors.

Compatibility status key for add-ons listed below:

  • Yes: compatible
  • Included in NVDA: add-on functionality is now part of NVDA as of 2019.3
  • No: incompatible (manifest edits and other tricks will not work; this includes add-ons with compatibility manifest issues)
  • TBD: to be determined
  • Planned: author indicated plans to port the add-on
  • Work in progress: add-on is being ported to Python 3, including testing in progress

Status of add-ons compatible with Python 3 and other changes

Below is a list of add-ons hosted on this website, along with their compatibility status with Python 3 version of NVDA and known issues if any. The list also includes contact information for add-on author(s).

Note: Add-on compatibility status subject to change without notice. Also, although one way to work around compatibility issues is editing the add-on manifest, some add-ons listed below are still incompatible.

Access8Math

Add-on Updater

Add-ons Documentation

Addon to count elements of selected text

Audio Themes

AudioChart

Beep keyboard

Bit Che

Bluetooth Audio

Braille Extender

BrowserNav

Calibre

Character Information

Classic Selection

Clip Contents Designer

Clipspeak

Clock and calendar Add-on for NVDA

Control Usage Assistant

Crash Hero

  • Compatible: No
  • Issues: Python 3 syntax errors, no compatibility information
  • Contact: Derek Riemer driemer.riemer@gmail.com

Day of the week

Debug Helper

Developer Toolkit

Dropbox

  • Compatible: Yes
  • Contact: Patrick Zajda patrick@zajda.fr, Filaos and other contributors

Dual Voice

  • Compatible: Yes
  • Contact: Seyed Mahmood Taghavi-Shahri

Easy Table Navigator

Emoticons

eMule

Enhanced Aria

Enhanced Touch Gestures

extendedWinamp

Focus Highlight

Golden Cursor

GoldWave

Image Describer

  • Compatible: No
  • Issues: attempting to import a module that no longer exists in Python 3, out of date compatibility information (last compatible: 2019.1)
  • Contact: Oliver Edholm oliver.edholm@gmail.com

IndentNav

Input Lock

Lambda Add-On for NVDA

  • Compatible: Yes
  • Contact: Alberto Zanella, Ivan Novegil

Mozilla Apps Enhancements

mp3DirectCut

  • Compatible: Yes
  • Contact: Abdel, Rémy Ruiz, Abdellah Zineddine, Jean-François Colas

Newfon

  • Compatible: No
  • Issues: no compatibility information
  • Contact: Sergey Shishmintzev

NoBeepsSpeechMode

Notepad++

NVDA Remote Support

Object Location Tones

ObjPad

OCR

Outlook Extended

placeMarkers

Read Feeds

Report Symbols

Resource Monitor

Review Cursor Copier

sayCurrentKeyboardLanguage

SentenceNav

Speak Passwords

Speech History

  • Compatible: Yes
  • Contact: Tyler Spivey, James Scholes

Station Playlist

  • Compatible: Yes
  • Contact: Geoff Shang, Joseph Lee and other contributors

Switch synth

systrayList

TeamTalk Classic

  • Compatible: No
  • Issues: missing modules due to syntax errors, no compatibility information
  • Contact: Doug Lee with initial work by Tyler Spivey and others

Text Information

TextNav

Tip of the Day

ToolbarsExplorer

Tone Master

UnicodeBrailleInput

Virtual Review

VLC Media Player

Weather Plus

Windows 10 App Essentials