Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Screen Reader status messages #6173

Merged
merged 3 commits into from
Jun 9, 2020
Merged

Conversation

shoogle
Copy link
Contributor

@shoogle shoogle commented Jun 6, 2020

Resolves:

Sends status messages to the screen reader to inform the user about actions such as:

  • Changing mode (e.g. to note entry mode)
  • Cursoring over characters and words during text editing
  • Adding/removing elements via keyboard shortcuts (e.g. Shift+S for staccato dot)

Maybe it's a bit cheeky to add new features to 3.5 at this late stage, but this is a major win for accessibility and has zero impact on non-blind users.

  • I signed CLA
  • I made sure the code in the PR follows the coding rules
  • I made sure the code compiles on my machine
  • I made sure there are no unnecessary changes in the code
  • I made sure the title of the PR reflects the core meaning of the issue you are solving
  • I made sure the commit message(s) contain a description and answer the question "Why do those changes fix that particular issue?" or "Why are those changes really necessary as improvements?"
  • I made sure the commit message title starts with "fix #424242:" if there is a related issue
  • [N/A] I created the test (mtest, vtest, script test) to verify the changes I made

libmscore/textbase.cpp Outdated Show resolved Hide resolved
@MarcSabatella
Copy link
Contributor

Looking forward to trying this out! I'll try to get it going on Linux tomorrow, Windows Monday. I assume that's too late for 3.5 beta, but maybe not for the final release, or for 3.5.1 or whatever.

Creates an 'accessibleMessage' string and demonstrates its use by
providing a status message when switching to note input mode.

The 'accessibleMessage' string is different to the pre-existing
'accessibleInfo' string that provides information about the selected
element(s). Two strings are needed because changes to the 'info' string
are calculated based on its previous value, hence this value must not
be overwritten by other messages.
@shoogle shoogle force-pushed the rnib-text-editing branch 2 times, most recently from 0c7a4db to a946a2e Compare June 8, 2020 07:52
When navigating textual elements (e.g. staff text) with the cursor
keys during editing, the screen reader will announce the name of the
character or word to the right of the caret (text cursor). It also
announces when characters are selected or deselected.
@shoogle shoogle changed the title [WIP] Screen Reader status messages Screen Reader status messages Jun 8, 2020
@shoogle shoogle marked this pull request as ready for review June 8, 2020 08:40
@shoogle shoogle mentioned this pull request Jun 8, 2020
12 tasks
@anatoly-os anatoly-os merged commit 52a9b9e into musescore:3.x Jun 9, 2020
@shoogle shoogle deleted the rnib-text-editing branch June 9, 2020 11:21
anatoly-os added a commit that referenced this pull request Jun 10, 2020
shoogle added a commit to shoogle/MuseScore that referenced this pull request Jun 12, 2020
Fixes regression caused by commit 3960396 in PR musescore#6173.
shoogle added a commit to shoogle/MuseScore that referenced this pull request Jun 12, 2020
Fixes regression caused by commit 3960396 in PR musescore#6173.

The accessibleMessage string is cleared in the function
AccessibleScoreView::text(), but that function only gets called if
there is a screen reader running. If there is no screen reader then
accessibleMessage would never be emptied after it was first set, hence
currentInfoChanged() was never called to set the status bar text.
shoogle added a commit to shoogle/MuseScore that referenced this pull request Jun 12, 2020
Also fixes an accessibility bug in commit 3960396 in PR musescore#6173 which
caused the screen reader to say "note input mode" periodically rather
than just once upon entering that mode. This was due to setModeText()
being called with the same value as before.
shoogle added a commit to shoogle/MuseScore that referenced this pull request Jun 12, 2020
Fixes regression caused by commit 3960396 in PR musescore#6173.

The accessibleMessage string is cleared in the function
AccessibleScoreView::text(), but that function only gets called if
there is a screen reader running. If there is no screen reader then
accessibleMessage would never be emptied after it was first set, hence
currentInfoChanged() was never called to set the status bar text.
shoogle added a commit to shoogle/MuseScore that referenced this pull request Jun 12, 2020
Also fixes an accessibility bug in commit 3960396 in PR musescore#6173 which
caused the screen reader to say "note input mode" periodically rather
than just once upon entering that mode. This was due to setModeText()
being called with the same value as before.
shoogle added a commit to shoogle/MuseScore that referenced this pull request Jun 15, 2020
Fixes an accessibility bug in commit 3960396 in PR musescore#6173 that caused
the screen reader to say "note input mode" periodically rather than
just once upon entering that mode. This interfered with the usual
screen reader output for that mode.

Also displays mode text for "Normal mode".
shoogle added a commit to shoogle/MuseScore that referenced this pull request Jun 17, 2020
Fixes regression caused by commit 3960396 in PR musescore#6173.

The accessibleMessage string is cleared in the function
AccessibleScoreView::text(), but that function only gets called if
there is a screen reader running. If there is no screen reader then
accessibleMessage would never be emptied after it was first set, hence
currentInfoChanged() was never called to set the status bar text.
shoogle added a commit to shoogle/MuseScore that referenced this pull request Jun 17, 2020
Changes:

- Display mode text for "Normal mode".

- Avoid screen reader output on entering playback mode so that the
  screen reader does not talk over the music.

Also fixes an accessibility bug in commit 3960396 in PR musescore#6173 that
caused the screen reader to say "note input mode" periodically rather
than just once upon entering that mode. This interfered with the usual
screen reader output for that mode, as reported in #306726.
anatoly-os added a commit that referenced this pull request Aug 3, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants