Skip to content

Make the side panel on phones a proper dialog #347

Open

Description

@abhishekgahlot2

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

  1. 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.
  2. 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.
  3. On close (X, backdrop or Escape), return focus to the button that opened it.

Code to look at:

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

  1. sharmis-tp commented on Oct 21, 2026

    @sharmis-tp

    I'd be glad to take this on. When the phone rail <section> in session-view.tsx opens I'd give it role="dialog", aria-modal and 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?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    accessibilityBarrier affecting people with disabilitieshacktoberfestOpen for Hacktoberfest contributorshelp wantedExtra attention is needed

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions