Description
Related to #10654.
Session history contains invalid and ambiguous interaction structures for keyboard and screen-reader users. The shared list item is rendered as a button, while history rows insert separate rename and delete buttons inside that button. This nested interactive structure is unreliable for focus and accessible navigation.
Confirmed locations:
packages/ui/src/components/list.tsx renders each list item as a button.
packages/kilo-vscode/webview-ui/src/components/history/SessionList.tsx places rename and delete IconButton controls inside each list item.
Expected behavior:
- A screen-reader user can search and open sessions, identify the selected session, and rename or delete a session through distinct named controls.
- History-source navigation exposes current state and keyboard behavior without nested-control ambiguity.
Implementation scope:
- Restructure session history rows so row activation and row actions are valid, separately reachable controls.
- Retain clear accessible names for rename and delete operations and exposed current selection.
- Verify keyboard behavior and semantic state for Local and Cloud history navigation controls.
- Add focused keyboard and semantic regression coverage for the corrected row design.
Plugins
Kilo Code VS Code extension webview.
Steps to reproduce
- Open session history with multiple sessions present.
- Navigate session rows and their rename or delete controls with a keyboard and screen reader.
- Observe nested controls and unreliable or ambiguous focus semantics for row actions.
Description
Related to #10654.
Session history contains invalid and ambiguous interaction structures for keyboard and screen-reader users. The shared list item is rendered as a button, while history rows insert separate rename and delete buttons inside that button. This nested interactive structure is unreliable for focus and accessible navigation.
Confirmed locations:
packages/ui/src/components/list.tsxrenders each list item as abutton.packages/kilo-vscode/webview-ui/src/components/history/SessionList.tsxplaces rename and deleteIconButtoncontrols inside each list item.Expected behavior:
Implementation scope:
Plugins
Kilo Code VS Code extension webview.
Steps to reproduce