Re: Speak the Contents of a wx.StaticText Control When It Changes

James Scholes

There are a number of possible solutions here, but none of them do what you're directly asking for. NVDA doesn't speak changes to static text controls by default and there's no way for your application to force it to do so.

In terms of NVDA-specific solutions, you can use the NVDA Controller Client as you've mentioned or bundle an NVDA add-on with your program. There are other screen readers out there, so you risk excluding other users with these approaches.

Consider modifying the program itself to communicate the information in a different way. For example, if the static text changes are reporting that some sort of processing has begun, open a progress dialog. Alternatively, AFAIK NVDA will always report label changes for the focused control, so as a hacky solution you could just put the text on a button. Static texts don't appear in the tab order, so don't force the user's focus onto those.


James Scholes

On 12/04/2019 at 8:34 pm, Thomas Stivers wrote:
I am working on an application using wxpython. I would like to have NVDA speak the contents of either a wx.StaticText or wx.TextCtrl when the text changes. Is there a way to do this wouthout the application actively calling a function from NVDA or the controller dll? I've tried using Refresh() and Update() on the controls, but I still have to take action for NVDA to tell me about the change.
Any thoughts would be appreciated.

Join to automatically receive all group messages.