Add accessibility command to force full read of current location

• Aug 13, 2019 - 14:39
Reported version
3.2
Priority
P1 - High
Type
Functional
Frequency
Once
Severity
S5 - Suggestion
Reproducibility
Always
Status
fixed
Regression
No
Workaround
No
Project

Right now during score navigation, the screenreader will (when it's working - needs Qt 5.12.4) read information about the current note. But it doesn't include things like, the name of the current staff, the key or time signature in effect, etc. It's good we don't re-read that info on every navigation command, but there should be a way to force it to be read. It should also read bar and staff number even if these haven't changed and were thus optimized away on the previous navigation command (see #293300: Optimize screenreader info information during score navigation).


Comments

Status active PR created

https://github.com/musescore/MuseScore/pull/5455

This does not support reading or key or time signatures, those don't fit in very well with the current way things are set up. At some point we should consider doing some refactoring, possibly incorporating https://github.com/musescore/MuseScore/pull/5096, to make it easier to implement things like this. But at the same time, we would also want to find an accessibility solution that works for screenreaders other than NVDA, and that may end up entailing refactoring of a different nature.

Status PR created fixed

Fixed in branch master, commit ea02b2e10a

_fix #293301: add get-location command to read current location

We have optimized the screenreader feedback when navigating
to only mention measure and staff if it has changed.
Blind users can easily lose track of where they are, however,
so this adds a new command "Get Location" that forces a full read.
It also re-establishes a lost selection (the last-selected note or rest),
which can also be useful for sighted users,
although Alt+Left/Right already re-established the location before beginning navigation.

Eventually I would like the new "Get Location" command
to read the current key and time signature.
Right now, though, it is is not straightforward to force the screenreader to do this,
I left it as a TODO in the code._