Skip to content

Possibility to have no more NVDA key defined #14527

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

Closed
CyrilleB79 opened this issue Jan 10, 2023 · 0 comments · Fixed by #14528
Closed

Possibility to have no more NVDA key defined #14527

CyrilleB79 opened this issue Jan 10, 2023 · 0 comments · Fixed by #14528
Labels
p3 https://github.com/nvaccess/nvda/blob/master/projectDocs/issues/triage.md#priority triaged Has been triaged, issue is waiting for implementation. ux
Milestone

Comments

@CyrilleB79
Copy link
Collaborator

Note: issue similar to #14170.

Steps to reproduce:

  1. Start NVDA with a brand new empty config: nvda -c %tmp%\nvda_folder_that_does_not_exist_yet
  2. In the welcome dialog, check the checkbox to use capslock as NVDA key
  3. In the input gesture dialog, add a shortcut key to open keyboard parameters, which does not involves NVDA key, e.g. shift+space.
  4. Open Notepad
  5. Create an application profile for Notepad
  6. Open keyboard parameters dialog
  7. In the list to select NVDA modifier keys in keyboard params, uncheck Insert and Numpad Insert, then validate
  8. Alt+Tab to an app other than Notepad, e.g. Windows Explorer
  9. Open keyboard parameters dialog
  10. In the list to select NVDA modifier keys in keyboard params, uncheck Insert and caps lock, then validate.
  11. Alt+Tab to notepad and try to use caps lock, insert or numpad insert as NVDA key
  12. Open keyboard parameters dialog

Actual behavior:

  • At step 11, there is no NVDA key at all.
  • At step 12, we confirm that no key is configured as NVDA key

Expected behavior:

In NVDA keyboard parameters dialog, when unchecking the 3 possible NVDA keys and validating, there is an error message indicating that at least one should be selected. Thus, there should not be any other mean to have them unchecked all three.

NVDA logs, crash dumps and other attachments:

None

System configuration

NVDA installed/portable/running from source:

Installed

NVDA version:

2022.4

Windows version:

Windows 10 20H2 (AMD64) build 19042.2251

Name and version of other software in use when reproducing the issue:

None

Other information about your system:

N/A

Other questions

Does the issue still occur after restarting your computer?

Yes

Have you tried any other versions of NVDA? If so, please report their behaviors.

Yes, already tested on NVDA 2022.3.x

If NVDA add-ons are disabled, is your problem still occurring?

Yes

Does the issue still occur after you run the COM Registration Fixing Tool in NVDA's tools menu?

Not tested, not related.

@seanbudd seanbudd added p3 https://github.com/nvaccess/nvda/blob/master/projectDocs/issues/triage.md#priority ux triaged Has been triaged, issue is waiting for implementation. labels Jan 17, 2023
seanbudd pushed a commit that referenced this issue Jan 18, 2023
Link to issue number:
Fixes #14527

May be considered a follow-up of #14233.

Summary of the issue:
When configuring NVDA Modifier Key for a non-default profile and for the default profile, we can end-up with no NVDA key defined at all in the non-default profile (see #14527 for detailed steps).

This is due to the fact that the config stores one item per NVDA key but that there is a dependency between these values to honor the requirement that at least one key should be defined as NVDA key. These values are checked when changing NVDA keys via the GUI. But the requirement may be missed when switching profiles and stacking their configurations.

There is also a second scenario allowing to have no NVDA key defined using only default profile:

In keyboard settings enable only caps lock and disable both insert, then validate
Open the NVDA startup dialog via Help menu, uncheck caps lock and validate.
This scenario is quite unlikely but there is no check in NVDA startup dialog to prevent such situation.

Description of user facing changes
Situations where no NVDA key is defined will not be possible anymore.

Description of development approach
Use only one config item to store the used NVDA modifier keys.
Define a config flag for NVDA key; each value corresponds to one bit so that all the values can be bitwise or-ed and the reesulting value can be stored in the config as an integer.
@nvaccessAuto nvaccessAuto added this to the 2023.1 milestone Jan 18, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
p3 https://github.com/nvaccess/nvda/blob/master/projectDocs/issues/triage.md#priority triaged Has been triaged, issue is waiting for implementation. ux
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants