Telegram (ask questions / claim the issue here first): https://t.me/+DOylgFv1jyJlNzM0
Why this matters
frontend/src/components/dashboard/StreamDetailsModal.tsx:21-38 - this modal hand-rolls a window keydown/Escape listener and its outer div has no role=dialog, no aria-modal, no aria-labelledby, no focus trap, no body scroll-lock, and no focus restore. Every sibling modal uses useModalDialog which provides all of that. Keyboard/SR users can Tab out of this modal into the page behind it and focus is not returned on close.
Acceptance criteria
Files to touch
frontend/src/components/dashboard/StreamDetailsModal.tsx
Out of scope
- Other modals already remediated
- Visual restyle of the modal
Why this matters
frontend/src/components/dashboard/StreamDetailsModal.tsx:21-38 - this modal hand-rolls a window keydown/Escape listener and its outer div has no role=dialog, no aria-modal, no aria-labelledby, no focus trap, no body scroll-lock, and no focus restore. Every sibling modal uses useModalDialog which provides all of that. Keyboard/SR users can Tab out of this modal into the page behind it and focus is not returned on close.
Acceptance criteria
Files to touch
frontend/src/components/dashboard/StreamDetailsModal.tsxOut of scope