Skip to content

Correct session history keyboard and screen-reader semantics #10672

@marius-kilocode

Description

@marius-kilocode

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

  1. Open session history with multiple sessions present.
  2. Navigate session rows and their rename or delete controls with a keyboard and screen reader.
  3. Observe nested controls and unreliable or ambiguous focus semantics for row actions.

Metadata

Metadata

Assignees

No one assigned

    Labels

    a11yAccessibility issuesbugSomething isn't working

    Type

    No type
    No fields configured for issues without a type.

    Projects

    Status
    Done

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions