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/sparkline/src/sparkline.ts — the img role on the host
MeasuredKeyboard map tested key by keyapps/sandbox-e2e/src/sparkline.spec.ts — the empty map is the claim: no element in the component has a tab index
Measuredaxe audit on the component's own sandbox viewapps/sandbox-e2e/src/a11y.spec.ts — /sparkline in SBX_ROUTES
GapVisual screenshotnone — gap: no baseline yet; the geometry a screenshot would show is measured instead in apps/sandbox-e2e/src/sparkline.spec.ts — the box of six by one em, the line at its width, the dot round and at the right edge
Measuredforced-colors: active — no state carried by colour alonelibs/components/sparkline/src/sparkline.scss — the line, the bars, a band's on-slots and the dots in CanvasText, the area left empty, an off-slot an edge on Canvas
n/aprefers-reduced-motion — duration from a tokennot applicable — no motion at all
n/aTouch target ≥ 24×24 px outrightnot applicable — nothing here is a target
MeasuredSize axis aligned to --pct-control-height-*deliberately not: a sparkline is no control, and its box is a word's, sized by the consumer's CSS
MeasuredRTL — no physical properties + a dir="rtl" screenshotlogical properties only, held by check-styles; a series runs left to right in every direction (direction: ltr on the drawing), as the chart's axis does; no screenshot, as above
MeasuredSSR + hydration with no NG05xxapps/sandbox-e2e/src/hydration.spec.ts — /sparkline in SBX_ROUTES; the server draws the whole picture, nothing is measured
n/aFormsnot applicable — a picture holds no value a form owns
MeasuredParts registered in the inventorylibs/components/parts.snapshot.md, tools/check-parts.mjs — the Parts row above
MeasuredTokens registered + an entry in contrast.policy.jsonlibs/tokens/src/contrast.policy.json — the drawing and the dots on both surfaces (UI error, 4), a band's off-slot on the surface (UI warn); libs/tokens/tokens.snapshot.md
MeasuredStrings through PCT_TEXTSlibs/components/core/src/texts.ts — sparklineLast, sparklineEmpty; libs/components/texts.snapshot.md
MeasuredEntrypoint size budgetlibs/components/size.snapshot.md — the ./sparkline row, on ./core alone
MeasuredScreen-reader logRead 2026-11-05 from docs/acr/at/ — three readers, whole sandbox. Not reachable by this instrument, which is the claim itself: a sparkline takes no focus, and /sparkline walks from the page to the demo's one button (Next hour button main, Next hour · button.) and out to the scaffold, past every picture. What a reader hears on meeting one — its row's name and the sentence of aria-describedby — needs a reader asked to READ the table rather than walk it
MeasuredA docs page with live examplesapps/sandbox/src/app/views/sparkline/ (the sandbox view). The published site: /components/sparkline — prerendered, the demo's own source is the code tab
MeasuredUnit + mutationlibs/components/sparkline/src/sparkline.spec.ts — 11 cases; libs/components/mutation.snapshot.md — sparkline.ts