Jaffar Sidek <jaffar.sidek10@...>
toggle quoted messageShow quoted text
Hi Joseph. Correct me if I am wrong, but what you seem to be
saying is that while WxWidgets uses MSAA as it's accessibility go
to, NVDA itself relies on both the native Windows dialog and UIA
to function properly, particularly with the more newly built
apps. If my assumption is correct, then your win10 issentials
AddOn is bridging the gap so as to cause less of a conflict with
access issues? Would it then be better to embed Win10 issentials
into NVDA itself? Cheers!
On 28/1/2021 1:36 pm, Joseph Lee wrote:
there’s another aspect to account for: it isn’t NVDA that
has control over how messages are presented/announced: it is
really wxWidgets that controls this. Part of the reason why
NVDA’s user interface is accessible is because it isn’t NVDA
that instructs Windows that its own message boxes are
dialogs; rather, it is wxWidgets that reveals MSAA
information to Windows about controls. Therefore, NVDA can
announce its own dialog content simply because it is
retrieving whatever accessibility API information Windows
says about controls.
GUI toolkits and NVDA: I’m researching how NVDA will work
under more recent wxPython releases (currently NVDA is
powered by wxPython 4.0.3 based on wxWidgets 3.0.5). More
recent wxPython releases such as 4.1.1 are powered by
wxWidgets development code, and tests show most NVDA
controls and scenarios will work apart from a weird bug
where you can’t perform NVDA commands while NVDA menu is
opened and a huge lag when message boxes are open. So far,
wxWidgets will use MSAA to reveal information about controls
to Windows, and in extension, to NVDA. As opposed to this,
QT offers an option to use UIA to communicate control
information to Windows and NVDA, and anyone who have
experimented with Windows 10 apps may have come across all
sorts of UIA issues with apps such as Settings and Mail
(these are powered by all sorts of GUI toolkits which uses
UIA to talk about controls; UIA issues is another reason why
I release Windows 10 App Essentials development builds on a
Joseph for your reply.
I am satisfied with the general behavior of NVDA regarding
the announcement of the object description.
But I think in the case of a message issued by NVDA using
gui.messageBox and which
presents only a dialog box with a text and one or two
buttons, the text must be announced whatever the state of
obviously, this is a point of view and I am perhaps the only
one to deactivate the announcement of the description of the
objects for the "normal configuratio" profiln.
Le 28/01/2021 04:36, Joseph Lee a écrit :
object’s description is typically retrieved through
accessibility API’s, although screen readers can customize
certain behavior. This is the approach used by NVDA: NvDA
defines dialog text as a dialog’s description. As you’ve
observed, if report object descriptions is off, NVDA will
not announce description text for controls such as dialog
for defining messages NVDA should announce all the time,
in theory, it might be possible. In practice though, think
about the following:
- Different people have different ways to define
what “essential” messages are. Some would say dialog
text should be announced all the time, while others may
say NVDA should announce clipboard operations including
in places where you can’t copy or paste things.
- Screen readers do not possess hundreds of
magnifying glasses; that is, screen readers cannot
announce everything on the screen.
I am surprised that this question is not answered .
So I return in my box with it.
23/01/2021 09:56, bering.p a écrit :
I am sharing with you an observation I made concerning
the announcement of messages by NVDA and which may be
the subject of a PR.
When the option "Report object descriptions" is
disabled, NVDA does not speak the text in dialog boxes.
This is annoying when it comes to a message informing
the user or questioning him.
- following a manual search for update request.
- when an add-on uses "gui.messageBox" to query the
In this case, it is necessary to read the contents of
the dialog box using "NVDA + b".
I think that any message emitted by NVDA should be
announced regardless of the state of activation of the
What do you think ?
And if you agree, please do the PR.