GSoC 2017 Work Product : Accessibility
This is a description of the work done as part of GSoC 2017 on the project "Improving the Accessibility of MuseScore for Visually Impaired Musicians".
Merged Code:
The following commits have been merged into the MuseScore master branch and are available in the nightly builds:
Pull Request #3206 Accessibility: nextElement and prevElement
Commit: accessibility: nextElement and prevElement
This implements two score navigation commands, to select the next and previous score element respectively. The commands traverse elements like articulation, note attached elements (like fingering), spanners (slurs, hairpins etc.) in addition to the main score elements.
Pull Request #3239 Palette navigation
Commit: palette navigation
The palette navigation work enables navigation of the palette search results using the up and down arrow keys. Pressing the Enter key applies the selected palette element. There is also a shortcut command to apply the currently selected palette element to the score, which does not require keyboard focus to be on the palette.
Pull Request #3259 Accessibility: new score wizard
Commit: Accessibility: new score wizard
This makes the key signature palette in the new score wizard accessible by keyboard. The left and right arrow keys can be used to traverse the palette cells.
Unmerged Code
These pull requests have not been merged yet:
Pull Request #3279 Master palette navigation and template navigation
Commit: master palette navigation and template navigation
This makes the master palette navigable by keyboard. It also makes the templates in the new score wizard navigable by keyboard.
Pull Request #3252 Palette shortcut
Commit: palette shortcut
This adds the ability to assign a shortcut to a palette element. A new dialog, called the palette shortcut manager, has been created which lists the palette elements in the current workspace along with their shortcut key sequence. Shortcuts can be assigned and cleared using the palette shortcut manager. Shortcuts can also be assigned/cleared using the palette cell context menu, which is shown on right clicking a palette cell. There is also a shortcut command to assign a shortcut to the currently selected palette cell. On assigning a shortcut using any of the above methods, the palette shortcut manager is updated to display the new shortcut sequence. The shortcut in the corresponding palette cell is also updated. This commit also adds improvements to the detection of shortcut conflicts. Palette shortcuts are saved, so on assigning a shortcut in a session, it can be used in later sessions.
For a demonstration of the palette shortcut feature, see the YouTube video demonstrating the use of the palette shortcut feature to assign shortcuts to fingering.
Future Work
There is still more work to be done to make MuseScore completely accessible.
The following is a list of accessibility issues to be addressed in the future:
- The navigation commands, next-element and prev-element, do not traverse a few element types like frames and spacers.
- The screenreader does not read out the names of palette elements.
- There is a minor issue with the shortcut conflict detection of palette shortcuts. Also, adding shortcuts to master palette and custom palette elements is not currently supported.
- The Instrument dialog is not completely accessible using the tab key - the "Visible" checkbox in the instrument list cannot be accessed.
- Overall GUI navigation: A quick way to move keyboard focus between the score, Inspector, Palette, Toolbar, etc.