Skip to content

fix(vscode): expose prompt suggestions to screen readers#10689

Open
marius-kilocode wants to merge 6 commits into
mainfrom
fix-vscode-a11y-prompt-suggestions
Open

fix(vscode): expose prompt suggestions to screen readers#10689
marius-kilocode wants to merge 6 commits into
mainfrom
fix-vscode-a11y-prompt-suggestions

Conversation

@marius-kilocode
Copy link
Copy Markdown
Collaborator

The primary chat prompt and its suggestion popups are not reliably operable with a screen reader: the editor loses a meaningful accessible name once text is entered, and @ file mentions and / commands provide no programmatic popup, active-option, selection, or empty-result feedback.

This change gives the prompt a stable combobox contract and exposes both suggestion flows as linked listboxes with announced traversal, loading, empty, and selection states. It preserves existing insertion and action behavior while ensuring unresolved command loading does not leave assistive feedback stuck indefinitely. Focused interaction coverage protects the repaired workflows and their async edge cases.

Related to #10654 and #10673.

@marius-kilocode marius-kilocode enabled auto-merge May 28, 2026 15:17
@kilo-code-bot
Copy link
Copy Markdown
Contributor

kilo-code-bot Bot commented May 28, 2026

Code Review Summary

Status: No Issues Found | Recommendation: Merge

Full review completed against HEAD 811d3878b93c2027e6ee0ff96d2c14ce1595fe66. The two most recent commits since the previous checkpoint are:

  • fix(vscode): translate prompt labels in Italian — adds the 5 missing i18n keys to it.ts (already covered in the full diff)
  • chore: update kilo-vscode visual regression baselines — CI-generated PNG, not reviewed per policy

All source changes are clean. The existing general comment on the PR covers the only design-level consideration (stale broader-query responses surfacing when pending() is true).

Files Reviewed (13 source files + 19 i18n files)
  • .changeset/accessible-prompt-suggestions.md
  • packages/kilo-vscode/src/KiloProvider.ts
  • packages/kilo-vscode/tests/prompt-input-a11y.spec.ts
  • packages/kilo-vscode/tests/unit/kilo-provider-commands.test.ts
  • packages/kilo-vscode/tests/unit/use-file-mention.test.ts
  • packages/kilo-vscode/webview-ui/src/components/chat/PromptInput.tsx
  • packages/kilo-vscode/webview-ui/src/hooks/useFileMention.ts
  • packages/kilo-vscode/webview-ui/src/hooks/useSlashCommand.ts
  • packages/kilo-vscode/webview-ui/src/stories/prompt-input.stories.tsx
  • packages/kilo-docs/public/img/screenshot-tests/kilo-vscode/visual-regression/prompt-input/suggestions-chromium-linux.png (CI-generated baseline — not reviewed)
  • 19 i18n locale files (all received consistent key additions, including Italian fix)

Reviewed by claude-sonnet-4.6 · 1,359,783 tokens

Review guidance: REVIEW.md from base branch main

Copy link
Copy Markdown
Contributor

@kilo-code-bot kilo-code-bot Bot left a comment

Choose a reason for hiding this comment

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

Regression-focused subagent review: no merge-blocking accessibility regression identified, but there is a latency/interaction risk worth covering before relying on the new announcement behavior.

In packages/kilo-vscode/webview-ui/src/hooks/useFileMention.ts, incrementing fileSearchCounter before the debounce fires immediately discards an in-flight broader-query response. If that response already contains results matching the newly typed narrower query, users now see an empty/loading suggestion menu until the next debounced request returns, whereas the prior handler could filter and present those valid results. This affects keyboard and mouse suggestion selection under latency. Consider retaining matching provisional results while pending() stays true, and add a test for an in-flight broader response that contains a valid narrower-query match.

@marius-kilocode marius-kilocode force-pushed the fix-vscode-a11y-prompt-suggestions branch from 740e709 to 6c785e3 Compare May 29, 2026 11:06
@marius-kilocode marius-kilocode force-pushed the fix-vscode-a11y-prompt-suggestions branch from 58c829e to 4d02387 Compare May 29, 2026 12:50
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.

1 participant