Repository navigation
Make the side panel on phones a proper dialog #347
Description
On a phone the side panel (Files, Terminal, Browser) slides up over the thread, but focus stays on the button behind it, screen readers can still wander into the hidden conversation, and closing it does not return focus.
Where to start
- The phone sheet is the rail
in frontend/components/chat/session-view.tsx shown with a backdrop button; it has no dialog role, no name and no focus handling. - When it opens, give it role="dialog", aria-modal and a label, move focus into it, keep Tab inside it and make the conversation inert.
- On close (X, backdrop or Escape), return focus to the button that opened it.
Code to look at:
frontend/components/chat/session-view.tsx:632frontend/components/chat/session-view.tsx:773frontend/components/chat/session-view.tsx:789frontend/components/chat/session-thread-actions.tsx:84
Done when
- At 390px, opening the panel moves focus into it and Tab stays inside it.
- VoiceOver can't swipe into the conversation while the panel is open.
- Closing the panel puts focus back on the button that opened it.
Free to try
Sign up free at app.useagent.org. New accounts get free model credits (GLM or Claude Opus, up to a limit) and free cloud sandbox time, enough to finish this task without paying or adding a key.
Send it a small task in plain words and watch it work. You'll see the screens this issue is about. The link in the sign-up email works for 24 hours. Not there? Check spam.
Stuck? Comment here with a screenshot and we'll help.
Keep private details out of here
This page is public. Don't post your real email, phone number, address, payment details, API keys, or screenshots that show any of them. Send anything private, including how you'd like to be paid, to [email protected] with a link to your comment here.
Claim it
Comment /take and the issue is assigned to you. First come, first served.
Rules
- Use the app while you work, and put before and after screenshots or a short recording in your pull request. For backend or docs work, show the result end to end.
- One change per pull request. Run the checks in CONTRIBUTING.md.
- AI help is fine, blind AI output is not. You must understand, run and explain every line you submit.
- Untested or generated pull requests, and pull requests on an issue someone else claimed, are closed without a reply and don't count for Hacktoberfest.
Activity
sharmis-tp commentedon Oct 21, 2026
I'd be glad to take this on. When the phone rail
<section>insession-view.tsxopens I'd give itrole="dialog",aria-modaland a label, move focus into it, keep Tab inside it and make the conversation inert, then return focus to the button that opened it on close by X, backdrop or Escape, verified with focus tests and a screen reader pass at phone width. Could you assign it to me?