Problem
styles.css sets outline: none on inputs/textareas and only restores a focus ring for textarea:focus/input:focus. The session surface (chat.css) defines :hover states for icon buttons, approval buttons, mode pill, tool cards, and session rows but no :focus/:focus-visible styles. Keyboard/switch users can't see what's focused.
Why it matters
WCAG 2.4.7 Focus Visible. On a dark theme the default UA outline is often invisible/inconsistent.
Suggested fix
Add a consistent :focus-visible ring to all interactive controls.
Where
mobile/src/styles.css (outline:none ~271) and mobile/src/chat.css (interactive elements).
Filed from a UI research sweep of the Helm mobile app (landing + live demo session) using Playwright + full source review, cross-referenced against Claude, ChatGPT, GitHub Copilot Chat, and Codex/Claude Code UIs.
Problem
styles.csssetsoutline: noneon inputs/textareas and only restores a focus ring fortextarea:focus/input:focus. The session surface (chat.css) defines:hoverstates for icon buttons, approval buttons, mode pill, tool cards, and session rows but no:focus/:focus-visiblestyles. Keyboard/switch users can't see what's focused.Why it matters
WCAG 2.4.7 Focus Visible. On a dark theme the default UA outline is often invisible/inconsistent.
Suggested fix
Add a consistent
:focus-visiblering to all interactive controls.Where
mobile/src/styles.css(outline:none~271) andmobile/src/chat.css(interactive elements).Filed from a UI research sweep of the Helm mobile app (landing + live demo session) using Playwright + full source review, cross-referenced against Claude, ChatGPT, GitHub Copilot Chat, and Codex/Claude Code UIs.