microsoft / vscode

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

[Accessibility] Allow SR users to send selection to Python native REPL via Shift+Enter #233634

Closed jooyoungseo closed 1 day ago

jooyoungseo commented 3 days ago

Type: Bug

CC @meganrogge

It looks like Shift+Enter key sending selection to Python Native REPL was prevented foor SR users. Now that Python native REPL has been made accessible, we need to adjust the when clause in the keybindings to allow SR users to use Shift+Enter to execute the selected code in Python Native REPL.

VS Code version: Code - Insiders 1.96.0-insider (9b365cafae763d229e999f353831458761aff1cd, 2024-11-11T05:05:11.976Z) 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.44GB free)| |Process Argv|--crash-reporter-id b05b88e5-8894-4031-ae34-fa034ebddea9| |Screen Reader|yes| |VM|0%|
Extensions (135) Extension|Author (truncated)|Version ---|---|--- vscode-openapi|42C|4.29.2 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.140 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.42.0 gitlens|eam|14.6.1 EditorConfig|Edi|0.16.4 prettier-vscode|esb|10.1.0 figma-vscode-extension|fig|0.4.0 vscode-firefox-debug|fir|2.9.11 shell-format|fox|7.2.5 vscode-google-translate|fun|1.4.13 genaiscript-vscode|gen|1.73.0 codespaces|Git|1.17.3 copilot|Git|1.245.0 copilot-chat|Git|0.23.2024111101 copilot-workspace|git|0.4.0 remotehub|Git|0.64.0 vscode-github-actions|git|0.26.2 vscode-pull-request-github|Git|0.101.2024111104 cloudcode|goo|2.20.2 overleaf-workshop|iam|0.14.1 cslpreview|igo|0.2.2 path-autocomplete|ion|1.25.0 latex-workshop|Jam|10.5.6 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.127.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.7 git-graph|mhu|1.30.0 mongodb-vscode|mon|1.9.3 azure-dev|ms-|0.8.4 vscode-azureappservice|ms-|0.25.4 vscode-azurecontainerapps|ms-|0.6.1 vscode-azurefunctions|ms-|1.16.0 vscode-azureresourcegroups|ms-|0.8.3 vscode-azurestaticwebapps|ms-|0.12.2 vscode-azurestorage|ms-|0.16.1 vscode-azurevirtualmachines|ms-|0.6.6 vscode-cosmosdb|ms-|0.23.1 vscode-docker|ms-|1.29.3 vscode-edge-devtools|ms-|2.1.6 black-formatter|ms-|2024.5.12841012 debugpy|ms-|2024.13.2024111101 flake8|ms-|2023.13.12291011 isort|ms-|2023.13.12321012 python|ms-|2024.19.2024111101 vscode-pylance|ms-|2024.11.100 jupyter|ms-|2024.11.2024110701 jupyter-keymap|ms-|1.1.2 jupyter-renderers|ms-|1.0.21 vscode-jupyter-cell-tags|ms-|0.1.8 vscode-jupyter-slideshow|ms-|0.1.5 remote-containers|ms-|0.390.0 remote-ssh|ms-|0.116.2024111115 remote-ssh-edit|ms-|0.87.0 remote-wsl|ms-|0.81.8 vscode-remote-extensionpack|ms-|0.25.0 azure-account|ms-|0.12.0 azure-repos|ms-|0.40.0 cmake-tools|ms-|1.19.52 copilot-mermaid-diagram|ms-|0.0.2024110701 cpptools|ms-|1.23.1 cpptools-extension-pack|ms-|1.3.0 js-debug-nightly|ms-|2024.11.417 live-server|ms-|0.5.2024091601 remote-explorer|ms-|0.5.2024011009 remote-repositories|ms-|0.42.0 remote-server|ms-|1.6.2024011109 vscode-commander|ms-|0.2.0 vscode-copilot-data-analysis|ms-|0.2.2 vscode-copilot-vision|ms-|0.2.2024110422 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.13.1 vscode-speech|ms-|0.12.1 vscode-speech-language-pack-en-ca|ms-|0.5.0 vscode-speech-language-pack-en-gb|ms-|0.5.0 vscode-speech-language-pack-ko-kr|ms-|0.5.0 vscode-websearchforcopilot|ms-|0.1.2024111101 vsliveshare|ms-|1.0.5941 windows-ai-studio|ms-|0.6.1 autodocstring|njp|0.6.1 pandocciter|not|0.10.4 typst-lsp|nva|0.13.0 publisher|pos|1.2.1 shiny|Pos|1.1.0 shinyuieditor|pos|0.5.0 quarto|qua|1.117.0 r-debugger|RDe|0.5.5 java|red|1.36.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.12.0 latex-utilities|tec|0.4.14 cmake|twx|0.0.17 msft-todo-unofficial|tyl|0.0.18 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.9 vscodeintellicode|Vis|1.2.30 vscode-conventional-commits|viv|1.26.0 vscode-gradle|vsc|3.16.4 vscode-java-debug|vsc|0.58.1 vscode-java-dependency|vsc|0.24.1 vscode-java-pack|vsc|0.29.0 vscode-java-test|vsc|0.43.0 vscode-maven|vsc|0.44.0 zotero-cite|XIN|0.8.9 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 vscod805cf:30301675 vsaa593:30376534 py29gd2263:31024238 c4g48928:30535728 a9j8j154:30646983 962ge761:30841072 pythonnoceb:30776497 asynctok:30898717 dsvsc014:30777825 dsvsc015:30821418 pythonmypyd1:30859725 h48ei257:31000450 pythontbext0:30879054 cppperfnew:30980852 pythonait:30973460 01bff139:31013167 dvdeprecation:31040973 dwnewjupyter:31046869 impr_priority:31057980 nativerepl1:31134653 pythonrstrctxt:31093868 nativeloc1:31118317 cf971741:31144450 e80f6927:31120813 12bdf347:31141542 iacca1:31150324 notype1:31143044 dwcopilot:31158714 h409b430:31177054 ```
amunger commented 2 days ago

@jooyoungseo - one more point of possible confusion, now that we don't auto-focus the REPL when an item is executed, it might not be clear that a new editor is opened for the REPL, rather than it living in the terminal. The a11y help menu for the REPL won't be available with alt+f2 at that point, since the REPL doesn't have focus. Do we need another aria alert for the editor opening without getting focus, perhaps only while the REPL a11y verbosity setting is enabled? How much information would be enough if so?

jooyoungseo commented 2 days ago

@amunger I would like to suggest that you add a setting similar to {"terminal.integrated.focusAfterRun"}.

You could allow users to c customize the default focus after the code block is sent to REPL, such as: "none", "REPL input", and "REPL recent output"

When accessibility mode is on, we can set it to focus on the recent output by default.

amunger commented 22 hours ago

@jooyoungseo , @rperez030 - the native python REPL should now be ready for screen reader users in the latest vs code insiders, and python pre-release, and it would be great to get any feedback on it before it hits stable.

The python.REPL.sendToNativeREPL setting, enabled by default, will make pressing shift+enter on some code within a .py file be sent to the native REPL and executed. The REPL can also be started on it's own with the command Python: Start Native REPL. The a11y menu, alt+f1 while focused in the REPL, will hopefully have enough information for its usage.

thanks!