Re: NVDA 2018.3: wxPython 4 is not the same thing as Python 3

Brian's Mail list account <bglists@...>

Yes but from what I read at the start, and have not looked of late, the fixes will be done for commonly used Synths, but in the case of externally sourced ones this will have to mean the cooperation of those companies in rewriting their code.
Espeak will, I imagine be fixable. I like Espeak, as its fast and does not have the problems of real voices ie garbled at speed and the terrible lisp of Eloquence for uk English listeners.

Incidentally, I suppose as long as an add on makes no use of the gui for the wx4 versions of nvda, then most things will still work. So add ons with their own set ups etc will be the issue.
Incidentally for all our xp readers, Toolbar Explorer will run on that older nvda version for that system. I tried it last night.
Sent via blueyonder.
Please address personal E-mail to:-, putting 'Brian Gaff'
in the display name field.

----- Original Message -----
From: "Joseph Lee" <>
To: <>
Sent: Sunday, August 26, 2018 5:06 PM
Subject: [nvda] NVDA 2018.3: wxPython 4 is not the same thing as Python 3

Hi all,

For the last few hours, there has been a thread regarding incompatibility of
some add-ons and NVDA 2018.3, with some folks claiming that speech
synthesizers are not compatible. This information is mostly false, and this
may have been driven by confusion regarding wxPython 4 versus Python 3.

wxPython: NVDA 2018.3 will upgrade wxPython GUI toolkit to version 4.0.3, a
necessary milestone for the eventual migration to Python 3. If an add-on
uses attributes that are not found in newer wxPython releases, they won't
load. Likewise, an add-on that exclusively uses wxPython 4 material won't
work in older NVDA releases. At least some GUI elements of speech
synthesizer drivers are affected, and that's the reason why there has been
an uproar regarding an important add-on. Regarding speech synthesizer
drivers and GUI issues, they produce minor warnings, but apart from that,
they are usable (but not forever).

Python 3: Python is a programming language. Therefore, moving from one
version of a programming language to the next can be challenging, especially
if it introduces incompatible syntax and throws away old internal
assumptions. Python 2 to 3 migration will go through both issues and much
more, and research suggests that many NVDA features and add-ons will be
affected, including some synthesizers the community uses (sorry, Espeak,
you're included in this mix). Specifically, due to prevalence of Unicode,
it'll take some time to come up with routines that will work with text
formatted as Unicode and other encodings, and unfortunately, some speech
synthesizers will insist on using ANSI format strings when in fact Python 3
wants to read and write Unicode (Espeak is a notable case).

In regards to add-ons, any add-on that deals with text processing are
affected (speech synthesizers, for example). Also, if they use Python
standard library (various Python modules), they need to take note of
differences between Python 2 and 3, especially in regards to module and
function renames (_winreg versus winreg, the former with an underscore and
the latter without).

A more general overview of what will it take to move NVDA to Python 3 can be
found at:



Join to automatically receive all group messages.