Change:
Type: <bBug</bCC Currently, auto synth read-aloud is used universally in Chat for both voice and manual query when screen reader mode is on whereas non-SR users hear the auto synth only when the voice query is used: Please disable auto synth read-aloud and use aria-live for manual query for SR users. This is because SR users may want to intentionally (and selectively) use the auto synth read-aloud just like sighted users. Non-SR users may easily think that the auto synth read-aloud and aria-live provide the same result; however, that's not the case. SR's TTS is a more customized speech output (e.g., rate; volume; voice color) while the auto synth read-aloud is a factory (less configurable) output. We have to carefully avoid any overgeneralization under a simple assumption that the two methods share the same audio modality. Based on my experience over the past couple of days, I feel like using aria-live for manual query and auto synth read-aloud for voice query has been more preferrable and offered a more pleasant experience. VS Code version: Code - Insiders 1.94.0-insider (, 2024-09-19T05:04:09.996Z) 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.231.1112 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.4.0 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.6 black-formatter2024.3. debugpy2024.11. flake82023.13. isort2023.13. python2024.15. vscode-pylance2024.9.101 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.1817 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.13.1 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.5940 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 --
I made this change because you suggested it Thanks for testing it out, I'll revert this.
<!-- AUTHORVERIFICATIONREQUEST --This bug has been fixed in the latest release of ! you can help us out by commenting if things are now working as expected. If things still don't seem right, please ensure you're on version of Insiders (today's or later - you can use in the command palette to check), and leave a comment letting us know what isn't working as expected. Happy Coding!
Can you please add some steps to verify this. Gave it a try but not sure what expected behavior is
Enable a screen reader, type chat input and hit enter, ensure you hear the response when it comes back.

Discussion:
localize('accessibility.voice.autoSynthesize.off', "Disable the feature."), localize('accessibility.voice.autoSynthesize.auto', "When a screen reader is detected, disable the feature. Otherwise, enable the feature.") ], <del> 'markdownDescription': localize('autoSynthesize', "Whether a textual response should automatically be read out aloud. For non screen reader users, this will happen when speech was used as input. For screen reader users, this will happen with any input type. For example, in a chat session, a response is automatically synthesized when voice is used as chat request."), </del> <ins> 'markdownDescription': localize('autoSynthesize', "Whether a textual response should automatically be read out aloud when speech was used as input. For example in a chat session, a response is automatically synthesized when voice was used as chat request."), </ins> 'default': this.productService.quality !== 'stable' ? 'auto' : 'off', // TODO@bpasero decide on a default 'tags': ['accessibility'] }

import { MarkdownString } from '../../../../base/common/htmlContent.js'; import { IConfigurationService } from '../../../../platform/configuration/common/configuration.js'; import { AccessibilityVoiceSettingId } from '../../accessibility/browser/accessibilityConfiguration.js'; <del> import { ICommandService } from '../../../../platform/commands/common/commands.js'; </del> const CHAT_RESPONSE_PENDING_ALLOWANCE_MS = 4000; export class ChatAccessibilityService extends Disposable implements IChatAccessibilityService {

constructor( @IAccessibilitySignalService private readonly _accessibilitySignalService: IAccessibilitySignalService, @IInstantiationService private readonly _instantiationService: IInstantiationService, <del> @IConfigurationService private readonly _configurationService: IConfigurationService, @ICommandService private readonly _commandService: ICommandService, </del> <ins> @IConfigurationService private readonly _configurationService: IConfigurationService </ins> ) { super(); }

} const errorDetails = isPanelChat && response.errorDetails ? ` ${response.errorDetails.message}` : ''; const plainTextResponse = renderStringAsPlaintext(new MarkdownString(responseContent)); <del> if (this._configurationService.getValue(AccessibilityVoiceSettingId.AutoSynthesize) === 'on' && !isVoiceInput) { this._commandService.executeCommand('workbench.action.chat.readChatResponseAloud'); } else { </del> <ins> if (!isVoiceInput || this._configurationService.getValue(AccessibilityVoiceSettingId.AutoSynthesize) !== 'on') { </ins> status(plainTextResponse + errorDetails); } }