Support for screen readers is broken

• Apr 13, 2011 - 13:54
S4 - Minor

I have not been using Musescore to convert ove files after downloading v1.0. Today, I downloaded the latest nightly build, and found that the interface is completely inaccessible. When I use control+O to open file, the dialog can't be read by both Jaws and NVDA. At past, even in 1.0, that window is accessible. What's happened upon Musescore's coding?



Screen reader support is still broken both in 1.2 stable and the latest nightly in both Windows 8 and OpenSUSE Linux 12.2 (R.35650ee on windows and 0f4127d on linux).

Actually, today I installed qt-at-spi and was able to get Orca screen reader on Linux to read menus and most other things except for the score itself. This worked for both the stable and prerelease versions. It's still a mystery why screen reader support is broken in Windows.

I was pleased to discover that MuseScore 1.3 (except for the score) now works fine with NVDA on Windows 8. Thank you to whoever fixed this. I'd like to make it read the score as well, but that will take much more work.

However, NVDA reads hardly anything with the same conifguration in MuseScoreNightly-2013-03-14-2117-452cdc7, so the 2.0 version is still broken.

Could you give an example of what is read in 1.3 but not read in 2.0?
Also, out of curiosity, what do you mean by "read the score"?

In Musescore 1.3, NVDA reads all of the menus and toolbar buttons as I navigate them either with the keyboard or the mouse. Musescore 2.0 nightly only reads toolbar buttons, and it simply says 'unknown' repeatedly as I move through the menus. The nightly behavior is the same as what I experienced in 1.2.

As for reading the score, I would like to be able to have NVDA read score elements (notes, rests, musical directions, etc.) as I navigate through them. Since score elements are not standard widgets, they would require a special implementation of QT accessibility in order to be exposed to a screen reader. This feature is something I would like to implement at some point, perhaps using a plugin.

For some reason screen reader support broke again in MuseScore 1.3 on Windows. I'm not sure why, since I haven't done anything to my MuseScore installation. Reinstalling did not help.

Could someone make sure that screen readers (eg the free NVDA) can read the menus a dn dialogs in the final version of MuseScore 2.0 when it comes out? It doesn't work in the nightly builds and I'm having trouble compiling the source code to figure out why.

I've looked a little, and it seems it would take quite a bit of work to add all the necessary tags and hooks to get things to read meaningfully. It's something I very much want to do, but it's quite unlikely to happen for 2.0.

In Ubuntu the screen reader Orca will read the menus and dialogs as I navigate with the keyboard because they are standard widgets. The screen reader NVDA used to do the same in Windows, but now I can't get it to do so. So it seems like something is broken with the accessibility stack on the Windows builds. It would be really helpful if at least the menus and dialogs, which are standard QT widgets, could be read by a screen reader.

I realize that making the score itself accessible is a lot more work. Thanks for looking into this.

Actually, getting the score itself accessibility is something I have a much better handle on. It's mostly a matter of implementing navigation commands that can traverse all score elements - like time signatures, clefs, dynamics, etc - as opposed to just notes. And then putting a description of the selected element in the status line, and making sure a screenreader reads that. I've already prototyped this, and it is quite promising. Score *editing*, on the other hand, is currently mouse-dependent in many places, and would be much more difficult to address.

Anyhow, fixing the dialogs requires more knowledge of Qt than I possess, and these types of changes are a little risky. That's why I say it's unlikely for 2.0, which is kind of in "homestretch mode" at this point. It is high priority for me personally, though, so I hope to be able to do what I can ASAP after 2.0: both the dialogs *and* the score reading features.

But also, I wonder if you are seeing something different from me? On my Window 7 system, NVDA *does* read all menus and many dialogs. But there are a large number of issues with this - places where the labels are not associated with the fields, places where the tab order is almost random, glitches in the menu navigation, etc. Overall, though, it works *better* than in 1.3 for me.

I read that for screen readers to work there are certain dll(s) that need to be in a folder called 'accessible' in the program folder. Does your installation have such a folder in the musescore directory? I tried putting the dlls in mine, but all I can get is NVDA saying 'unknown' for everything. I also tried another screen reader, and it still didn't work.

No, there is no "accessible" folder in my development / installation folder. Are you sure it's the nightlies that aren't working for you? It's exactly the opposite for me - I get "unknown" for menus with 1.3 but more or less correct reading with the development builds. I believe it started working when the builds moved to Qt 5?

I just managed to make screen reader support for menus/dialogs work by copying the 'accessible' folder in my Qt 5 installation to the 'bin' directory of the latest nightly build of MuseScore. Perhaps it would also work if the 'plugins' folder in QT containing the 'accessible' folder is in your system PATH.

Screen reader support is still broken, and now putting the Accesible folder in the latest nightly build doesn't make it work.

Could you be more specific? Which OS, which screenreader, what specifically doesn't work?

There have been no specific changes for accessibility in MuseScore in the recent past, but we *have* picked up changes in Qt, which should have improved a few things.

Meanwhile, the good news is that Andrei Tuicu is working on making more significant accessibility improvements, through the Google Summer of Code program. See…. Really exciting stuff, actually. Work began a month or so ago, and so far, none of it has been merged into the main code, but what I've been able to test is a big step forward. Some of this work may make it into 2.0, the rest will hopefully follow not long after.

The menus should now work reaosnably well with NVDA, and in the fourm barichd seems to have implicitly confirmed this. Still, I don't think the same is true of other screenreaders, and there are or course plenty of other aspects of the UI that are not accessible. But these probably deserve their own individual issues.

Yes, the menus are read in MuseScore 2.0 with NVDA on Windows and also with Orca on Linux. However, when I navigate through a score using Orca, the score elements are not read (unlike with NVDA)

I'd suggest to mark this issue as fixed and open a new one for Orca support. The focus has been on making MuseScore work correctly with NVDA on Windows.

Status (old) active fixed

MuseScore 2.0 has working screen reader support for NVDA and JAWS (to be documented). Closing this issue. If there is any other specific issue, please create a new one, for instance for Orca support.