microsoft / vscode

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

[Accessibility] Native Python REPL output is not accessible for screen reader #216548

Closed jooyoungseo closed 4 months ago

jooyoungseo commented 4 months ago

Type: Bug

CC @meganrogge

This is a CRITICAL issue against screen reader users.

When "python.REPL.sendToNativeREPL": true, pressing shift+enter sends Python code to the VSCode native REPL.

Unfortunately, once the code is executed, the output is not read aloud to screen reader. Additionally, there is no way for keyboard-only users to move between input and output areas within the native REPL.

Please make this REPL accessible just like VSCode's Jupyter Notebook widgets.

VS Code version: Code - Insiders 1.91.0-insider (b631c0aa4d30ff471171dd75376c6b49504f7ba1, 2024-06-18T08:28:13.539Z) 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| |Load (avg)|undefined| |Memory (System)|15.71GB (8.41GB free)| |Process Argv|. --crash-reporter-id b05b88e5-8894-4031-ae34-fa034ebddea9| |Screen Reader|yes| |VM|0%|
Extensions (123) Extension|Author (truncated)|Version ---|---|--- vscode-openapi|42C|4.26.3 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.132 zoterolatex|bna|0.4.1 mermaid-markdown-syntax-highlighting|bpr|1.6.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.37.1 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.16.23 copilot|Git|1.204.939 copilot-chat|Git|0.17.2024061802 remotehub|Git|0.62.0 vscode-github-actions|git|0.26.2 vscode-pull-request-github|Git|0.91.2024061804 cloudcode|goo|2.12.0 overleaf-workshop|iam|0.12.3 cslpreview|igo|0.2.2 path-autocomplete|ion|1.25.0 latex-workshop|Jam|9.20.1 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.79.2 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.3 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.0 vscode-azureresourcegroups|ms-|0.8.3 vscode-azurestaticwebapps|ms-|0.12.2 vscode-azurestorage|ms-|0.15.3 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.7.11591013 flake8|ms-|2023.13.11511011 isort|ms-|2023.13.11511010 python|ms-|2024.9.11691012 vscode-pylance|ms-|2024.6.100 jupyter|ms-|2024.6.2024060601 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.373.0 remote-ssh|ms-|0.113.2024061415 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.42 cpptools|ms-|1.21.0 cpptools-extension-pack|ms-|1.3.0 js-debug-nightly|ms-|2024.6.1417 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.11.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.2 autodocstring|njp|0.6.1 pandocciter|not|0.10.4 shiny|Pos|1.0.0 shinyuieditor|pos|0.5.0 quarto|qua|1.113.0 r-debugger|RDe|0.5.4 java|red|1.31.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.57.0 vscode-java-dependency|vsc|0.23.6 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.5 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 pythonidxpt:30768918 pythonnoceb:30776497 asynctok:30898717 dsvsc013:30777762 dsvsc014:30777825 dsvsc015:30821418 pythontestfixt:30866404 pythonregdiag2:30926734 pythonmypyd1:30859725 h48ei257:31000450 pythontbext0:30879054 accentitlementst:30870582 dsvsc016:30879898 dsvsc017:30880771 dsvsc018:30880772 cppperfnew:30980852 pythonait:30973460 jchc7451:31067543 showvideot:31016890 chatpanelt:31014475 01bff139:31013167 a69g1124:31018687 dvdeprecation:31040973 pythonprt:31036556 dwnewjupyter:31046869 impr_priority:31057980 nativerepl1:31071684 refactort:31073763 ```
anthonykim1 commented 4 months ago

Hello @jooyoungseo. Thank you for filing this and giving a try to new REPL.

@amunger I feel like this is case with Interactive Window in general. Screenshot 2024-06-18 at 2 28 44 PM

As I turned on voice over and moved up and down the arrow keys, I am able to see the selection moves around different notebook cell box, but the voice over does not actually read the code input nor the output. Also experienced no way for keyboard only users to move between input and output areas.

jooyoungseo commented 4 months ago

As this issue causes significant accessibility issues, please change the default value of this setting to false when screen reader mode is on until the interactive editor is made accessible. Many SR users have been already impacted by this default setting and we need to avoid the side effects.

amunger commented 4 months ago

here is the issue to actually fix accessibility for that UI https://github.com/microsoft/vscode/issues/209140

But yes, we can stick to the terminal for SR users for now until we tackle that issue