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

Add an "on-demand" speech mode #15804

Merged
merged 24 commits into from
Nov 27, 2023
Merged

Conversation

CyrilleB79
Copy link
Collaborator

@CyrilleB79 CyrilleB79 commented Nov 19, 2023

Link to issue number:

Closes #481

Summary of the issue:

In some situations, e.g. meetings or when an alternative information channel (braille, visual with magnification), the user does not want NVDA to provide speech feedback on actions such as moving the cursor or focus. But they still want to have NVDA speaking on specific request.

Description of user facing changes

Add a new speech "on demand" mode in the NVDA+S toggle command. When speech on demand is selected, NVDA does not provide a speech feedback for actions, but still speak on explicit request.

The criterion to determine if a command should speak in "on demand" mode is:

  • if the command is mainly to perform an action and the speech is only a feedback after this action, NVDA does not speak. Said otherwise, this command could have a usefulness when used blindly without any speech (or braille or visual) feedback
  • if the goal command is mainly to provide information without performing any other action, NVDA speaks.

Note: although say all commands move the cursor, they are speaking in the "on demand" mode since there is no point running them if speech is totally off.

Description of development approach

Notes for reviewers

  • Regarding UX, was it a good solution to add a fourth speech mode? There is already an add-on to remove the beep mode from the speech mode toggle command...
  • For documentation, what should be the correct name to use? "speech on demand", "speak on demand", etc. Also, speak or talk? @XLTechie would you mind review documentation (change log, user guide, command description)?
  • Do I need to include an API change item when extending the speech mode enum?

Testing strategy:

Manual tests of the modified scripts to support "on demand" mode:

  • All the say all scripts (caret, review, foreground window, row and column)
  • Most of the other modified scripts in global commands (all those having a default shortcut)
  • Word with and without UIA, Excel, poedit
  • Tested miranda32 and vipmud with a fake test renaming an executable since I have not these applications.

Foobar not tested.

Tested other scripts to check that they do not speak in "on demand" mode.

Known issues with pull request:

None

Code Review Checklist:

  • Documentation:
    • Change log entry
    • User Documentation
    • Developer / Technical Documentation
    • Context sensitive help for GUI changes
  • Testing:
    • Unit tests
    • System (end to end) tests
    • Manual testing
  • UX of all users considered:
    • Speech
    • Braille
    • Low Vision
    • Different web browsers
    • Localization in other languages / culture than English
  • API is compatible with existing add-ons.
  • Security precautions taken.

@AppVeyorBot
Copy link

See test results for failed build of commit 15f0b897a9

@Adriani90
Copy link
Collaborator

Great work on this! Really highly appreciated. Does include also application specific commands like changing formating in Ms Office etc.? These should be reported as well in my view.
Also such commands like changing nvda settings might be worthy to consider.
The beep mode by the way is very useful, especially when you work with 2 sessions of Nvda one on a local and one on a virtual machine, especially when it is not allowed to use the remote addon due to restrictions via security policies.
Naming this mode speech on demand totally makes sense, because it is consistent with other speech modes already in place.

@Adriani90
Copy link
Collaborator

In my view say all could be implemented on a later stage, if the users demand it. It should not prevent this PR from being merged.
But how should we handle reporting commands introduced by addons such as Windows magnifier addon? It would maybe make sense to include all commands which contain the nvda key except for the ones used for moving system focus, carret, review cursor, virtual cursor and mouse cursor. This includes also commands for navigation such as object navigation and review, jumping to last rows or columns in tables etc. or such commands for navigations introduced by addons such as golden cursor or objnav.
So maybe there could be a condition be implemented where NVDA looks for the movements of these cursors and then speech is not fired. Might be more efficient than the command by command implementation.

@LeonarddeR
Copy link
Collaborator

* Regarding UX, was it a good solution to add a fourth speech mode? There is already an add-on to remove the beep mode from the speech mode toggle command...

Could the speech modes be made opt out, at least the beeps and on demant modes? That would make the no beeps mode add-on obsolete, but I think that would be the best solution.

@CyrilleB79
Copy link
Collaborator Author

Thanks @LeonarddeR and @Adriani90

Answering to all:

Does include also application specific commands like changing formating in Ms Office etc.? These should be reported as well in my view.

If you are speaking about Office commands such as toggle bold (control+U), toggle italic (control+I), etc., they are not reported in "on demand" mode. Indeed these scripts perform an action. In the "on demand" mode however, only the script whose goal is to report an information are speaking. The scripts that perform an action indeed do not speak. The use case is the following. You are in a meeting so you do not want NVDA to speak when you write notes in Word. Thus NVDA does not speak when you type or when you change formatting (bold, etc.) so that you can perform these actions without being bothered by NVDA speech. If you explicitly want to know font formatting, you still can request it with NVDA+F. The same way, the time command (NVDA+F12) speaks because you have no reason to press this command without any speech feedback.
To summarize, the commands that speak in the "on demand" mode are those that would be useless when speech is muted and with no braille.

Also such commands like changing nvda settings might be worthy to consider.

For the same reason as before, they are not included, because you may want to toggle a parameter without being bothered by a speech feedback.

The beep mode by the way is very useful, especially when you work with 2 sessions of Nvda one on a local and one on a virtual machine, especially when it is not allowed to use the remote addon due to restrictions via security policies.

I do not contest the usefulness of the beep mode for some users. I was just worrying of the increasing number of speech mode, when the vast majority of users will use only two of them: normal speech and either off or "on demand".

Naming this mode speech on demand totally makes sense, because it is consistent with other speech modes already in place.

OK thanks for the positive feedback.

In my view say all could be implemented on a later stage, if the users demand it. It should not prevent this PR from being merged.

Agree with this plan if NV Access also agrees since this PR is already an improvement. Still, I will try to investigate the say all issue in the next days.

But how should we handle reporting commands introduced by addons such as Windows magnifier addon?

In the specific case of Windows Magnifier add-on, all the commands speak after an associated action, e.g. move something, change a setting, etc. Thus they should be muted in the "on demand" mode.

More generally however, the add-on authors may use the "speakOnDemand" parameter of the script decorator to indicate if their scripts should speak when speech mode is "on demand".

It would maybe make sense to include all commands which contain the nvda key except for the ones used for moving system focus, carret, review cursor, virtual cursor and mouse cursor. This includes also commands for navigation such as object navigation and review, jumping to last rows or columns in tables etc. or such commands for navigations introduced by addons such as golden cursor or objnav. So maybe there could be a condition be implemented where NVDA looks for the movements of these cursors and then speech is not fired. Might be more efficient than the command by command implementation.

The use or not of NVDA key is and should not be a criterion since keys could be reassigned.

More generally, you seem to have an idea of something more verbose than I regarding the "speech on demand" mode. The mode as I have implemented it seems to match more or less the one in Jaws; thus, I imagine (since it is not so new), that the use case has been confirmed among users. If there is a need though, we may imagine different levels of verbosity for the "on demand" mode. To define a different verbosity, please provide a concrete use case as well as a precise criterion to determine if a given command (script) should speak or not.

* Regarding UX, was it a good solution to add a fourth speech mode? There is already an add-on to remove the beep mode from the speech mode toggle command...

Could the speech modes be made opt out, at least the beeps and on demant modes? That would make the no beeps mode add-on obsolete, but I think that would be the best solution.

Technically, all can be done. I am asking from a UX point of view. Is it better to add a new GUI control so that people can choose which speech mode is available in NVDA+S command? Or is it just cluttering the GUI with a parameter considered obscure for most users? In the latter case, the "no beep speech mode" add-on could be improved to provide this feature for those who need it (cc @ABuffEr).

@XLTechie
Copy link
Collaborator

XLTechie commented Nov 20, 2023 via email

@CyrilleB79
Copy link
Collaborator Author

I have just added say all scripts and input help in the "on demand" mode and updated the dev doc. And I have updated the initial description according to these last changes and also included relevant information from our discussion.

Regarding a configuration to filter the speech modes available in NVDA+S loop, I prefer to wait for NV Access review before implementing something. I am not totally convinced that it's the best way to handle the "too many speech modes" issue.
As an alternative, we can also merge this PR as is and think to the number of speech modes in NVDA+S while it is tested in alpha since a solution can easily be merged later in alpha cycle (or even after 2024.1) so that we get more feedback.

@ABuffEr
Copy link
Contributor

ABuffEr commented Nov 20, 2023

Hi,
about UX, I agree to have two checkbox, like "Include beeps in speech modes" and "Include on-demand in speech modes"; about checked status, maybe it'll be better both checked, to warn users about all actually available modes.
Anyway, I'll be absolutely happy to pension NoBeepsSpeechMode 😁

@CyrilleB79 CyrilleB79 marked this pull request as ready for review November 20, 2023 16:33
@CyrilleB79 CyrilleB79 requested review from a team as code owners November 20, 2023 16:33
source/appModules/miranda32.py Show resolved Hide resolved
source/appModules/vipmud.py Show resolved Hide resolved
source/scriptHandler.py Outdated Show resolved Hide resolved
source/scriptHandler.py Outdated Show resolved Hide resolved
source/scriptHandler.py Outdated Show resolved Hide resolved
source/speech/speech.py Outdated Show resolved Hide resolved
@LeonarddeR
Copy link
Collaborator

I would personally go for a checkable list, similar to the NVDA modifier keys list.

@lukaszgo1
Copy link
Contributor

I have created #15806 to discuss configurability of speech modes switching.

@Adriani90
Copy link
Collaborator

Adriani90 commented Nov 20, 2023

we may imagine different levels of verbosity for the "on demand" mode.

I think this might indeed make things to complicated. My use case was not really well developped yet in my mind, I think your approach suits better as it is. I guess if users need more commands to speak in on demand mode, then this can be implemented later on.

I would personally go for a checkable list, similar to the NVDA modifier keys list.

I like this idea as well. The less we have to tab through dialogs, the better. :-) However, there is a risk with these checkboxes: imagine a new user disables by accident the speech mode speak and presses nvda+s afterwards, NVDA would change to one of the less verbose or no verbose modes. There is no way of enabling the speak mode again unless you know the menu structure by hard or you use on demand mode to report the currently focused object with a command to include speech mode speak again into the nvda+s command but this does not feel intuitive.

Another better alternative in my view would be to let both speech mode speak and speech mode off as they are, and include also a speech mode category in the synth settings ring which contains all 4 speech modes. Then, in case you enable speech mode on demand, beeps or off from the synth settings ring, pressing nvda+s switches to speech mode speak again. So speech mode speak has always priority when pressing nvda+s.

@Adriani90
Copy link
Collaborator

Ofcourse my proposal would mean we have to enhance the synth settings ring to a speech and synth settings ring but this would improve things anyway.

@codeofdusk
Copy link
Contributor

Other than some question as to whether it should be "on-demand" instead of "on demand"

"on demand"

@CyrilleB79
Copy link
Collaborator Author

In the end, I have added a paragraph in section 4 of the User Guide. Not in section 12 since section 12 describes the GUI (menus and dialogs) whereas this option is not configurable through dialogs.

Since the description of each mode is now in the User Guide, I have shortened the input help which was way too long: I have removed the descriptions of each speech mode from input help. @XLTechie, I have taken into account your review on the input help to write the paragraph in the User Guide.

@CyrilleB79 CyrilleB79 marked this pull request as ready for review November 22, 2023 22:10
Copy link
Member

@seanbudd seanbudd left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks @CyrilleB79

* Talk: NVDA will just speak normally. This is the default speech mode.
* On-demand: NVDA will only speak when calling commands whose goal is to speak an information (e.g. report the title of the window); but it will not speak in reaction to actions such as moving the focus or the cursor.
* Off: NVDA will not speak anything.
* Beeps: NVDA will replace normal speech with quiet beeps.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I believe these lists also need a terminator. Is there a reason * was used over -?

Suggested change
* Beeps: NVDA will replace normal speech with quiet beeps.
* Beeps: NVDA will replace normal speech with quiet beeps.
*

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for the formatting fix. No reason to use * instead of -. I'll change it.

* Talk: NVDA will just speak normally. This is the default speech mode.
* On-demand: NVDA will only speak when calling commands whose goal is to speak an information (e.g. report the title of the window); but it will not speak in reaction to actions such as moving the focus or the cursor.
* Off: NVDA will not speak anything.
* Beeps: NVDA will replace normal speech with quiet beeps.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I believe these lists also need a terminator. Is there a reason * was used over -?

Suggested change
* Beeps: NVDA will replace normal speech with quiet beeps.
* Beeps: NVDA will replace normal speech with quiet beeps.
*

* Off: NVDA will not speak anything.
* Beeps: NVDA will replace normal speech with quiet beeps.

A gesture allows to cycle through the various speech modes:
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
A gesture allows to cycle through the various speech modes:
A gesture allows cycling through the various speech modes:

Copy link
Collaborator

@XLTechie XLTechie left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm pretty sure this command should no longer be called a toggle. You can't toggle between multiple options, not in the normal usage of that word (N.B. I am aware of three position toggle switches, but that's not how people normally understand it, I think).

@@ -2008,18 +2023,15 @@ def script_review_currentSymbol(self,gesture):
@script(
description=_(
# Translators: Input help mode message for toggle speech mode command.
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Shouldn't this now be "cycle speech modes command", or "Switch to next speech mode command"? It is no longer a toggle.

Suggested change
# Translators: Input help mode message for toggle speech mode command.
# Translators: Input help mode message for switch to next speech mode command.

"When set to off NVDA will not speak anything. "
"If beeps then NVDA will simply beep each time it its supposed to speak something. "
"If talk then NVDA will just speak normally."
"Toggles between the speech modes of off, beep, talk and on-demand."
),
category=SCRCAT_SPEECH,
gesture="kb:NVDA+s"
)
def script_speechMode(self,gesture):
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can this be linted?

@@ -10,6 +10,8 @@ What's New in NVDA
- Added support for Bluetooth Low Energy HID Braille displays. (#15470)
- The Add-on Store now supports installing add-ons in bulk by selecting multiple add-ons. (#15350)
- From the add-on store, it's possible to open a dedicated webpage to see or provide feedback about the selected add-on. (#15576, @nvdaes)
- A new "on-demand" speech mode has been added.
When speech is on-demand, NVDA does not speak automatically (e.g. when moving the cursor) but still speaks when calling commands whose goal is explicitly to report something (e.g. report window title). (#481, @CyrilleB79)
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should this be referencing the issue number or the PR number?

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I have put the issue number as it is usually done. If you see a good reason to use the PR number here instead, please let it know.
In any case, someone who want to find the PR will find the reference in the issue.


There are four speech modes available.
* Talk: NVDA will just speak normally. This is the default speech mode.
* On-demand: NVDA will only speak when calling commands whose goal is to speak an information (e.g. report the title of the window); but it will not speak in reaction to actions such as moving the focus or the cursor.
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Since I suspect you will change this to a hyphenated list, I have used that in the below to make it easy to apply my suggestion if you otherwise like it.

I have removed "an information" because "information" is plural in English. I have replaced "calling" (which is often understood in technical circles but may not be how users think of command use), with a more user friendly term.
Lastly, I have added some further clarification about what this mode does.

Suggested change
* On-demand: NVDA will only speak when calling commands whose goal is to speak an information (e.g. report the title of the window); but it will not speak in reaction to actions such as moving the focus or the cursor.
- On-demand: NVDA will only speak when you use commands which speak information (e.g. report the title of the window); but it will not speak in reaction to actions such as moving the focus or the cursor; and will not speak any screen changes, notifications, etc.

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'll take this comment into account. But I want to keep the idea that the goal of the command is to report information. Writing "a command which speaks information" is too broad in my view.

* Talk: NVDA will just speak normally. This is the default speech mode.
* On-demand: NVDA will only speak when calling commands whose goal is to speak an information (e.g. report the title of the window); but it will not speak in reaction to actions such as moving the focus or the cursor.
* Off: NVDA will not speak anything.
* Beeps: NVDA will replace normal speech with quiet beeps.
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I know "quiet" was my word, but it was a mistake.
Also, I have added some explanatory paragraphs about beeps and on-demand modes, since people are always asking what beeps mode is good for.
Lastly, I have used a hyphen for the list marker, and closed the list, since I think you will likely replace the stars used on the other items.

Suggested change
* Beeps: NVDA will replace normal speech with quiet beeps.
- Beeps: NVDA will replace normal speech with short beeps.
-
Beeps mode may be useful when some very verbose output is scrolling in a terminal window, but you don't care what it is, only that it is continuing to scroll; or in other circumstances when the fact that there is output is more relevant than the output itself.
The on-demand mode may be valuable when you don't need constant feedback about what is happening on screen or on the computer, but you periodically need to check particular things using review commands, etc.
Examples include while recording audio, when using screen magnification, or as an alternative to beeps mode.

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks. I'll include it and add one more example: during a meeting or a call.

@@ -4049,7 +4062,7 @@ Please see the display's documentation for descriptions of where these keys can
| Route to braille cell | ``routing`` |
| Report text formatting under braille cell | ``secondary routing`` |
| Toggle the way context information is presented in braille | ``attribute1+attribute3`` |
| Toggles between the speech modes of off, beep and talk | ``attribute2+attribute4`` |
| Toggles between the speech modes of off, beep, speech and on-demand | ``attribute2+attribute4`` |
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
| Toggles between the speech modes of off, beep, speech and on-demand | ``attribute2+attribute4`` |
| Toggles between the speech modes of off, beeps, talk and on-demand | ``attribute2+attribute4`` |

@wmhn1872265132
Copy link
Contributor

It is recommended that the table introducing the Toggles the speech mode shortcut keys in the user guide be simplified into three columns: Name, Key, and Description to enhance the reading experience.

Copy link
Member

@Qchristensen Qchristensen left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good. I made one small suggestion

++ Speech modes ++[SpeechModes]

There are four speech modes available.
* Talk: NVDA will just speak normally. This is the default speech mode.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Small thing, but I don't like using "just" here. Someone will be reading the user guide because they don't know how things work and "just", to me, implies it is something they should have already known (there are articles on this such as https://www.excitant.co.uk/just-is-a-dangerous-word/ ). Perhaps:

Talk: The Default speech mode, NVDA speaks in reaction to actions such as moving the focus, notifications, or issuing commands.

Also, for consistency, should this group be in the same order as the command itself and the list on line 4065 (last change in this PR)

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I agree with @Qchristensen here. I had removed "just" in my original suggestion on the input help text for this, but it slipped back in to the user guide version. I figured @CyrilleB79 really wanted it there, so I didn't comment further.

Suggested change
* Talk: NVDA will just speak normally. This is the default speech mode.
- Talk: NVDA will speak normally in reaction to screen changes, notifications, and actions such as moving the focus, or issuing commands.

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@XLTechie, I had missed this from your feedback, but keeping "just" was not intended. Thanks for having insisted on this point.

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@Qchristensen wrote:

Also, for consistency, should this group be in the same order as the command itself and the list on line 4065 (last change in this PR)

Yes for consistency, provided "Talk" is in first position since it is the normal mode.

There are four speech modes available.
* Talk: NVDA will just speak normally. This is the default speech mode.
* On-demand: NVDA will only speak when calling commands whose goal is to speak an information (e.g. report the title of the window); but it will not speak in reaction to actions such as moving the focus or the cursor.
* Off: NVDA will not speak anything.
Copy link
Collaborator

@XLTechie XLTechie Nov 23, 2023

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
* Off: NVDA will not speak anything.
- Off: NVDA will not speak anything, however unlike sleep mode it will silently react to commands.

@Adriani90
Copy link
Collaborator

Adriani90 commented Nov 23, 2023 via email

@CyrilleB79
Copy link
Collaborator Author

Thanks @XLTechie, @Qchristensen, @Adriani90, @wmhn1872265132 and @seanbudd for all these valuable ideas and comments to improve the documentation.

I have tried to take into account the ideas from everyone which were very valuable.

Let me know if some point is still missing.

@AppVeyorBot
Copy link

See test results for failed build of commit 38283b3e1a

Copy link
Collaborator

@XLTechie XLTechie left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

One final comment for your possible consideration, but either way LGTM!
Thanks for going back and forth with me and others over the details.

user_docs/en/userGuide.t2t Outdated Show resolved Hide resolved
@CyrilleB79 CyrilleB79 changed the title Add a speech "on demand" mode Add an "on-demand" speech mode Nov 25, 2023
Co-authored-by: Luke Davis <8139760+XLTechie@users.noreply.github.com>
user_docs/en/userGuide.t2t Outdated Show resolved Hide resolved
user_docs/en/userGuide.t2t Outdated Show resolved Hide resolved
Copy link
Member

@Qchristensen Qchristensen left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Look good, great work everyone!

@seanbudd seanbudd merged commit c6489a3 into nvaccess:master Nov 27, 2023
1 check was pending
@nvaccessAuto nvaccessAuto added this to the 2024.1 milestone Nov 27, 2023
@CyrilleB79 CyrilleB79 deleted the speechOnDemand branch November 27, 2023 21:22
seanbudd pushed a commit that referenced this pull request Dec 8, 2023
…15873)

Closes #15806

Summary of the issue:
NVDA allows to change the currently used speech mode by pressing NVDA+s. By default this gesture cycles between 'talk', 'beeps', 'on-demand' and 'no speech'. For many users having ability to switch to beeps or on demand is unnecessary, and they have no need for modes different than speech and no speech. For other beeps mode is certainly useful, but it is much more important to be able to quickly switch between speech and no speech, so beeps mode just makes the goal slower to achieve. With the introduction of fourth speech mode in #15804 it has been decided that users should be given ability to disable speech modes they do not need to use.

Description of user facing changes
The new checkable list containing all speech modes (all are initially checked)has been added into the Speech settings panel. When switching between modes with NVDA+s only modes which are checked in the list are included. When applying settings selected modes are validated, to make sure at least two modes are checked. When the 'talk' mode is disabled user is warned that they may be left without any speech.

Description of development approach
Configuration spec has been expanded to store list of disabled modes - this ensures that if any new mode is added to NVDA it is enabled by default in the cycling script. Speech settings panel now contains a list of all the speech modes, only enabled one are checked. When introducing validation for the speech settings panel it has been discovered that code responsible for checking panel's validity displays a warning about it being invalid, prevents saving invalid config, yet after dismissing the warning settings dialog gets closed. Since this is not optimal validation for settings dialog has been modified, so that after warning is dismissed settings remain open, and the invalid control is focused. The cycling script has been modified to only cycle between enabled modes. Unit tests verifying its behavior, both when no modes are disabled (the default) and some are disabled, were added. To make them work it has been necessary to perform a small modification to the method which lists configuration profiles in the config module, it assumed that profiles directory always exists, which is not true in unit tests. Now when the directory is missing appropriate warning is logged, and empty list is returned. User guide has been expanded to describe newly added control.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
conceptApproved Similar 'triaged' for issues, PR accepted in theory, implementation needs review.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Mute automatic speech feedback