[a11y] Desktop sidebar: focus is lost after Pin, Archive, or Delete instead of staying on the trigger or moving to the nearest sibling
Environment
Claude Code Desktop app on macOS. Keyboard and screen reader (VoiceOver).
Summary
Reopening #70426, which the bot auto closed for inactivity. The bug is still present.
When I take an action on a chat in the sidebar (Pin, Archive, Delete, etc.) from its action menu, focus is not kept in the list. It gets dropped back to the app level, the default position on load. Every action throws my focus out of the sidebar.
Priority: High (accessibility blocker). This fails WCAG 2.2 SC 2.4.3 Focus Order. For screen reader users, every sidebar action means going back into the sidebar and finding your place again. This is the second report, since the first one (#70426) was auto closed without triage.
Steps to reproduce
- Open the sidebar.
- Move focus to a chat in the list.
- Open that chat's action menu.
- Invoke an action (Pin, Archive, Delete, etc.).
- Observe where focus lands afterward.
Expected behavior
- If the chat still exists in the current view (Pin, Unpin, Rename), focus returns to the trigger, that same chat row.
- If the chat is removed from the current view (Archive, Delete), focus moves to the closest sibling: the next chat, or the previous one if the removed chat was last.
Actual behavior
Focus leaves the sidebar entirely and returns to the app's default load position. I have to navigate back into the sidebar and find my place again before acting on the next chat.
Impact
This is a big friction point for keyboard and screen reader users. I do batch cleanup a lot, archiving several chats in a row. Right now each action resets my position, so cleaning up 5 chats means traversing back into the sidebar 5 times. It's also disorienting, since there's no announcement of where focus went.
Suggested fix
When a sidebar item action completes, move focus to the originating row if it persists. Otherwise move it to the nearest sibling (next, falling back to previous). Don't reset focus to a global default.
Previous report: #70426
This issue has 1 comment on GitHub. Read the full discussion on GitHub ↗