Accessibility: Next Element and Previous Element shortcuts ignore articulations

• Jan 8, 2019 - 22:24
Reported version
3.x-dev
Priority
P1 - High
Type
Functional
Frequency
Once
Severity
S3 - Major
Reproducibility
Always
Status
closed
Regression
No
Workaround
No
Project

Steps:

  1. Add a note to a score.
  2. Add an ornament (e.g. a trill) to the note.
  3. Click on the notehead to highlight it.
  4. Press the Next Element shortcut (Alt+Right).

Expected:

  • The trill is highlighted

Actual:

  • The trill is skipped and the next note or rest is selected instead.

Consequences:

  • Users who rely on keyboard access (e.g. people who are blind) are unable to select, edit or delete ornaments.

Tested:

  • OS: Ubuntu 18.04.1 LTS, Arch.: x86_64, MuseScore version (64-bit): 3.0.0., revision: c1a5e4c
  • OS: Ubuntu 18.04.1 LTS, Arch.: x86_64, MuseScore version (64-bit): 3.0.1., revision: 3543170
Attachment Size
testNextElement.mscz 5.32 KB

Comments

Title Accessibility: Next Element and Previous Element shortcuts ignore ornaments Accessibility: Next Element and Previous Element shortcuts ignore articulations
Priority P0 - Critical

To clarify, it's not ornaments specifically, but all Articulations that are skipped, and this was true back in the alpha as well, so not related to relatively recent changes in this code. Also, spanners do work (so the trill from the Lines palette works).

BTW, grace notes get skipped too.

I was originally going to include articulations, but then I noticed the behaviour is slightly different. When I add a fermata to a score it is traversed with Next Element, but then you get stuck on it. On the other hand, Previous Element skips it entirely. Still, both bugs should probably be dealt with at the same time.

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

This was working until a refactoring of some objects (moving articulations from chordrest to chord, fermata from chordrest to segment). Thr code is full of special cases so my fix here isn't the world's cleanest, some day we could revisit the navigation commands in general. But this PR gets them working, also fixes issues with navigation through fingering and fermatas.

Status PR created fixed

Fixed in branch master, commit 320c1081e4

_fix #281448, fix #283463: accessibility for articulations and lyrics

Articulations needed to be added to Chord::accessibleExtraInfo.
Also, refactoring was needed to move code around as a result of
articulations and fermatas being moved between Chord and ChordRest._

Fix version
3.3.0