Change:
Type: <bBug</bI think there was a miscommunication between and I when referring to a better way to focus in the chat area. I will elaborate this when we meet again. The current critical issue that introduced by the miscommunication is that ctrl+DownArrow does not work as expected in Chat. It used to work to go back to the input area from Chat response list. After last Friday's change made by users now have to use the same shortcut key (ctrl+UpArrow) for two different purposes: going to Chat response list and going back to the input area. This is confusing. We need to revert this because ctrl+UpArrow is used to move focus from Chat input to the Chat response list, and ctrl+DownArrow is used for the return trip. ctrl+UpArrow and ctrl+DownARrow round-trip key concept is already established concept in other areas, such as terminal input and its accessible view, find input and result. This is an inadvertent regression that needs to be fixed to not confuse other users. VS Code version: Code - Insiders 1.94.0-insider (, 2024-09-16T05:03:40.122Z) OS version: WindowsNT x64 10.0. Modes: <details<summarySystem Info</summary </details<details<summaryExtensions (125)</summaryExtensionVersion ------ vscode-openapi4.28.1 zotenote1.0.1 android-dev-ext1.4.0 aiprm-lang0.0.2 Bookmarks13.5.0 openscad1.2.2 spellright3.0.136 mermaid-markdown-syntax-highlighting1.6.0 external-pdf1.2.0 doxdocgen1.4.0 vscode-markdownlint0.53.0 vscode-eslint3.0.10 vscode-quick-select0.2.9 vscode-deno3.40.0 gitlens14.6.1 EditorConfig0.16.4 prettier-vscode10.1.0 figma-vscode-extension0.3.5 vscode-firefox-debug2.9.10 shell-format7.2.5 vscode-google-translate1.4.13 codespaces1.17.3 copilot1.229.1104 copilot-chat0.21. remotehub0.64.0 vscode-github-actions0.26.2 vscode-pull-request-github0.97. cloudcode2.17.0 overleaf-workshop0.13.2 cslpreview0.2.2 path-autocomplete1.25.0 latex-workshop10.3.2 lilypond-syntax0.1.1 scheme0.2.0 better-cpp-syntax1.17.2 commitlint2.6.0 language-julia1.123.1 google-search0.0.1 vscode-lua-format1.3.8 lilypond-formatter0.2.3 lilypond-pdf-preview0.2.8 lilypond-snippets0.1.1 vslilypond1.7.3 language-matlab1.2.5 git-graph1.30.0 azure-dev0.8.3 vscode-azureappservice0.25.3 vscode-azurecontainerapps0.6.1 vscode-azurefunctions1.15.4 vscode-azureresourcegroups0.8.3 vscode-azurestaticwebapps0.12.2 vscode-azurestorage0.16.1 vscode-azurevirtualmachines0.6.5 vscode-cosmosdb0.23.0 vscode-docker1.29.2 vscode-edge-devtools2.1.5 black-formatter2024.3. debugpy2024.11. flake82023.13. isort2023.13. python2024.15. vscode-pylance2024.9.100 jupyter2024.9. jupyter-keymap1.1.2 jupyter-renderers1.0.19 vscode-jupyter-cell-tags0.1.8 vscode-jupyter-slideshow0.1.5 remote-containers0.386.0 remote-ssh0.115. remote-ssh-edit0.86.0 remote-wsl0.81.8 vscode-remote-extensionpack0.25.0 azure-account0.12.0 azure-repos0.40.0 cmake-tools1.19.51 cpptools1.22.3 cpptools-extension-pack1.3.0 js-debug-nightly2024.9.1317 remote-explorer0.5. remote-repositories0.42.0 remote-server1.6. vscode-github-issue-notebooks0.0.130 vscode-node-azure-pack1.2.0 vscode-selfhost-test-provider0.3.25 vscode-serial-monitor0.12.0 vscode-speech0.10.0 vscode-speech-language-pack-en-ca0.4.0 vscode-speech-language-pack-en-gb0.4.0 vscode-speech-language-pack-ko-kr0.4.0 vsliveshare1.0.5936 windows-ai-studio0.5. autodocstring0.6.1 pandocciter0.10.4 typst-lsp0.13.0 publisher1.1.6 shiny1.1.0 shinyuieditor0.5.0 quarto1.114.0 r-debugger0.5.5 java1.34.0 vscode-xml0.27.1 vscode-yaml1.14.0 r2.8.4 multi-command1.6.0 AudioQ0.0.2 vscode-deepl1.1.1 abc-music0.4.0 lua3.10.6 latex-utilities0.4.14 cmake0.0.17 vscode-terminal-here0.2.4 windows-terminal0.7.0 errorlens3.16.0 intellicode-api-usage-examples0.2.8 vscodeintellicode1.2.30 vscode-conventional-commits1.26.0 vscode-arduino0.7.1 vscode-gradle3.16.4 vscode-java-debug0.58.0 vscode-java-dependency0.24.0 vscode-java-pack0.29.0 vscode-java-test0.42.0 vscode-maven0.44.0 markdown-all-in-one3.6.2 grammarly0.25.0 (1 theme extensions excluded) </details<details<summaryA/B Experiments</summary</details<!-- generated by issue reporter --
thanks for reporting this. From a tab order and sighted user perspective, reversing these keybindings makes sense. However, it is a bug that using focuses both the chat input and the response list. That seems like a context key issue.
WDYT about just reverting this as it seems we've changed the paradigm from a screen reader user's perspective?

Discussion:
import { IChatEditorOptions } from '../chatEditor.js'; import { ChatEditorInput } from '../chatEditorInput.js'; import { ChatViewPane } from '../chatViewPane.js'; <del> import { CONTEXT_CHAT_ENABLED, CONTEXT_CHAT_INPUT_CURSOR_AT_TOP, CONTEXT_IN_CHAT_INPUT, CONTEXT_IN_CHAT_SESSION, CONTEXT_IN_QUICK_CHAT } from '../../common/chatContextKeys.js'; </del> <ins> import { CONTEXT_CHAT_ENABLED, CONTEXT_CHAT_INPUT_CURSOR_AT_TOP, CONTEXT_IN_CHAT_INPUT, CONTEXT_IN_CHAT_SESSION } from '../../common/chatContextKeys.js'; </ins> import { IChatDetail, IChatService } from '../../common/chatService.js'; import { IChatRequestViewModel, IChatResponseViewModel, isRequestVM } from '../../common/chatViewModel.js'; import { IChatWidgetHistoryService } from '../../common/chatWidgetHistoryService.js';

when: ContextKeyExpr.or(IsWindowsContext, IsLinuxContext), primary: KeyMod.CtrlCmd | KeyCode.UpArrow, weight: KeybindingWeight.EditorContrib, <del> }, { when: ContextKeyExpr.and(CONTEXT_IN_CHAT_SESSION, CONTEXT_IN_QUICK_CHAT), primary: KeyMod.CtrlCmd | KeyCode.DownArrow, weight: KeybindingWeight.WorkbenchContrib, </del> } ] });

id: 'workbench.action.chat.focusInput', title: localize2('interactiveSession.focusInput.label', "Focus Chat Input"), f1: false, <del> keybinding: [ { primary: KeyMod.CtrlCmd | KeyCode.DownArrow, weight: KeybindingWeight.WorkbenchContrib, when: ContextKeyExpr.and(CONTEXT_IN_CHAT_SESSION, CONTEXT_IN_CHAT_INPUT.negate(), CONTEXT_IN_QUICK_CHAT.negate()), }, { when: ContextKeyExpr.and(CONTEXT_IN_CHAT_SESSION, CONTEXT_IN_CHAT_INPUT.negate(), CONTEXT_IN_QUICK_CHAT), primary: KeyMod.CtrlCmd | KeyCode.UpArrow, weight: KeybindingWeight.WorkbenchContrib, } ] </del> <ins> keybinding: { primary: KeyMod.CtrlCmd | KeyCode.DownArrow, weight: KeybindingWeight.WorkbenchContrib, when: ContextKeyExpr.and(CONTEXT_IN_CHAT_SESSION, CONTEXT_IN_CHAT_INPUT.negate()) } </ins> }); } run(accessor: ServicesAccessor, ...args: any[]) {