microsoft / vscode

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

[Accessibility] Cannot use word-by-word standard navigation in Output View #221599

Closed jooyoungseo closed 2 months ago

jooyoungseo commented 4 months ago

Type: Bug

CC @meganrogge

[I cannot easily find my authored issue so I am creating a new]

Ctrl+LeftArrow and Ctrl+RightArrow does not work in the Output View (Ctrl+Shift+U) area. This happens on Windows. This means screen reader users cannot navigate word by word within the output view.

Reproducible Steps

  1. Press Ctrl+Shift+U to focus in the Output View

  2. Choose any output (e.g., terminal)

  3. See if you can navigate word by word via Ctrl+LeftArrow or Ctrl+RightArrow

VS Code version: Code - Insiders 1.92.0-insider (a35380d6f0ff65f7c35345baafcf1c3f8a378d38, 2024-07-12T05:08:08.550Z) OS version: Windows_NT x64 10.0.22631 Modes:

System Info |Item|Value| |---|---| |CPUs|11th Gen Intel(R) Core(TM) i5-1145G7 @ 2.60GHz (8 x 2611)| |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
webnn: disabled_off| |Load (avg)|undefined| |Memory (System)|15.71GB (3.14GB free)| |Process Argv|--crash-reporter-id b05b88e5-8894-4031-ae34-fa034ebddea9| |Screen Reader|yes| |VM|0%|
Extensions (125) Extension|Author (truncated)|Version ---|---|--- vscode-openapi|42C|4.27.0 zotenote|A-W|1.0.1 android-dev-ext|ade|1.4.0 aiprm-lang|AIP|0.0.2 Bookmarks|ale|13.5.0 openscad|Ant|1.2.2 spellright|ban|3.0.134 zoterolatex|bna|0.4.1 mermaid-markdown-syntax-highlighting|bpr|1.6.0 external-pdf|cha|1.2.0 doxdocgen|csc|1.4.0 vscode-markdownlint|Dav|0.53.0 vscode-eslint|dba|3.0.10 vscode-quick-select|dba|0.2.9 vscode-deno|den|3.38.0 gitlens|eam|14.6.1 EditorConfig|Edi|0.16.4 prettier-vscode|esb|10.1.0 figma-vscode-extension|fig|0.3.5 vscode-firefox-debug|fir|2.9.10 shell-format|fox|7.2.5 vscode-google-translate|fun|1.4.13 codespaces|Git|1.17.1 copilot|Git|1.213.0 copilot-chat|Git|0.18.2024071201 remotehub|Git|0.62.0 vscode-github-actions|git|0.26.2 vscode-pull-request-github|Git|0.93.2024071104 cloudcode|goo|2.14.0 overleaf-workshop|iam|0.13.0 cslpreview|igo|0.2.2 path-autocomplete|ion|1.25.0 latex-workshop|Jam|10.1.0 lilypond-syntax|jea|0.1.1 scheme|jea|0.2.0 better-cpp-syntax|jef|1.17.2 commitlint|jos|2.6.0 language-julia|jul|1.90.1 google-search|kam|0.0.1 vscode-lua-format|Koi|1.3.8 lilypond-formatter|lhl|0.2.3 lilypond-pdf-preview|lhl|0.2.8 lilypond-snippets|lhl|0.1.1 vslilypond|lhl|1.7.3 language-matlab|Mat|1.2.4 zotero|mbl|0.1.11 git-graph|mhu|1.30.0 azure-dev|ms-|0.8.3 vscode-azureappservice|ms-|0.25.2 vscode-azurecontainerapps|ms-|0.6.1 vscode-azurefunctions|ms-|1.15.1 vscode-azureresourcegroups|ms-|0.8.3 vscode-azurestaticwebapps|ms-|0.12.2 vscode-azurestorage|ms-|0.16.0 vscode-azurevirtualmachines|ms-|0.6.5 vscode-cosmosdb|ms-|0.22.0 vscode-docker|ms-|1.29.1 vscode-edge-devtools|ms-|2.1.5 black-formatter|ms-|2024.3.11501016 debugpy|ms-|2024.9.11931011 flake8|ms-|2023.13.11511011 isort|ms-|2023.13.11511010 python|ms-|2024.11.2024071203 vscode-pylance|ms-|2024.7.1 jupyter|ms-|2024.6.2024070901 jupyter-keymap|ms-|1.1.2 jupyter-renderers|ms-|1.0.18 vscode-jupyter-cell-tags|ms-|0.1.8 vscode-jupyter-slideshow|ms-|0.1.5 remote-containers|ms-|0.377.0 remote-ssh|ms-|0.113.2024070816 remote-ssh-edit|ms-|0.86.0 remote-wsl|ms-|0.81.8 vscode-remote-extensionpack|ms-|0.25.0 azure-account|ms-|0.12.0 azure-repos|ms-|0.38.0 cmake-tools|ms-|1.18.43 cpptools|ms-|1.21.0 cpptools-extension-pack|ms-|1.3.0 js-debug-nightly|ms-|2024.7.517 powershell|ms-|2024.3.2 remote-explorer|ms-|0.5.2024011009 remote-repositories|ms-|0.40.0 remote-server|ms-|1.6.2024011109 vscode-github-issue-notebooks|ms-|0.0.130 vscode-node-azure-pack|ms-|1.2.0 vscode-selfhost-test-provider|ms-|0.3.25 vscode-serial-monitor|ms-|0.12.0 vscode-speech|ms-|0.10.0 vscode-speech-language-pack-ko-kr|ms-|0.4.0 vsliveshare|ms-|1.0.5932 windows-ai-studio|ms-|0.3.3 autodocstring|njp|0.6.1 pandocciter|not|0.10.4 publisher|pos|1.1.3 shiny|Pos|1.0.0 shinyuieditor|pos|0.5.0 quarto|qua|1.113.0 r-debugger|RDe|0.5.4 java|red|1.32.0 vscode-xml|red|0.27.1 vscode-yaml|red|1.14.0 r|REd|2.8.4 multi-command|ryu|1.6.0 AudioQ|Seh|0.0.2 vscode-deepl|soe|1.1.1 abc-music|sof|0.4.0 lua|sum|3.9.3 latex-utilities|tec|0.4.14 cmake|twx|0.0.17 vscode-terminal-here|Tyr|0.2.4 windows-terminal|Tyr|0.7.0 errorlens|use|3.16.0 intellicode-api-usage-examples|Vis|0.2.8 vscodeintellicode|Vis|1.2.30 vscode-conventional-commits|viv|1.25.0 vscode-arduino|vsc|0.6.230727001 vscode-java-debug|vsc|0.58.0 vscode-java-dependency|vsc|0.23.7 vscode-java-pack|vsc|0.27.0 vscode-java-test|vsc|0.41.1 vscode-maven|vsc|0.44.0 zotero-cite|XIN|0.8.6 markdown-all-in-one|yzh|3.6.2 grammarly|znc|0.25.0 (1 theme extensions excluded)
A/B Experiments ``` vsliv368:30146709 vspor879:30202332 vspor708:30202333 vspor363:30204092 vstes627:30244334 vscod805cf:30301675 vsaa593:30376534 py29gd2263:31024238 c4g48928:30535728 a9j8j154:30646983 962ge761:30841072 pythongtdpath:30726887 welcomedialog:30812478 pythonnoceb:30776497 asynctok:30898717 dsvsc013:30777762 dsvsc014:30777825 dsvsc015:30821418 pythonregdiag2:30926734 pythonmypyd1:30859725 h48ei257:31000450 pythontbext0:30879054 accentitlementst:30870582 dsvsc016:30879898 dsvsc017:30880771 dsvsc018:30880772 cppperfnew:30980852 pythonait:30973460 chatpanelt:31014475 01bff139:31013167 a69g1124:31018687 dvdeprecation:31040973 dwnewjupyter:31046869 impr_priority:31057980 nativerepl1:31093711 refactort:31084545 pythonrstrctxt:31093868 0c838689:31088353 hdi1a554:31091669 ```
meganrogge commented 3 months ago

@sandy081 do you know why this isn't currently supported?

sandy081 commented 2 months ago

@meganrogge It seems to work for me in Mac, are you seeing it otherwise?

meganrogge commented 2 months ago

It does work for me, although sometimes with the screen reader enabled, it's reading the word then a whole chunk of text. I'll try on windows.

jooyoungseo commented 2 months ago

It’s not working in Windows.

meganrogge commented 2 months ago

Can reproduce on windows. I see that this is happening because there's a part of the when clause for cursorWordLeft and cursorWordRight of !accessibilityModeEnabled for windows

https://github.com/microsoft/vscode/blob/43421396473f3b47a516a41fd8f10a5dd99252c6/src/vs/editor/contrib/wordOperations/browser/wordOperations.ts#L131

meganrogge commented 2 months ago

Removing that from the when clause fixes it. Looks like that condition was added to fix this https://github.com/microsoft/vscode/issues/90578.

@jooyoungseo can you try removing that condition from the when clause and seeing if you experience any consequences of doing so? Based on my testing, it seems fine.

meganrogge commented 2 months ago

Ctrl+shift+left/rightArrow will now also work to select the words