AcceptedHard rule

Accessibility is foundational

Status: accepted · Owner: Head of Design · Scope: all Aleris surfaces · Version: v0.2 · Updated: 2026-08-11

Author: Torfinn Almers · Audience: designers, the assistant/LLM layer, and the qualities/ work

Supersedes: — · Related: [[colour-is-the-aleris-palette]], [[typography-is-museo-sans]], [[constant-and-contextual]]

Canonical home, confirmed 2026-07-30 and moved into place 2026-08-05 (card 26). This node is the single home for the three shared accessibility floors. Every other location in the corpus references it and none restates it. normative: true is set: the rules here are binding, independent of the page's own status badge — a proposed node can still carry a binding rule, the way a constitution can be ratified in stages.


1. The non-negotiables

Pulled from the identity-element sorts so they live once and are referenced by each page, not restated.

  • No information by colour alone. Always pair colour with text, icon, or pattern. (from Colour — colour blindness affects ~8% of men; red/green is not distinguishable.)
  • No text below 14px or its equivalent. (from Typography — the audience includes patients with reduced vision and stressed readers.)
  • Contrast meets WCAG AA – 4.5:1 for normal text, 3.0:1 for large text and UI components.

Implication: All three are clean bright-lines and clean fitness functions.

Contrast promoted to a bright-line, 2026-07-28. It previously read "as a calibrated default, with one documented, mitigated exception (white-on-orange button)", justified by the scoped-boundary-vs-override test. orange-600 removed that exception, so the default framing had no evidence left. The measurable floor is enforced by data-products/tokens/tokens.test.ts.

Consequence, accepted knowingly: this is a bright-line with two known breaches – the secondary button on hover and the confirm button at rest. They are now breaches of a non-negotiable rather than departures from a default, which is what makes them a resolution path instead of a backlog entry. Both are documented failures in the fitness check.


2. Why these are shared, not per-page

Every identity-element page will carry an accessibility floor, and most are measurable — "no text < 14px," "contrast ≥ threshold" are binary, runnable checks. That makes them fitness functions, the slice external review (granskning) actually tests. Keeping them in one node means a single source of truth, one place to update when WCAG moves, and no drift between the colour page's contrast rule and the type page's size rule.

Implication: Identity-element pages reference this node; they don't copy it. When a new page surfaces an accessibility floor, it lands here.


Detection of violation

Caught by the fitness functions in data-products/tokens/tokens.test.ts where the floor is machine-checkable (font size, contrast ratio), and by review otherwise (colour-alone meaning is a claim about a rendered component, not a token ratio — see baseline/BASELINE.md § Accessibility's test-coverage table for what is and isn't asserted today).


Origin

Harvest provenance: Extracted from the colour and typography constitutional sorts, 2026-05-31 (principles/colour.md, principles/typography.md; documentation/constitutional-core-test.md). Carried as a _shared-draft capture node at foundation/en-draft/constitutional/ until 2026-08-05, when card 26 moved it into its constitutional home unchanged in substance — the move resolves this file's own Open #3, below.

External lineage: WCAG 2.1 AA; fitness-function thinking (Ford/Parsons/Kua) via documentation/aleris-meta-alignment.md §3 (qualities/ilities); the accessibility-first stance recorded in project memory.


Open

  1. Home. Constitutional node, a qualities/ility page, or both? Resolved 2026-07-28/30: both, as anticipated. The bright-lines are constitutional and live here; the measurable floors are fitness functions and live in data-products/tokens/tokens.test.ts. Promoting contrast to a bright-line is what closed this – a machine-checkable floor is a fitness function, so the two homes are complementary rather than competing.
  2. Source of truth for the contrast exception. The white-on-orange mitigation lives in Baseline tokens; this node should point to it, not own it. Void 2026-07-28. There is no contrast exception any more. orange-600 replaced the white-on-orange button, which is what allowed contrast to become a bright-line in the first place.
  3. Naming/location if this graduates from a placeholder. Resolved 2026-08-05 (card 26). Moved from foundation/en-draft/constitutional/_accessibility-shared-draft.md to constitutional/accessibility-is-foundational.md — the name and the location both now describe a canonical normative node rather than a draft capture point.

Related

  • [[colour-is-the-aleris-palette]] — references this node
  • [[typography-is-museo-sans]] — references this node
  • documentation/constitutional-core-test.md — Open #3, the cross-page accessibility question
  • documentation/aleris-meta-alignment.md — §3 qualities/ilities