Add an option to prevent speech being interrupted while scrolling the braille display#13131
Conversation
…lling the braille display. This is enabled by default to preserve the old behavior.
|
It seems I'm unable to assign any additional reviewers to this. I consider this ready for review, but would like to hear what @LeonarddeR, @dkager and @AAClause think about this since they have been commenting on the issue. |
|
I wonder, would you mind implementing a solution that allows overriding the speech effect on the script rather than on the gesture? I find it slightly ugly that this has to be done on the gesture level, though it is currently by design. However, the current implementation isn't going to work with the SuperBraille braille display, for example. |
|
While I agree with Leonard, I must also say this patch is elegantly compact. Though matching on script name is perhaps not as robust as introducing a variable to determine whether it is a scrolling command. |
|
Adding an The Superbraille is a bit of an edge case I didn't consider. That being said, I think this option should work regardless of what the source of the gesture is. That raises the question where to put this behavior. I don't really like adding side effects to scripts (see above), so that would mean we implement this in the base class of all gestures. |
Shouldn't wat the gesture does be determined by the script, and shouldn't the script determine what to do with speech? |
Qchristensen
left a comment
There was a problem hiding this comment.
That last line in the userGuide.t2t change could be a little ambiguous - maybe split into two sentences?
|
Sorry @bramd - we need a chance to suggest an alternative implementation. |
|
I've pushed some changes to add Tags to the scriptHandler API. This new approach still needs testing. |
|
Would anybody be able to test the code? Requested @feerrenrut review for the API change I have introduced to scriptHandler |
This comment was marked as off-topic.
This comment was marked as off-topic.
Qchristensen
left a comment
There was a problem hiding this comment.
User Guide reads well, good work.
|
I'm going to also add notes on this in the user guide. |
|
@feerrenrut - can you review the user guide changes and update to the PR description? |
feerrenrut
left a comment
There was a problem hiding this comment.
Can you update the title of the PR to be relative to the added behavior.
The pre-existing behavior is to interrupt, so perhaps: No speech interrupt for scroll braille command
The following seems ambiguous to me:
Previous/next line commands are not affected.
Perhaps this means the new user preference does not change the behavior of these commands, or that these commands don't interrupt speech in the first place.
| This setting determines if speech should be interrupted when the Braille display is scrolled backwards/forwards. | ||
| Previous/next line commands are not affected. | ||
|
|
||
| Speech may be found distracting while reading Braille. | ||
| As such, this option is enabled by default, interrupting speech when scrolling. | ||
|
|
||
| Disabling this option allows speech to be read along with Braille. | ||
|
|
There was a problem hiding this comment.
A general question:
- Is "interrupting" a clear enough term for user?
- Are there any/few/many prior usages of "Interrupt" is there with regards to speech?
-
- Would "stopping/stopped/cancelled" be clearer?
| This setting determines if speech should be interrupted when the Braille display is scrolled backwards/forwards. | |
| Previous/next line commands are not affected. | |
| Speech may be found distracting while reading Braille. | |
| As such, this option is enabled by default, interrupting speech when scrolling. | |
| Disabling this option allows speech to be read along with Braille. | |
| This setting determines if speech should be interrupted when the Braille display is scrolled backwards/forwards. | |
| Previous/next line commands always interrupt speech. | |
| On-going speech might be a distraction while reading Braille. | |
| For this reason the option is enabled by default, interrupting (stopping) speech when scrolling braille. | |
| Disabling this option allows speech to be heard while simultaneously reading Braille. |
There was a problem hiding this comment.
For other example of the word "interrupt" with speech, see the following options:
|
I also made some edits directly to the description. Please check the history. |
|
@feerrenrut - The edits to the description appear fine, I have also pushed changes to the user guide. |
Qchristensen
left a comment
There was a problem hiding this comment.
User guide change reads well.
See test results for failed build of commit 2185a6f716 |
See test results for failed build of commit 2185a6f716 |
Link to issue number:
Fixes #2124
Summary of the issue:
Some people prefer to be able to read in braille while still listening to the speech output for the current line/object. This is currently not possible, because every braille gesture will interrupt speech.
Description of user facing changes
Adds a new setting: "Interrupt speech while scrolling", default is "enabled".
The new setting determines if speech should be interrupted when the Braille display is scrolled backwards/forwards.
Previous/next line commands are not affected.
This is added as an option because some speech+braille users prefer a bimodal interaction pattern.
To preserve the existing behavior, the option is enabled by default, interrupting speech when scrolling.
Description of how this pull request fixes the issue:
Add an option to interrupt speech while the display is being scrolled.
This option is enabled by default, so the previous behavior is preserved.
This implementation only works for scroll previous/next display and does not affect other gestures such as previous/next line.
Testing strategy:
Tested using a Handy Tech braille display by turning this setting off/on and checking if the behavior was as expected. No unit tests or system tests have been added.
Known issues with pull request:
This can't be tested without a braille display: blocked by #13917
Change log entries:
Refer to diff
Code Review Checklist: