microsoft / vscode

Visual Studio Code
https://code.visualstudio.com
MIT License
161.18k stars 28.29k forks source link

Navigating through code with a screen reader keeps moving keyboard focus to a "Show Code Actions (Ctrl+.)" menu item, making it virtually impossible to use VS Code #210127

Closed Neurrone closed 3 months ago

Neurrone commented 3 months ago

Type: Bug

  1. Use ctrl+tab to move between files, f12 to go to definition, or ctrl+f to look for an occurance of some text.
  2. Press alt+left to go back to the previous location

Keyboard focus keeps being stolen and forcefully directed to a menu item that says "Show Code Actions (Ctrl+.)", making it virtually impossible to use VS Code given the importance of hotkeys to move through code.

The only way to avoid this from happening is for me to use the arrow keys and to go to a file manually.

I've noticed this since at least the start of this week.

VS Code version: Code - Insiders 1.89.0-insider (7eba2d200076e9ca04ef1d0874fb49aae426f895, 2024-04-10T05:50:02.508Z) OS version: Windows_NT x64 10.0.19045 Modes: Remote OS version: Linux x64 5.15.133.1-microsoft-standard-WSL2

System Info |Item|Value| |---|---| |CPUs|AMD Ryzen 7 PRO 4750U with Radeon Graphics (16 x 1697)| |GPU Status|2d_canvas: enabled
canvas_oop_rasterization: enabled_on
direct_rendering_display_compositor: disabled_off_ok
gpu_compositing: enabled
multiple_raster_threads: enabled_on
opengl: enabled_on
rasterization: enabled
raw_draw: disabled_off_ok
skia_graphite: disabled_off
video_decode: enabled
video_encode: enabled
vulkan: disabled_off
webgl: enabled
webgl2: enabled
webgpu: enabled| |Load (avg)|undefined| |Memory (System)|31.23GB (15.77GB free)| |Process Argv|--folder-uri=vscode-remote://wsl+Ubuntu/home/dickson/source/wallet-core --remote=wsl+Ubuntu| |Screen Reader|yes| |VM|0%| |Item|Value| |---|---| |Remote|WSL: Ubuntu| |OS|Linux x64 5.15.133.1-microsoft-standard-WSL2| |CPUs|AMD Ryzen 7 PRO 4750U with Radeon Graphics (16 x 1696)| |Memory (System)|15.24GB (11.35GB free)| |VM|0%|
Extensions (26) Extension|Author (truncated)|Version ---|---|--- remote-containers|ms-|0.357.0 remote-ssh|ms-|0.110.1 remote-ssh-edit|ms-|0.86.0 remote-wsl|ms-|0.88.0 vscode-remote-extensionpack|ms-|0.25.0 remote-explorer|ms-|0.4.3 remote-server|ms-|1.5.1 vscode-eslint|dba|2.4.4 dendron|den|0.124.0 dendron-markdown-preview-enhanced|den|0.10.57 dendron-markdown-shortcuts|den|0.12.1 dendron-paste-image|den|1.1.1 dendron-snippet-maker|den|0.1.6 gitlens|eam|14.9.0 prettier-vscode|esb|10.4.0 vscode-pull-request-github|Git|0.86.1 terraform|has|2.30.0 rest-client|hum|0.25.1 debugpy|ms-|2024.4.0 isort|ms-|2023.10.1 python|ms-|2024.4.1 vscode-pylance|ms-|2024.4.1 vsliveshare|ms-|1.0.5918 vsliveshare-pack|ms-|0.4.0 vscode-mermaid-editor|tom|0.19.1 vscode-remark|uni|2.1.0
Neurrone commented 3 months ago

Cc @isidorn

This is even worse than I described, because I just found out my focus can get forcefully redirected to this "show code actions" menu item even when arrowing through files.

meganrogge commented 3 months ago

@mjbvz I think your change to fix that role issue has caused this, can we revert that?

Neurrone commented 3 months ago

In case this is related, speech keeps on being interrupted when navigating between problems with the arrow keys (ctrl+shift+m) with "Show Code Actions. Preferred Quick Fix Available (Shift+Alt+.)" being spoken soon after I move to the next issue. My focus isn't actually forced to this though and stays on the problems list.

meganrogge commented 3 months ago

I'm not experiencing this issue. @Neurrone could you pls provide me with your settings file?

Neurrone commented 3 months ago

It seems like there is a hypothesis of the commit that caused this regression. If the fix is difficult, could the regressing commit be reverted in the meantime? This is a highly impactful bug.

Here's the settings file.

{
  "editor.accessibilitySupport": "on",
  "editor.defaultFormatter": "esbenp.prettier-vscode",
  "editor.formatOnPaste": true,
  "editor.formatOnSave": true,
  "editor.inlineSuggest.enabled": true,
  "explorer.compactFolders": false,
  "security.workspace.trust.untrustedFiles": "open",
  "workbench.startupEditor": "none",
  "files.eol": "\n",
  "eslint.validate": ["javascript", "javascriptreact", "svelte"],
  "eslint.runtime.execArgv": ["--max_old_space_size=4096"],
  "[javascript][typescript][typescriptreact]": {
    "editor.defaultFormatter": "esbenp.prettier-vscode"
  },
  "[json]": {
    "editor.defaultFormatter": "esbenp.prettier-vscode"
  },
  "rust-analyzer.checkOnSave.command": "clippy",
  "telemetry.telemetryLevel": "off",
  "rest-client.enableTelemetry": false,
  "git.autofetch": false,
  "svelte.enable-ts-plugin": true,
  "editor.wordWrapColumn": 120,
  "[rust]": {
    "editor.defaultFormatter": "rust-lang.rust-analyzer"
  },
  "[terraform]": {
    "editor.defaultFormatter": "hashicorp.terraform"
  },
  "files.associations": {
    "*.hcl": "terraform"
  },
  "window.menuBarVisibility": "compact",
  "[elm]": {
    "editor.defaultFormatter": "elmTooling.elm-ls-vscode"
  },
  "githubPullRequests.pullPullRequestBranchBeforeCheckout": false,
  "github.copilot.enable": {
    "*": true,
    "plaintext": false,
    "markdown": false,
    "scminput": false
  },
  "[astro]": {
    "editor.defaultFormatter": "astro-build.astro-vscode"
  },
  "javascript.updateImportsOnFileMove.enabled": "always",
  "[javascript]": {
    "editor.defaultFormatter": "vscode.typescript-language-features"
  },
  "editor.inlineSuggest.suppressSuggestions": true
}
meganrogge commented 3 months ago

@Jooyoungseo, are you able to reproduce this issue?

meganrogge commented 3 months ago

This does reproduce. However, it is announcing the Show Code Actions menu item because it almost always shows up on the line that gets navigated to. Up to @mjbvz and @justschen if this is a bug or by design.

We don't want to annoy users with this announcement if it's always going to be present.

meganrogge commented 3 months ago

also cc @rperez030 for insight

justschen commented 3 months ago

yep, looks like the main issue is whenever the lightbulb is rendered, it grabs the screen readers focus briefly (on mac, it reads "you are currently in a menu")

Neurrone commented 3 months ago

Its not just that it briefly announces the menu, interrupting navigation. The larger issue is keyboard focus seems to be stuck there, so pressing the arrow keys doesn't appear to do anything (no speech feedback), unless I alt-tab out of the window, and then alt-tab back into VS Code.

VSCodeTriageBot commented 3 months ago

Issue marked as unreleased but unable to locate closing commit in issue timeline. You can manually reference a commit by commenting \closedWith someCommitSha, or directly add the insiders-released label if you know this has already been releaased