fix(vscode): make model selection accessible to screen readers - #10688
Conversation
Code Review SummaryStatus: No Issues Found | Recommendation: Merge OverviewAll three issues from the
Files Reviewed (11 files)
Reviewed by claude-sonnet-4.6 · 828,753 tokens Review guidance: REVIEW.md from base branch |
There was a problem hiding this comment.
Regression-focused subagent review: please address these confirmed selector regressions before merge.
-
packages/kilo-vscode/webview-ui/src/components/shared/ModelSelector.tsxnow setsaria-hidden={!expanded()}on the always-mounted preview.ModelPreviewcontains focusable favorite controls and can include links; when collapsed those controls can still receive keyboard focus while being removed from the accessibility tree. Do not render them while collapsed or make the hidden subtree inert/non-focusable, and add a collapsed-tab-order test. -
The same file replaces expanded-mode preview behavior with
onClick={() => selectRow(row)}for every model option and removes the explicit select affordance. A pointer user expanding the picker to inspect model details now applies a model and closes on one click instead of previewing before committing. Preserve a preview-before-select path in expanded mode and test it. -
The new
role=\"group\"wrapper makes every.model-selector-group-labelits container's first child, so existing.model-selector-group-label:not(:first-child)separators no longer render. Update the group separator selector/layout to preserve visual grouping.
a4b6178 to
96d2d3a
Compare
Findings were addressed in the follow-up commit and the updated bot review reports no issues found.
…-picker fix(vscode): make model selection accessible to screen readers
Screen reader users cannot reliably choose models in the VS Code webview because the searchable selector retains focus in an input while moving only a visual option highlight. Model selectors in settings also expose a chosen value without reliably identifying which setting is being changed.
This change makes the shared model selector a labelled searchable combobox/listbox interaction with stable active-option announcements during keyboard navigation. Enter and Escape retain predictable select and dismiss behavior, empty/default states and preview controls are exposed to assistive technology, favorite actions no longer conflict with option semantics, and settings or mode-override selectors identify their specific purpose and description.