Skip to content

Agents sessions: accessibility help, scoped focus commands, and ARIA semantics#308339

Merged
meganrogge merged 4 commits intomainfrom
merogge/agent-of-accessibility
Apr 7, 2026
Merged

Agents sessions: accessibility help, scoped focus commands, and ARIA semantics#308339
meganrogge merged 4 commits intomainfrom
merogge/agent-of-accessibility

Conversation

@meganrogge
Copy link
Copy Markdown
Collaborator

@meganrogge meganrogge commented Apr 7, 2026

fixes #308259
fixes #308258
fixes #308260
fixes #308265
fixes #308322
fixes #308327

This updates accessibility behavior in the Sessions window: adds a dedicated accessibility help surface for chat input, hardens focus-command scoping, and improves ARIA semantics/labels across key UI surfaces. It also aligns keyboard navigation feedback for empty Changes view states.

  • Accessibility help + verbosity control

    • Added Sessions chat accessibility help provider (Alt+F1) with Sessions-specific keybinding guidance.
    • Added accessibility.verbosity.sessionsChat to control chat input hint announcements.
  • Focus command behavior

    • Added Sessions focus commands for Changes, File Explorer, and Chat Customizations.
    • Scoped the Chat Customizations keybinding to Sessions (IsSessionsWindowContext) to avoid global shortcut conflicts.
  • ARIA and landmark improvements

    • Added auxiliary bar landmark semantics (role="complementary" + label).
    • Added workspace picker button aria-label.
    • Improved session list item labels to include creation time context.
    • Announce "No changes" when focusing an empty Changes view.

Copilot AI review requested due to automatic review settings April 7, 2026 21:46
@meganrogge meganrogge self-assigned this Apr 7, 2026
@meganrogge meganrogge added this to the 1.116.0 milestone Apr 7, 2026
@meganrogge meganrogge enabled auto-merge (squash) April 7, 2026 21:48
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

Improves accessibility in the Agents app (sessions window) by adding an accessibility help provider for the chat input, adding keyboard focus commands for key views, and strengthening ARIA semantics/labels across sessions UI components.

Changes:

  • Added Sessions Chat accessibility help (Alt+F1) and a new verbosity setting accessibility.verbosity.sessionsChat to control chat input ARIA hints.
  • Added focus actions/keybindings for Changes view, File Explorer, and Chat Customizations; improved focus behavior when Changes is empty.
  • Added/updated ARIA labels/landmarks (auxiliary bar landmark label, workspace picker button, session list item labels with creation time).
Show a summary per file
File Description
src/vs/workbench/contrib/accessibility/browser/accessibilityConfiguration.ts Adds accessibility.verbosity.sessionsChat setting.
src/vs/sessions/contrib/sessions/browser/views/sessionsView.ts Exposes a focus method for the customizations widget.
src/vs/sessions/contrib/sessions/browser/views/sessionsList.ts Expands session item ARIA labels to include creation time.
src/vs/sessions/contrib/sessions/browser/aiCustomizationShortcutsWidget.ts Adds a focus target for keyboard navigation into customizations header.
src/vs/sessions/contrib/chat/browser/sessionWorkspacePicker.ts Adds ARIA labels guiding users to pick a workspace.
src/vs/sessions/contrib/chat/browser/sessionsChatAccessibilityHelp.ts New accessible help content provider for sessions chat input.
src/vs/sessions/contrib/chat/browser/newChatViewPane.ts Adds verbose ARIA label hinting accessibility help + setting-based updates.
src/vs/sessions/contrib/chat/browser/chat.contribution.ts Registers the Sessions Chat accessible help provider.
src/vs/sessions/contrib/changes/browser/changesViewActions.ts Adds focus commands/keybindings for Changes view and sessions file explorer.
src/vs/sessions/contrib/changes/browser/changesView.ts Tweaks focus behavior for empty vs non-empty Changes tree.
src/vs/sessions/contrib/changes/browser/changesView.contribution.ts Minor metadata formatting fix (trailing comma).
src/vs/sessions/contrib/aiCustomizationTreeView/browser/aiCustomizationTreeView.ts Introduces command ID constant for focusing customizations.
src/vs/sessions/contrib/aiCustomizationTreeView/browser/aiCustomizationTreeView.contribution.ts Registers Focus Chat Customizations action + keybinding.
src/vs/sessions/browser/parts/auxiliaryBarPart.ts Adds landmark role/label to auxiliary bar container.
src/vs/platform/accessibility/browser/accessibleView.ts Adds AccessibleViewProviderId.SessionsChat.

Copilot's findings

Comments suppressed due to low confidence (1)

src/vs/sessions/contrib/changes/browser/changesView.ts:805

  • In the empty-state branch, focus is moved to this.element but nothing explicitly announces the empty state to screen readers (the welcome text isn't focused and there's no aria-live / accessibility alert). If the intent is to "alert" that there are no changes when the view is focused, consider using an accessibility announcement (aria.alert(...) / IAccessibilityService.alert(...)) or focusing a dedicated empty-state element with an appropriate ARIA role/message.
		if (this.tree && this.tree.getNode(null).visibleChildrenCount > 0) {
			this.tree.domFocus();
		} else {
			if (this.element && !this.element.hasAttribute('tabindex')) {
				this.element.setAttribute('tabindex', '0');
			}
			this.element.focus();
		}
  • Files reviewed: 15/15 changed files
  • Comments generated: 3

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Copilot AI changed the title Agents app: Accessibility help dialog, focus commands, and ARIA improvements Agents sessions: accessibility help, scoped focus commands, and ARIA semantics Apr 7, 2026
@meganrogge meganrogge merged commit 78216c7 into main Apr 7, 2026
23 checks passed
@meganrogge meganrogge deleted the merogge/agent-of-accessibility branch April 7, 2026 22:46
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment