Skip to content

Conversation

Copilot
Copy link
Contributor

@Copilot Copilot AI commented Aug 15, 2025

demo.mov

Screen reader users might miss chat confirmation dialogs when they're focused in the editor, making it difficult to interact with chat agents that require user confirmation. This PR adds a new accessibility command to help users discover and interact with these confirmation dialogs.

New Feature

Adds a new command "Announce Chat Confirmation Status" with keyboard shortcut Alt+A that:

  • Announces confirmation status to screen readers using aria.alert()
  • Counts active confirmations and reports the number of actions needed
  • Auto-focuses the first confirmation dialog for immediate interaction
  • Provides feedback when no confirmations are pending

Implementation

The command scans the current chat session's view model to detect active confirmations by checking for content.kind === 'confirmation' && !content.isUsed. When confirmations are found, it announces:

  • "Chat confirmation required. X action(s) needed." (focuses first dialog)
  • "No chat confirmation required." (when none pending)

Accessibility Documentation

The new command is documented in the Chat Accessibility Help dialog alongside other chat accessibility commands, making it discoverable to users who rely on screen readers.

Usage

Users can press Alt+A while in a chat session or invoke "Announce Chat Confirmation Status" from the Command Palette (F1). The command is context-aware and only available during active chat sessions.

Files Changed

  • src/vs/workbench/contrib/chat/browser/actions/chatAccessibilityActions.ts (new file)
  • src/vs/workbench/contrib/chat/browser/chat.contribution.ts (registration)
  • src/vs/workbench/contrib/chat/browser/actions/chatAccessibilityHelp.ts (documentation)

The implementation follows established VS Code patterns for accessibility and makes minimal, surgical changes to the existing codebase.

Fixes #261864.
Fixes #262502


✨ Let Copilot coding agent set things up for you — coding agent works faster and does higher quality work when set up for your repo.

@Copilot Copilot AI changed the title [WIP] Have command to announce/focus chat confirmation dialog Add command to announce and focus chat confirmation dialogs for accessibility Aug 15, 2025
@Copilot Copilot AI requested a review from meganrogge August 15, 2025 19:50
Copilot finished work on behalf of meganrogge August 15, 2025 19:50
@meganrogge
Copy link
Contributor

@copilot ensure this is indicated in the Chat Accessibility Help dialog

Copy link
Contributor Author

Copilot AI commented Aug 15, 2025

@copilot ensure this is indicated in the Chat Accessibility Help dialog

Added documentation for the "Announce Chat Confirmation Status" command to the Chat Accessibility Help dialog in commit 8f1c7e4. The command is now properly documented with its Alt+A keybinding in both panel chat and quick chat help sections.

Warning

Firewall rules blocked me from connecting to one or more addresses

I tried to connect to the following addresses, but was blocked by firewall rules:

  • electronjs.org
    • Triggering command: node-gyp (dns block)

If you need me to access, download, or install something from one of these locations, you can either:

Copilot finished work on behalf of meganrogge August 15, 2025 21:12
@meganrogge meganrogge changed the title Add command to announce and focus chat confirmation dialogs for accessibility Add command to announce and focus chat confirmation dialogs for accessibility, add focsuable around the confirmation widget and aria label Aug 20, 2025
@meganrogge meganrogge changed the title Add command to announce and focus chat confirmation dialogs for accessibility, add focsuable around the confirmation widget and aria label Fix accessibility issues with confirmation widget, add command to focus it directly if present, announce none if not present Aug 20, 2025
@meganrogge meganrogge marked this pull request as ready for review August 20, 2025 14:50
@vs-code-engineering vs-code-engineering bot added this to the August 2025 milestone Aug 20, 2025
bpasero
bpasero previously approved these changes Aug 20, 2025
Tyriar
Tyriar previously requested changes Aug 20, 2025
@@ -302,6 +306,7 @@ export class SimpleChatConfirmationWidget extends BaseSimpleChatConfirmationWidg

export interface IChatConfirmationWidget2Options {
title: string | IMarkdownString;
message: string | IMarkdownString | HTMLElement;
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't think message is being used?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

that is being used - it gets passed to the base chat confirmation widget to be used in the aria label

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

const container = createAccessibilityContainer(title, message);

@meganrogge meganrogge enabled auto-merge (squash) August 20, 2025 15:05
@meganrogge meganrogge merged commit fb62c1e into main Aug 20, 2025
18 checks passed
@meganrogge meganrogge deleted the copilot/fix-261864 branch August 20, 2025 15:20
Tyriar added a commit that referenced this pull request Aug 20, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

chat confirmation message is inaccessible via keyboard/for screen reader users Have command to announce/focus chat confirmation dialog
4 participants