[Accessibility] QAccessibleEvent not being seen by screen readers

Marc Sabatella marc at outsideshore.com
Fri Jan 17 16:16:57 CET 2020


I recently a pretty long description of my problem to the Qt forum -
https://forum.qt.io/topic/110464/qaccessibilityevent-not-being-seen-by-screen-reader-or-accessibility-insights
- and was advised to repost on the mailing list.  I tried subscribing to
the more general "interest" list but no response yet.  Luckily I'm already
subsribed here.

The short(er) version is this:

We have a custom widget in our application (MuseScore) that needs to
provide screenreader feedback when the user interacts with it.  We have had
this working with NVDA for several years, but we are unable to get it to
work with other screen readers.  The crux of the issue is, once we have
figured out what information we want the screen reader to read, we are
setting this as the value and/or description for our custom widget (for
which we are implementing QAccessibleInterface as per the docs), then
sending a value changed and/or description changed event, via
updateAccessibility().  Problem is, the event doesn't seem to be making it
out.  NVDA does respond, which I am guessing is because there are hooks for
it within Qt.  But there don't seem to be appropriate events generated that
other applications (including Accessibility Insights for Windows, which I
am using to log events in an attempt to debug this) can see.

I've tried all sorts of variations on the "role" of out widget, which texts
and events we use, and miscelaneous other random tweaks.   One of the
permutations works with JAWS when building MuseScore with Qt 5.9.8, but it
fails again with 5.12, and neither Narrator nor Orca (Linux) is responding
no matter what I try.  I'm also checking dbus-monitor on Linux and am
pretty sure I am not seeing the events, but it's dumping a ton of data and
I don't really know what it all is.

For more details, feel free to read the longer post :-), or just ask
anything that muight help clarify things.  If it helps, here is my lastest
code for the accessibiity implementation (this reads using NVDA, and with
JAWS under Qt 5.9.8 but not 5.12):
https://github.com/musescore/MuseScore/blob/8b79cad27825ccf02fe5351b19a9094dfefd2b71/mscore/scoreaccessibility.cpp

I get the feeling there must be something really basic we are missing
that's preventing the event from being generated properly, but I'm at a
loss.  Any ideas?  We'd *really* love to get MuseScore accessibility on
platforms other than Windows/NVDA (although we're thrilled to have that
much working at least).

BTW, I'll be at FOSDEM co-presenting on this work in a couple of weeks, if
anyone with any insight will be there, I'd love to meet up and try to work
on it together if we can't sort it out beforehand.


-- 
Marc Sabatella
marc at outsideshore.com
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.qt-project.org/pipermail/accessibility/attachments/20200117/d1c153e7/attachment.html>


More information about the Accessibility mailing list