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/chart/src/chart.ts
MeasuredKeyboard map tested key by keythe table above — apps/sandbox-e2e/src/chart.spec.ts
Measuredaxe audit on the component's own sandbox viewapps/sandbox-e2e/src/a11y.spec.ts — /chart in SBX_ROUTES
MeasuredVisual screenshotapps/sandbox-e2e/src/visual.spec.ts — chart-area and chart-area-rtl
Measuredforced-colors: active — no state carried by colour alonelibs/components/chart/src/chart.scss, line.scss — the lines and the axes in CanvasText, no area filled, and each palette place drawn with a dash of its own (0102's second channel). The reading: apps/sandbox-e2e/src/forced-colors.spec.ts
n/aprefers-reduced-motion — duration from a tokennot applicable — no motion at all
n/aTouch target ≥ 24×24 px outrightnot applicable — nothing in a chart takes a press yet; the cursor's range arrives with its own target
MeasuredSize axis aligned to --pct-control-height-*deliberately not: a chart is not a control, and its height is the consumer's
MeasuredDensity axislibs/tokens/src/component.chart.json — the gap between an axis and its labels stands on space.2, which the compact scope re-points
MeasuredRTL — no physical properties + a dir="rtl" screenshotlogical properties only, held by check-styles; the axes run left to right in every direction (direction: ltr on the layers), the screenshot chart-area-rtl
MeasuredSSR + hydration with no NG05xxapps/sandbox-e2e/src/hydration.spec.ts — /chart in SBX_ROUTES; the server draws the skeleton, the browser draws after measuring
n/aFormsnot applicable — a chart holds no value a form owns
MeasuredParts registered in the inventorylibs/components/parts.snapshot.md — plot, data, grid, axis, unit, message, series, area
MeasuredTokens registered + an entry in contrast.policy.jsonlibs/tokens/src/contrast.policy.json — the eight series on both surfaces (UI error, 16), the tick labels, the unit and the message (AA error), the axis line and the grid (UI warn); libs/tokens/tokens.snapshot.md
MeasuredStrings through PCT_TEXTSlibs/components/core/src/texts.ts — chartEmpty, chartAllHidden, chartGap, chartOn, chartOff, chartTime, chartPosition
MeasuredEntrypoint size budgetlibs/components/size.snapshot.md — the ./chart row
MeasuredScreen-reader logRead 2026-10-30 from docs/acr/at/ — three readers, whole sandbox, and the instrument cannot reach this component: the picture is a named image and no stop, the table beside it does not scroll, so /chart walks the demo's theme, size and direction groups and then out to the browser (NVDA Size, grouping, Orca Theme · panel · light · selected radio button., VoiceOver light selected radio button, 1 of 2 Theme radio group). Nothing in the three logs reads the picture's name, its description or the table, which is what a reader reading the page would hear and is not evidence of it — the cursor's range, the next phase, is the chart's first stop (0103)
MeasuredA docs page with live examplesapps/sandbox/src/app/views/chart/ (the sandbox view). The published site: /components/chart, its demo's source in the code tab
MeasuredUnit + mutationlibs/components/chart/src/chart.spec.ts, model/*.spec.ts; libs/components/mutation.snapshot.md — the chart's files, measured by a narrow run