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

User-definable NVDA key #225

Open
nvaccessAuto opened this Issue Jan 1, 2010 · 14 comments

Comments

Projects
None yet
5 participants
@nvaccessAuto
Copy link

nvaccessAuto commented Jan 1, 2010

Reported by vtsaran on 2008-11-10 23:23
When running NVDA inside virtual machines (particularly on the Mac) it is practically impossible to use INSERT, CAPSLOCK and CONTEXTMENU keys, present on most Windows keyboards. This makes it impossible to modify most of NVDA settings or access NVDA menus.
It would be desirable, therefore, to have a way to assign different key combination for NVDA key.
Blocking #347

@nvaccessAuto

This comment has been minimized.

Copy link
Author

nvaccessAuto commented Jan 1, 2010

Comment 1 by jteh on 2008-11-10 23:35
Having a combination of keys is pretty much out of the question, as it raises questions such as whether or not we should pass the individual keys through to the operating system. (The NVDA key is currently never passed through to the operating system unless it is pressed twice.)

However, we may be able to make the NVDA key configurable outside of the current options. This would probably be a hidden option.

I don't consider this to be of major priority. This is really a bug with the Mac virtual machine software; this works fine in !VirtualBox, for example.

@nvaccessAuto

This comment has been minimized.

Copy link
Author

nvaccessAuto commented Jan 1, 2010

Comment 2 by vtsaran (in reply to comment 1) on 2008-11-14 22:03
Replying to jteh:

Having a combination of keys is pretty much out of the question, as it raises questions such as whether or not we should pass the individual keys through to the operating system. (The NVDA key is currently never passed through to the operating system unless it is pressed twice.)

Agreed.

However, we may be able to make the NVDA key configurable outside of the current options. This would probably be a hidden option.

Also, it seems that INSERT key can be invoked on Mac keyboards after all (at least with VMWare Fusion), once the NUMLOCK key is in the "off" position. So perhaps the problem is with Parallels exclusively.

I don't consider this to be of major priority. This is really a bug with the Mac virtual machine software; this works fine in !VirtualBox, for example.

Absolutely, this is pretty minor (why Trac defaults to "major"?)

@nvaccessAuto

This comment has been minimized.

Copy link
Author

nvaccessAuto commented Jan 1, 2010

Comment 3 by jteh (in reply to comment 2) on 2008-11-14 22:12
Replying to vtsaran:

(why Trac defaults to "major"?)

It doesn't any longer. :) Thanks for the idea.

@nvaccessAuto

This comment has been minimized.

Copy link
Author

nvaccessAuto commented May 21, 2012

Comment 4 by geoff (in reply to comment 2) on 2012-05-21 16:33
Replying to vtsaran:

Also, it seems that INSERT key can be invoked on Mac keyboards after

all (at least with VMWare Fusion), once the NUMLOCK key is in the

"off" position. So perhaps the problem is with Parallels exclusively.

Insert works fine, if you have one. The Macbook Pro (and presumably
Macbook Air) does not, and I've not found any way to emulate it. I can
get to the NVDA menus by pressing shift+F10 in the system tray, but
anything that requires the NVDA key seems to be impossible... Unless
someone knows a work-around. You can of course plug in an external USB
keyboard, but that's not exactly ideal.

@nvaccessAuto

This comment has been minimized.

Copy link
Author

nvaccessAuto commented Feb 15, 2013

Comment 5 by jzaefferer on 2013-02-15 11:54
This might not be a priority for actual NVDA users. Though for (web) developers wanting to test with NVDA, not being able to use the NVDA modifier keys when testing inside a VM is pretty crippling. I'm developing on a Mac Book Air with Virtual Box to run Windows 7.

Maybe I'm missing something, but I also couldn't find anything besides this ticket on how to change the modifier key.

@feerrenrut

This comment has been minimized.

Copy link
Contributor

feerrenrut commented Jun 15, 2017

For anyone coming across this issue, some guidance on how to setup your NVDA key on a Mac while using a VM can be found in the following article: https://www.marcozehe.de/2015/06/07/how-to-map-your-macs-capslock-key-to-a-nvda-or-jaws-key-in-a-windows-virtual-machine/

@bhavyashah

This comment has been minimized.

Copy link

bhavyashah commented Aug 29, 2017

@feerrenrut The original use case that vtsaran provided seems to be partially or fully resolved now. Furthermore, since a hidden option for such configurability was the agreed approach, an average NVDA user might hardly benefit from such a feature. Thus, should we accept this feature request, assign it a P4, or close it as a wontfix?

@feerrenrut

This comment has been minimized.

Copy link
Contributor

feerrenrut commented Sep 4, 2017

I'm not aware that this is resolved, I pointed to a possible workaround but we have no confirmation that this works. I think its a good idea to try support web developers who wish to test with NVDA and happen to be running a mac, ultimately this will benefit NVDA users. As such we would be willing to discuss potential changes proposed by external developers in order to cater for this case.

Given the user-story "As a web-developer testing for A11Y using NVDA in a VM on my Mac, I want to be able to reassign the NVDA key because my keyboard does not have the required keys and the VM I use does not allow me to remap keys". I think it is quite unlikely to be prioritised as a feature to include in a project. This might be different if we knew that there were a lot of people testing for A11Y this way / or knowing if the workaround did not work.

I'll label this as a feature request. Happy to discuss this with anyone who wishes to implement it.

@a-singer

This comment has been minimized.

Copy link

a-singer commented Oct 12, 2018

This is a copy of my use case from a closed issue listed above. I add it to the Mac and accessibility testing use cases above.

I am using NVDA from iOS through a VNC application. I find that this works fairly well except that the application will not properly pass through the capslock or insert key as a modifier. I am, therefore, unable to use the NVDA commands without another program being involved to modify the keyboard. I have used autohotkey to map the right alt key to the insert key. Sharpkeys and other registry-based keyboard mapping applications don’t work. I would like the ability to have the NVDA key set to any key on the keyboard that Windows can see. I have seen keyboards with, for example, the ` key next to the space and there is always, of course, one of the alt keys. Given that NVDA, unlike Jaws, will happily work with VNC input, this may be worth doing as I have yet to see a VNC application which sends the capslock key as a modifier properly.

@DrSooom

This comment has been minimized.

Copy link

DrSooom commented Oct 15, 2018

Actual NVDA modifier keys in NVDA 2018.3.2:

  • Insert (E0_52)
  • NumInsert/Num0 (00_52)
  • CapsLock (00_3A)

Expected NVDA modifier keys:

  • Insert (E0_52)
  • NumInsert/Num0 (00_52)
  • CapsLock (00_3A)
  • NumLock (00_45)
  • ScrollLock (00_46)
  • Application (E0_5D)
  • PrtSc (E0_37)

Reasons:

  • In my opinion adding those four new keys should be quite easy to implement, as three of them – as far as I know – aren't used for hotkeys.
  • But according to the PrtSc key the chapter "4.2.1. The NVDA Modifier Key" in the NVDA User Guide has to contain also a little note, that if this key is used as a NVDA modifier key, ALT+ and Win+ only works correctly when pressing NVDA+F2 (Pass next key through) first.
  • The DEL key is too risky and the ESC key is already used for Windows-based hotkeys like ALT+ESC, CTRL+ESC and CTRL+Shift+ESC.
  • Well, and F1 and F12 might also be used for hotkeys, so I don't think that it make sense to use them as a NVDA modifier key as well.
  • And note that there are hundreds of different keyboard layouts out there. The German one for example has no right ALT key – there is a key called AltGr (combination of ALT+CTRL). And some keyboards no longer have two WIN keys.
  • Using both Shift keys, both ALT key, both WIN keys and the left CTRL key as a NVDA modifier key isn't useful at all, because there are too much hotkeys which need these keys.
  • At least we only could add the right CTRL key (E0_1D) as a NVDA modifier key, as VirtualBox uses this key for toggling the keyboard command back ´to the host.
@a-singer

This comment has been minimized.

Copy link

a-singer commented Oct 17, 2018

Reasons:

  • In my opinion adding those four new keys should be quite easy to implement, as three of them – as far as I know – aren't used for hotkeys.
  • And note that there are hundreds of different keyboard layouts out there. The German one for example has no right ALT key – there is a key called AltGr (combination of ALT+CTRL). And some keyboards no longer have two WIN keys.

I agree with what you say above, and this is just why I wish to have the key configurable by the user, rather than even an expanded list. Obviously, I wouldn't mind a hidden option either with or without an expanded list. My difficulty is just the very large number of keyboard layouts and use cases out there. None of the keys you suggest above would work for my use case, since they wouldn't be sent as modifiers on VNC. Similarly, the key that I'm using, the right alt, wouldn't work on the German layout, for the reason you mention. With a configurable key, the user can decide what to do depending on the unique circumstances.
Thanks,

@DrSooom

This comment has been minimized.

Copy link

DrSooom commented Oct 17, 2018

To prevent user from misconfiguration a list would be the easiest solution via the GUI.

But I also can understand, that for some users ESC (00_01) or F1 (00_3B) to F12 (00_58) would be a better NVDA modifier key. But if we implement F1 to F12 as an available option, we need to implement routines to automatically changes some input gestures. And that makes this so complicated.

Furthermore, on the German keyboard layout there are only three additional keys which can be used as a NVDA modifier key: + (00_1B), # (00_2B) and < (00_56. But I guess that there would be more available keys on an EN-US layout keyboard, which also can be used as a NVDA modifier key. So in the end we need a keyboard layout depending list of available keys here.

CC: @feerrenrut and @ehollig: Your thoughts about this?

@a-singer

This comment has been minimized.

Copy link

a-singer commented Oct 17, 2018

To prevent user from misconfiguration a list would be the easiest solution via the GUI.

That is certainly true, but a documented hidden option, as suggested by @jteh would have the best of both worlds. I respectfully agree that it should not be possible, through user error, to end up with no NVDA key or a mess which causes commands to be impossible to give to the PC through any keyboard.

So in the end we need a keyboard layout depending list of available keys here.

Wouldn't this be very complicated, if I may ask? It would have to be checked, if new or custom layouts were used issues would come up... It just seems to me more difficult than a general list and a way in which those unusual users who need an extra key can add one.

@DrSooom

This comment has been minimized.

Copy link

DrSooom commented Oct 18, 2018

The list of available keys has two parts: a global firm one and a localized one.

  • Firm keys: Insert, NumInsert, CapsLock, NumLock, ScrollLock, Application, PrtSc
  • If desired those additional firm keys: ESC, RightSCTRL, RightWIN and F1 to F12
    Note that PrtSc, ESC, RightCTRL, RighWIN and F1 to F12 are already used for hotkeys. This must be mentioned in the NVDA User Guide.
  • Localized German (DE-DE and DE-AT) keys: <, +, # and - (I wouldn't prefer the last one.)

German (DE-DE and DE-AT) keyboard layout in one single row:

^1234567890ß´ qwertzuiopü+ asdfghjklöä# <yxcvbnm,.-

In total 48 characters/keys, but A to Z and 1 to 0 cannot be used as a NVDA modifier key. And it's the same with ß, ä, ö, ü, , (comma), . (dot) and – in my opinion – - (dash). ^ and ´ have a special behaviour on the German keyboard, so they can't be used either. In other words: only 3 (or 4) of the 48 keys can be used for the German localized list of available keys.

Furthermore I'm asking me if NVDA is able to read the current used keyboard layout from the OS settings, like with the language. This could help here a little bit, otherwise we would need an additional dropdown list for the keyboard layouts as well.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.