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

macOS accessibility: Releasing ctrl after opening ctrl+tab quick switch menu does not dismiss it, when using Keyboard Viewer or Synergy #144801

Open
kibiz0r opened this issue Mar 10, 2022 · 5 comments
Assignees
Labels
accessibility Keyboard, mouse, ARIA, vision, screen readers (non-specific) issues bug Issue identified by VS Code Team member as probable bug quick-pick Quick-pick widget issues
Milestone

Comments

@kibiz0r
Copy link

kibiz0r commented Mar 10, 2022

Does this issue occur when all extensions are disabled?: Yes

  • VS Code Version: 1.65.1 (Universal)
  • OS Version: macOS 12.2.1 (21D62)

Steps to Reproduce:

My personal complaint here is when using VSCode through Synergy, but the same issue is present when using macOS's own built-in Keyboard Viewer, so this looks like an accessibility bug beyond an arbitrary side-effect of some third-party software.

Keyboard Viewer steps:

  1. In VSCode for Mac, open multiple files
  2. Open the Keyboard Viewer accessibility tool
  3. Click the ctrl key
  4. Click the tab key
  5. See that the VSCode quick switch menu opens
  6. See that the keyboard state no longer has the ctrl key held
  7. See that the VSCode quick switch menu is still open <-- problem
  8. (The menu can still be dismissed/accepted by clicking the ctrl key on and off again, or with the enter key)

Synergy steps:

  1. Get a Mac and a Windows PC on the same network
  2. Install VSCode and Synergy (1.14.3) on the Mac
  3. Install Synergy (1.14.3) on the PC
  4. Configure Synergy to send the PC mouse+keyboard input to the Mac
  5. In VSCode on the Mac, open multiple files
  6. Verifying behavior of non-Synergy UX:
  7. Using a keyboard directly attached to the Mac...
  8. ...hold ctrl
  9. ...press tab
  10. ...see that the VSCode quick switch menu opens
  11. ...release ctrl
  12. ...see that the VSCode quick switch menu closes
  13. Demonstrating buggy behavior of Synergy UX:
  14. Using Synergy to send keyboard input from the PC to the Mac over the network...
  15. ...hold ctrl
  16. ...press tab
  17. ...see that the VSCode quick switch menu opens
  18. ...release ctrl
  19. ...see that the VSCode quick switch menu is still open! <-- problem
  20. (The menu can still be dismissed/accepted with the enter key)

You can further verify that both Keyboard Viewer and Synergy seem to be maintaining the correct keyboard state by using KeyCastr on the Mac (with KeyCastr's "Svelte" visualizer selected). KeyCastr shows that the ctrl key is released, but VSCode still keeps the quick switch menu open.

@TylerLeonhardt
Copy link
Member

This is interesting... have you experienced this behavior with other keybindings?

@alexdima is there a chance that how we handle keybindings could be causing this?

@alexdima
Copy link
Member

The quick pick is independently listening for a keyup event here outside of the keybinding dispatching, because the keybinding service dispatches on keydown. That code might have a problem, or the keyboard viewer might not be sending keyboard events in 100% the same way as the physical keyboard.

@alexdima alexdima assigned bpasero and chrmarti and unassigned alexdima Mar 14, 2022
@bpasero bpasero added accessibility Keyboard, mouse, ARIA, vision, screen readers (non-specific) issues quick-pick Quick-pick widget issues labels Mar 14, 2022
@kibiz0r
Copy link
Author

kibiz0r commented Mar 15, 2022

have you experienced this behavior with other keybindings?

No, I haven't. I wouldn't call my testing exhaustive here, by any means, but I have put a few dozen hours into this setup and it seems to work fine except for ctrl+tab.

Edit: After continuing to use this setup for 4 weeks, I can confirm this is the only issue I have.

@bpasero bpasero removed their assignment Mar 15, 2022
@TylerLeonhardt TylerLeonhardt added this to the Backlog milestone Mar 22, 2022
@TylerLeonhardt TylerLeonhardt added the bug Issue identified by VS Code Team member as probable bug label Mar 22, 2022
@afriza
Copy link

afriza commented Feb 1, 2023

I found this issue thread from Synergy's support team.

My issue is different but also related to keypress.

The GitLens extension for VS Code doesn't capture ⌥ opt + click combination and only detects the click without ⌥ opt.

I thought this is an issue in Synergy but remote KeyCastr is actually able to show both ⌥ opt and click.

So, the problem is probably in VS Code and/or GitLens extension.

@chrmarti chrmarti removed their assignment Feb 2, 2023
@kibiz0r
Copy link
Author

kibiz0r commented Apr 25, 2023

@TylerLeonhardt Any thoughts on prioritizing this? Synergy may be a less-common way to use VSCode, but for the people who do use VSCode through Synergy, it's an all-day thing and it's hard to ignore the friction caused by an awkward ctrl-tab experience.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
accessibility Keyboard, mouse, ARIA, vision, screen readers (non-specific) issues bug Issue identified by VS Code Team member as probable bug quick-pick Quick-pick widget issues
Projects
None yet
Development

No branches or pull requests

7 participants
@afriza @kibiz0r @bpasero @TylerLeonhardt @alexdima @chrmarti and others