These are arithmetic on the values that ship, not asserted.
What it governs
The accessibility properties that live in the token layer: contrast, focus, target size, and motion. Component-level behavior — keyboard maps, ARIA roles, focus management — lives on each component page.Vocabulary
Sourced from Invoca’s design-token naming specification, confirmed by its owner as the
baseline the design language is being built on. This is the vocabulary of record — not
inferred from token names.
The conformance target
Titan targets WCAG 2.2 Level AA. WCAG 2.2 is the current W3C Recommendation and a backwards-compatible superset of 2.1: anything conforming to 2.2 AA also conforms to 2.1 AA. It adds six AA success criteria over 2.1 and marks 4.1.1 Parsing obsolete. Targeting 2.1 would not reduce the work — it would only remove criteria the token layer already governs.What 2.2 adds, and whether the token layer covers it
Criteria carried over from 2.1 that the token layer governs directly:
Contrast
What to do about the failures
text-successandtext-warningfail on every light surface — 2.41:1 and 2.74:1, below even the 3:1 large-text floor. Usetext-success-altandtext-warning-alt.text-infoandtext-errorpass on white and fail on the page canvas.background-view-background(#f5f6fa) is the more common of the two surfaces. Use the-altvariants for body-size status text anywhere.- White text on the success and warning fills fails badly. A bold status fill needs dark text, and no token expresses that pairing — see TITAN-GAP-07.
Focus
TITAN-A11Y-04 requires a visible focus indicator. Three component-scoped rings ship —form-field-focus-ring, form-field-focus-ring-error, and
data-grid-focus-ring — each authored independently against a primitive; outside a Form
field or DataGrid there is no semantic token to reach for, so every component decides for
itself (known issue — the
most consequential accessibility gap in the system).
Constraints
What is exempt
These get flagged in review as failures when they are not:- Disabled controls have no contrast requirement.
text-disabledat 2.42:1 is conformant — which is why disabled state must never be the only signal that something is unavailable. - Purely decorative icons are exempt from non-text contrast, provided they are hidden from assistive technology and carry no information.
- Logos and brand marks are exempt.
- Inactive UI components — genuinely non-interactive ones — are exempt.
Testing
Automated tooling catches roughly a third of issues. It cannot tell whether an
aria-label
is accurate, whether focus order is sensible, or whether an error message is comprehensible.
The manual checks are not optional.
Known issues
Accessibility: open issues
Divergences, open decisions, and undocumented gaps for Accessibility.
Related
A generated map of which components consume which foundation does not exist yet.Why it works this way
The-alt variants exist because saturated status colors do not carry text contrast. A
green that reads as “success” at a glance measures roughly 2.4:1 on white — about half of
what body text requires. Titan keeps the vivid value for fills and supplies a darkened
-alt for text and icons. The cost is that authors must know which is which, which is why
TITAN-A11Y-02 is a constraint rather than a note.
Contrast is arithmetic, not review. A reviewer comparing two swatches cannot estimate a
ratio. The failures on this page are the evidence: several ship today in a system that has
had design attention. Computing the ratios from token values catches all of them before
anyone looks.