The shell's follow-ups: skip link, focus on navigation, a Contents that keeps up, the owner sees Settings (#780, D93) #789
Loading…
Reference in a new issue
No description provided.
Delete branch "build/shell-followups"
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?
Five shell changes the owner decided on 2026-09-23 (B5, B7, B11, B12 and the bell alias, recorded on #729). Closes #780.
Whole journeys suite: 27 passed, 3 skipped (J2's lane-4 placeholder in each project), on desktop, phone and keyboard.
a11y-baseline.jsis still{}. vitest 1978/1978 (142 files); eslint 0 errors, warnings unchanged; ruff clean.1. D93: the owner sees Settings even as a plain player
is_owner(additive, not the bot API).settingsFor({ gm, owner })and shows it whenever that list isn't empty:2. #780: a skip link, and focus that moves on navigation
Skip link (
IS-292, WCAG 2.4.1), a newSkipLinkin the kit:<main>directly rather than changing the URL fragment, so neither the router nor the leave guard sees it.Focus on navigation (
IS-296),shell/useRouteFocus.js. After a pathname change it focuses the fragment's section (the bell's alias included), else the page'sh1, else<main>until the heading arrives. It deliberately does nothing:?tab=change;It also stops the moment focus goes anywhere else, so it can't fight the reader. I read the hook in review for exactly that. The focused heading takes
tabindex=-1only while focused.J1 now proves both by keyboard alone on every project: Tab reaches the skip link, which is actually drawn; Enter focuses
main#main; the next Tab lands in the page. After entering This week through the Contents, focus is on the page's heading.3. The Contents rail keeps up
onApiWriteannouncement inapi/client.js, fired after the cache is cleared. A wiki or notes write doesn't match, so it doesn't re-fetch.4. Home's buttons on a fresh campaign
5. The bell's old
/profile#notificationsThe leave prompt now honours the section alias, so a dirty Profile following the bell's old link isn't asked about leaving a page it isn't leaving.
Found, not fixed
.book__mainis the scroll container, so a new page can open part-way down. Focusing the heading scrolls it into view after a keyboard or pointer move, but there's no general reset or restoration.document.title. #780 mentions announcing the new title; for now the focusedh1is what's read out.CHANGELOG.md's[Unreleased]has a second**Added**/**Fixed**pair further down, predating this branch. It gets fixed once the PRs in flight have landed, so it doesn't conflict with all of them.🤖 Generated with Claude Code