-
-
Notifications
You must be signed in to change notification settings - Fork 652
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 "Only in edit controls" mode for typing echo #17505
base: master
Are you sure you want to change the base?
Conversation
Great work on this, thank you. |
I think this needs a changelog entry as well. |
See test results for failed build of commit 8a5bed9868 |
See test results for failed build of commit 259e6d5452 |
Very nice addition @cary-rowen! Thanks. I have some questions:
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@cary-rowen , thanks for this.
I think that you may add a helper function in globalCommands, similar to the toggleBooleanValue
function, for config flags, and use it for toggling typed characters and words.
For reference, see toggleBooleanValue
in globalCommands.py
, introduced in PR #16994
…olean to integer conversion.
Hi @CyrilleB79
Could you please confirm if these behaviors are what you're asking about, and what the expected behavior should be in these cases? Many thanks |
Regarding default settings, I'd also love to hear suggestions from NV Access, I'd personally like to see new options provided as defaults for the same reasons as @CyrilleB79. @nvdaes |
@cary-rowen IMO, the expected behaviour with the new option in ssh password case and in read-only edit fields such as synthesizer is that NVDA should not speak anything since nothing is actually visible on the screen. |
thaaaaanks! should I really beleave that from now on we can get rid of the t. This pc 10 of 18, or space. playback stopped, and space. Playback resumed, with out needing to install the best ever addon made by @cary-rowen that addon was the best, because I alwayes liked and needed to keep typed characters and words, but I hated how they are announced everywhere, I was thinking, how stupid, the option it self is called speeck ('"typed"') characters and words, but why whe were hearing it everywhere? whe are not typing anything! whe are using our keyboard to use and explor our computer! but from now on, at least we don't have to use an addon to solv this really annoying this. And, really thank you @cary-rowen for resolving such problem for us until now. befor your addon releace on the stor, I was using an old and less buggy vertion of an unknown addon called typing settings to solv this for my self. greate feature! |
@cary-rowen speaking typed characters outside of edit fields does not make sense anyway, because they are not typed, but only pressed. For that we have the input help feature already if people need to learn the keyboard layout outside of edit fields. |
@Adriani90 hi. No, I also don't agree for removal of that in my opinion because, input help is a thing, but this is stil needed for some people where they need to press some keys and need to be announced for them what they've preased and what came up, or what happened as a result, while some newbie people need to turn on input help, press a fue keys that they need, and turn of input help, and make sure they've pressed or pressing the correct key. Also, for a groupe of users with old habit, better to not remove it but rename it instead for example, from on, to everywhere. so the options are as folows. off, in edit boxes only, everywhare. |
@CyrilleB79
I agree that there shouldn't be any feedback in the read-only edit box after enabling the new options introduced by this PR. This is currently as expected. cc @seanbudd |
I agree with @amirmahdifard I am totally not in favor of removing the original mode. |
It's worth noting that visually, nothing appears on the screen. It's quite a bad design IMO, because users cannot know if and how many characters they enter (or delete) when pressing a key. Though, sighted people and blind ones are equally impacted in this case. IMO, this issue should not be a reason to hold off this PR. |
@cary-rowen but, if you haven't allready, please rename the "on" to everywhere" because on does not have any meaning anymore in this cace, because both ways are on, but we are only indicating where to announce the characters and words. In edit boxes only, everywhere, or off "do not announce anywhere at all". Thanks. Once that's done, this pr is completely done and ok like the addons which were tryed to impliment this feature. this is ready to go and i'm gonna excitedly wait for the next releace which I can uninstall addon and have this feature natively with in nvda it self. |
Not very important, but
Rather than "Everywhere", I would probably call it "Always" to contrast with the "Only" of "Only in edit controls".
I personally agree with the suggestion to make "only" the new default, or upgraded version of the current "enabled" state.
By far, I think this is what users would have wanted "enabled" to mean all along, and it doesn't seem to be a very harmful change even if someone dislikes it.
|
However, I would like to have feedback when typing the password in ssh
Doesn't the "Speak passwords in all enhanced terminals" setting in Advanced, already cover this situation?
|
@XLTechie
Yes, I guess it makes intuitive sense that we should report passwords in this mode as long as the user explicitly enables the Report Passwords option in the advanced settings. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Could the "everywhere" mode be renamed to "always" as others have suggested, too?
# Translators: This is the label for a checkbox in the | ||
# keyboard settings panel. | ||
charsText = _("Speak typed &characters") | ||
self.charsCheckBox = sHelper.addItem(wx.CheckBox(self, label=charsText)) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Should the removal of self.charsCheckBox
be documented in the API breaking changes of the change log? Idem for words?
Though, I am not sure that we have always respected the API when modifying the GUI in non-.1 releases in the past...
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think we should do this to be safe.
Thanks @SaschaCowley and @CyrilleB79 for the review. As @CyrilleB79 commented:
I'm not sure about this. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Please also update the copyright headers of any files you have touched to reflect that they have been modified in 2025.
ALWAYS = 1 | ||
EDIT_CONTROLS = 2 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Can these be swapped?
- It feels more intuitive to me that less reporting should be a lower value.
- I think the order in the UI should probably be "Off", "Only in edit controls", "Always".
# 0: Off, 1: Always, 2: Only in edit controls | ||
speakTypedCharacters = integer(default=2,min=0,max=2) | ||
# 0: Off, 1: Always, 2: Only in edit controls | ||
speakTypedWords = integer(default=2,min=0,max=2) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Please change this back to defaulting to off (0
).
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Please bump the schema version to 15 so that alpha users don't get hit with a corrupt config.
# Translators: Input help mode message for toggle speaked typed characters command. | ||
description=_("Toggles on and off the speaking of typed characters"), | ||
# Translators: Input help mode message for cycling the reporting of typed words. | ||
description=_("Cycle the reporting of typed characters: Off, Always, and Only in edit controls."), |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
description=_("Cycle the reporting of typed characters: Off, Always, and Only in edit controls."), | |
description=_("Cycles through options for when to speak typed characters."), |
|
||
@script( | ||
# Translators: Input help mode message for toggle speak typed words command. | ||
description=_("Toggles on and off the speaking of typed words"), | ||
description=_("Cycle the reporting of typed words: Off, Always, and Only in edit controls."), |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
description=_("Cycle the reporting of typed words: Off, Always, and Only in edit controls."), | |
description=_("Cycles through options for when to speak typed words."), |
"""Check if the currently focused object is editable. | ||
@return: C{True} if the focused object is editable, C{False} otherwise. | ||
@rtype: bool | ||
""" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Please rewrite this to be in sphinx style
"""Check if the currently focused object is editable. | |
@return: C{True} if the focused object is editable, C{False} otherwise. | |
@rtype: bool | |
""" | |
"""Check if the currently focused object is editable. | |
:return: ``True`` if the focused object is editable, ``False`` otherwise. | |
""" |
@@ -50,6 +50,7 @@ To use this feature, "allow NVDA to control the volume of other applications" mu | |||
* Updated CLDR to version 46.0. (#17484, @OzancanKaratas) | |||
* Short versions of the most commonly used command line options have been added: `-d` for `--disable-addons` and `-n` for `--lang`. | |||
Prefix matching on command line flags, e.g. using `--di` for `--disable-addons` is no longer supported. (#11644, @CyrilleB79) | |||
* The keyboard settings for "Speak typed characters" and "Speak typed words" now have three options: Off, Always, and Only in edit controls. (#17505, @Cary-rowen) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Can you please document that the new default is "Only in edit controls"?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Please document the change of config spec, and the removal of the speak typed characters/words checkboxes from the GUI, in the changes for developers.
@@ -2590,15 +2590,25 @@ If no key is chosen as the NVDA key it may be impossible to access many NVDA com | |||
|
|||
Key: NVDA+2 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Key: NVDA+2 | |
Key: `NVDA+2` |
|
||
* Off: NVDA will not announce typed characters. | ||
* Always: NVDA will announce all typed characters. | ||
* Only in edit controls: NVDA will only announce characters typed in edit controls and other areas where text can be typed. | ||
|
||
<!-- KC:setting --> | ||
|
||
##### Speak Typed Words {#KeyboardSettingsSpeakTypedWords} | ||
|
||
Key: NVDA+3 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Key: NVDA+3 | |
Key: `NVDA+3` |
Link to issue number:
Fixes #16848, related #10331, #3027
Summary of the issue:
Currently NVDA can only toggle typing echo (characters and words) on or off globally. Users want more granular control to only have typing feedback in edit controls, while keeping it off in other contexts like listss or non-edit areas.
Description of user facing changes
Description of development approach
The implementation:
Testing strategy:
Tested the following scenarios:
Known issues with pull request:
None identified.
Code Review Checklist:
@coderabbitai summary