Skip to content

a11y: make message history and action buttons accessible to screen readers#12901

Open
drewpoling2 wants to merge 1 commit into
continuedev:mainfrom
drewpoling2:main
Open

a11y: make message history and action buttons accessible to screen readers#12901
drewpoling2 wants to merge 1 commit into
continuedev:mainfrom
drewpoling2:main

Conversation

@drewpoling2

@drewpoling2 drewpoling2 commented Jun 26, 2026

Copy link
Copy Markdown
  • Add role=log, aria-label, and aria-live to message history container
  • Add tabIndex and aria-label to individual message wrappers
  • Pass aria-label through HeaderButtonWithToolTip to underlying button
  • Make response action buttons keyboard accessible (tabIndex 0)

Fixes #12331

Description

The Continue chat UI was not accessible to screen reader users.
Message history had no semantic role or label, individual messages
were not in the tab order, and action buttons lacked aria-labels.

AI Code Review

  • Team members only: AI review runs automatically when PR is opened or marked ready for review
  • Team members can also trigger a review by commenting @continue-review

Checklist

  • I've read the contributing guide
  • The relevant docs, if any, have been updated or created
  • The relevant tests, if any, have been updated or created

Screen recording or screenshot

N/A - changes are aria attributes and tab order, not visual

Tests

Manually verified with VoiceOver on macOS (Cmd+F5). Message history
container is now announced, individual messages are reachable via tab,
and action buttons are announced with descriptive labels.


Summary by cubic

Make chat message history and response action buttons accessible to screen readers and keyboard users by adding roles, labels, and tab navigation. Fixes #12331.

  • Bug Fixes
    • Set role="log", aria-label "Message history", and aria-live="polite" on the message list container.
    • Added tabIndex=0 and descriptive aria-labels to each message wrapper.
    • Passed ariaLabel through HeaderButtonWithToolTip to the underlying button.
    • Ensured response action buttons are focusable and in the tab order.

Written for commit 0dc46a7. Summary will update on new commits.

Review in cubic

…aders

- Add role=log, aria-label, and aria-live to message history container
- Add tabIndex and aria-label to individual message wrappers
- Pass aria-label through HeaderButtonWithToolTip to underlying button
- Make response action buttons keyboard accessible (tabIndex 0)

Fixes continuedev#12331
@drewpoling2 drewpoling2 requested a review from a team as a code owner June 26, 2026 04:58
@drewpoling2 drewpoling2 requested review from sestinj and removed request for a team June 26, 2026 04:58
@dosubot dosubot Bot added the size:S This PR changes 10-29 lines, ignoring generated files. label Jun 26, 2026
@github-actions

github-actions Bot commented Jun 26, 2026

Copy link
Copy Markdown
Contributor

All contributors have signed the CLA ✍️ ✅
Posted by the CLA Assistant Lite bot.

@drewpoling2

Copy link
Copy Markdown
Author

I have read the CLA Document and I hereby sign the CLA

@cubic-dev-ai cubic-dev-ai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

No issues found across 2 files

Re-trigger cubic

@drewpoling2

Copy link
Copy Markdown
Author

CI failure appears to be in the IntelliJ integration test suite which is unrelated to these changes. My changes are scoped to the VS Code GUI layer only (Chat.tsx, HeaderButtonWithToolTip.tsx, ResponseActions.tsx). Happy to investigate further if needed.

@itxaiohanglover

Copy link
Copy Markdown

Nice a11y fix! Adding aria-label with fallback to text ensures screen readers can identify buttons. The import cleanup is a tidy bonus.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:S This PR changes 10-29 lines, ignoring generated files.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

A11Y: Make message history accessible in VS Code

2 participants