[1.56.2] — 2026-05-19
feat(a11y): UX-N1 — per-route, locale-aware document.title (multi-tab orientation + screen-reader page-change announcement).
✨ Features
- Every SPA route now sets a distinct, localized
document.title. Pre-fix all 24 routes kept the staticindex.html<title>("career-ops — command center"), so multi-tab browsers showed identical tab labels, bookmarks were generic, and the screen-reader "page changed" announcement read the same on every navigation.public/js/router.jsfocusNewView()now derives the title from the view's own localized<h1 class="page-title">—"<View> — career-ops"— so titles are automatically translated (no new i18n keys) and distinct per route. Set before the first-paint guard so the initial tab is titled too (the same ordering rule the v1.56.0 UX-12tabindexset follows). Falls back tocareer-ops — command centerwhen a view has no heading.
🧪 Tests
- New CI-isolated source-static suite
tests/document-title-per-route.test.mjs(4):focusNewViewassignsdocument.title; the title is derived from the view<h1>textContent (per-route + localized, not one hardcoded literal); the assignment precedes the!firstPaintDoneearly-return; a sane product default is present. router.js is browser-only → asserted statically (same approach asdashboard-initial-focus.test.mjs). 817 → 821.