Every line is a test in three engines or a gate on every commit. The gaps are listed the same way, each with the requirement that will close it.
MeasuredARIA pattern named in the class JSDoclibs/components/topbar/src/topbar.ts
n/aKeyboard map tested key by keynot applicable — no handler; the reading order is measured in apps/sandbox-e2e/src/frame.spec.ts
Measuredaxe audit on the component's own sandbox viewapps/sandbox-e2e/src/a11y.spec.ts — /frame in SBX_ROUTES
MeasuredVisual screenshotapps/sandbox-e2e/src/visual.spec.ts — frame-app and frame-app-rtl
Measuredforced-colors: active — no state carried by colour alonelibs/components/topbar/src/topbar.scss — the edge CanvasText; the bar has no state. The reading: apps/sandbox-e2e/src/forced-colors.spec.ts
n/aprefers-reduced-motion — duration from a tokennot applicable — the bar moves nothing
n/aTouch target ≥ 24×24 px outrightnot applicable — the bar's targets are the consumer's controls
MeasuredSize axis aligned to --pct-control-height-*deliberately not: the bar is not a control; its height is a floor of its own (--pct-topbar-height), above the tallest control it holds
MeasuredDensity axislibs/tokens/src/component.topbar.json — the padding and the gap stand on space.3 and space.5, which the compact scope re-points
MeasuredRTL — no physical properties + a dir="rtl" screenshotlogical properties only, held by check-styles; the screenshot frame-app-rtl, where the end stands at the left
MeasuredSSR + hydration with no NG05xxapps/sandbox-e2e/src/hydration.spec.ts — /frame in SBX_ROUTES
n/aFormsnot applicable — the bar holds no value
MeasuredParts registered in the inventorylibs/components/parts.snapshot.md — the three parts above
MeasuredTokens registered + an entry in contrast.policy.jsonlibs/tokens/src/contrast.policy.json — the text on the bar (AA error), the edge (UI warn); libs/tokens/tokens.snapshot.md
n/aStrings through PCT_TEXTSnot applicable — the component writes no word of its own
MeasuredEntrypoint size budgetlibs/components/size.snapshot.md — the ./topbar row
MeasuredScreen-reader logRead 2026-11-02 from docs/acr/at/ — three readers, whole sandbox. The bar's controls are read as themselves, in the bar's order: Orca Sign out · button. and, on the long title's bar, Edit · button.; NVDA Edit, button; VoiceOver Sign out button, and lost the page after it. The bars of /frame stand inside the sandbox's <main>, so none of the three is a banner and no reader said one — the landmark is the platform's answer where the outline makes the <header> the page's own
MeasuredA docs page with live examplesapps/sandbox/src/app/views/frame/ (the sandbox view). The published site: /components/topbar, its demos' source in the code tab
MeasuredUnit + mutationlibs/components/topbar/src/topbar.spec.ts; the narrow Stryker run of 2026-11-02 generates zero mutants for topbar.ts — two classes with no logic offer nothing to break. The file stays in mutation.policy.json, so the day it grows logic the report owes a row