Description
The custom "Share" popover on `app/app/stream/[id]/page.tsx:817-847` is a plain `absolute`-positioned div with no click-outside-to-close, no Escape-to-close, no `aria-expanded`/`aria-haspopup` on its trigger, and no focus return on close — unlike the Base-UI-backed `DropdownMenu`s used elsewhere in the app.
Location
`app/app/stream/[id]/page.tsx:817-847`
Task
Either replace this custom popover with the app's existing `DropdownMenu`/`Popover` primitive from `components/ui/`, or add the missing behaviors manually (click-outside handler, Escape handler, `aria-expanded`/`aria-haspopup` on the trigger, and focus return to the trigger on close).
Good for contributors because
Clear, well-scoped a11y hardening task, ideally solved by reusing an existing primitive already used elsewhere in the app.
Description
The custom "Share" popover on `app/app/stream/[id]/page.tsx:817-847` is a plain `absolute`-positioned div with no click-outside-to-close, no Escape-to-close, no `aria-expanded`/`aria-haspopup` on its trigger, and no focus return on close — unlike the Base-UI-backed `DropdownMenu`s used elsewhere in the app.
Location
`app/app/stream/[id]/page.tsx:817-847`
Task
Either replace this custom popover with the app's existing `DropdownMenu`/`Popover` primitive from `components/ui/`, or add the missing behaviors manually (click-outside handler, Escape handler, `aria-expanded`/`aria-haspopup` on the trigger, and focus return to the trigger on close).
Good for contributors because
Clear, well-scoped a11y hardening task, ideally solved by reusing an existing primitive already used elsewhere in the app.