Accessibility gaps: a finished transcript is announced, public pages take focus, the Contents sheet and Modal hold focus, the statement is in the account menu (#367) #1049
Loading…
Reference in a new issue
No description provided.
Delete branch "fix/367-a11y-gaps"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Part of #367 (the automatable part, plan in comment 51371). The manual screen-reader pass and the real-device check stay the owner's, so #367 stays open.
Summary
TranscriptState.jsx's wrapper is now one persistentrole=statusregion, and the innerBusyis not a second one. A transcript that finishes or fails is announced; before, onlyBusywas live, and it unmounted at exactly that moment.PublicPagecallsuseRouteFocusthe wayAppFrameandTableFramedo, and<main>takestabIndex=-1. Following a link between/,/help…,/privacy,/accessibilityand the rest moves focus to the new page's heading. The hook sits inPublicPage, notPublicFrame, because the crash page rendersPublicFrameoutside the router.role=dialog,aria-modal=true, and Tab wraps inside it (a document keydown, like its Escape). Before, Tab walked into the page behind the scrim.Modal.h1, else<main>, not<body>.AppFrame'saccountItems, which is where the real menu is built, and inAccountMenu's defaults.j0wnow scans/privacy,/accessibilityand/licences(it loaded them and never scanned them), plus/help,/auth-errorand the 404.Changelog
changelog.d/367-a11y-gaps.fixed.md; catalogue SH-4 and IS-197 name the new row.Test plan
src/ui,src/shell,src/pages/session, Accessibility and StartCharacter: 1066 passed, 1 skipped./auth-erroror the 404.🤖 Generated with Claude Code