Skip to content

PointSav Documentation

The engineering library for the PointSav platform — operating systems and services for regulated businesses that own their data, their AI, and their record-keeping outright. Where the monorepo holds the code, this wiki holds the reasoning: architecture, services, security, and the governance commitments that bind future development.

Design tokens and accessibility conformance

← All revisions

248fea12 · PointSav Digital Systems ·

editorial(design-system): resolve design-tokens-and-accessibility's standing 2026-08-02 flag (Track-B) — confirmed against dtcg-vault/tokens/primitive.json + elements/color/overview.md + components/button/accessibility.md: a11y-target-min/cds-focus/cds-positive-* tokens don't exist, real focus token is a composite focus.ring (color/width/style/offset); real contrast pairs are ink-primary 14.7:1, ink-secondary 8.9:1, ink-on-interactive 7.4:1 (not the claimed 19.2/8.2/6.7); Button's real conformance target is WCAG 2.2 AA-AAA-where-achievable, primary variant is 6.66:1 (AA only, not AAA as claimed) while critical variant is 7.33:1; dropped the unverifiable cds-positive-text/bg 4.3:1 example entirely rather than invent a real replacement; de-narrated per register-documentation.yaml; both languages needed the same fix, ES had no correction wrapper at all; register-clean EN+ES

View the full record as of this revision →

@@ -37,15 +37,12 @@ answer, checked in one place.

## Accessibility values are tokens

**Correction (2026-08-02):** several specific claims below don't exist or are wrong. Neither `a11y-target-min` nor `cds-focus`/`cds-positive-text`/`cds-positive-bg` exist anywhere in the real token files — the `cds-` string appears only as an unrelated, already-flagged-as-inconsistent prefix in two component style docs. The cited contrast triple (19.2:1/8.2:1/6.7:1) doesn't match the real published figures in `dtcg-vault/elements/color/overview.md` (`ink-primary`/`surface-base` 14.7:1, `ink-on-interactive`/`interactive-primary` 7.4:1, `ink-secondary`/`surface-base` 8.9:1). Most significant: this article claims the Button's shipped spec shows "text contrast at 7.4:1... passing SC 1.4.6 Contrast Enhanced, AAA" with a component-wide "conformance target of WCAG 2.2 AAA" — the real `dtcg-vault/components/button/accessibility.md` states plainly that the primary variant is **6.66:1** and **does not meet the 7:1 AAA floor** (AA only), and the real target is "WCAG 2.2 AA, AAA where achievable," not blanket AAA. That real file already carries its own dated correction (2026-07-15) fixing an earlier false blanket-AAA claim — this wiki article repeats the exact mistake the source has already corrected once. **Flagged, not resolved** — this is an accessibility-conformance claim and should be synced to the real (already-correct) source, not left standing.

Two tokens anchor the pattern. `a11y-target-min` is a primitive token whose
value is 44 pixels — the minimum target dimension defined by WCAG Success
Criterion 2.5.5, Target Size (Enhanced), a Level AAA criterion requiring
pointer targets of at least 44 by 44 CSS pixels. `cds-focus` is a semantic
token naming the focus-ring color; it resolves to a primitive from the blue
scale rather than carrying a hex value of its own, so a theme change
propagates to every focus ring at once.
The focus ring anchors the pattern. `focus.ring` is a primitive token —
not a bare color, but a composite bundling the ring's color
(`{color.primary-60}`), width, style, and 2px offset — so a theme change
to the primary color propagates to every focus ring at once. Target size
is not a standalone token in the same way; it is met arithmetically at the
component tier — the button below shows exactly how.

The external requirements these tokens encode are worth stating precisely,
because the levels differ. WCAG 2.2, published as a W3C Recommendation in
@@ -62,53 +59,52 @@ against adjacent colors.
## The tier chain carries the requirement

The system's tokens resolve in three tiers — primitive, semantic,
component — and an accessibility requirement travels down the chain the
component — and the focus-ring requirement travels down the chain the
same way a brand color does:

```
a11y-target-min (primitive, 44px, WCAG 2.5.5 AAA)
  → cds-focus (semantic, focus-ring color)
    → btn-min-height (component: {a11y-target-min}, applied to every button)
focus.ring (primitive: color {color.primary-60}, width, style, 2px offset)
  → every component recipe that needs a focus indicator references it directly
```

The component tier never restates the number. `btn-min-height` is a
reference, `{a11y-target-min}`, not a second copy of "44px" that could
drift when the first copy changes. If the organization ever adopted a
different target-size policy, the change would be made once, at the
primitive, and every component consuming the chain would follow — exactly
the maintenance property that motivates tokens for color, applied to a
A component's focus ring is a reference to `{focus.ring}`, not a second
copy of the color and width values that could drift when the primitive
changes. If the ring color ever changes, the change is made once, at the
primitive, and every component consuming it follows — the same
maintenance property that motivates tokens for color, applied to a
conformance value instead.

## Contrast pairs are computed from the graph

Because color tokens are data, the contrast relationships between them are
computable rather than assertable. The system's foundations reference
presents accessibility pairs — a foreground token against a background
computable rather than assertable. The system's color reference publishes
the pairs that matter most — a foreground token against a background
token — with ratios computed directly from the token hex values using the
WCAG relative-luminance formula: primary text on the default background at
roughly 19.2:1 (AAA), secondary text at roughly 8.2:1 (AAA), the primary
link color at roughly 6.7:1 (AA).

The fourth published pair is the honest one: `cds-positive-text` on
`cds-positive-bg` computes to roughly 4.3:1, below the 4.5:1 AA threshold
for normal text at the current values, and it is shown flagged rather than
quietly adjusted. A registry that computes conformance from its own data
surfaces regressions the same way it surfaces everything else. Two caveats
travel with these numbers, stated on the reference page itself and repeated
here: the ratios are illustrative of the pattern, not a substitute for a
live audit tool, and the flagged pair is an open item, not a resolved one.
WCAG relative-luminance formula: `ink-primary` on the default surface at
14.7:1 (AAA), `ink-secondary` on the default surface at 8.9:1 (AAA), and
button text (`ink-on-interactive`) on the primary interactive background at
7.4:1 (AAA).

Not every pair clears the same bar — the Button component below shows a
real example where a specific variant lands at AA rather than AAA, and the
component's own accessibility spec states that plainly rather than
rounding up. A registry that computes conformance from its own data
surfaces exactly this kind of gap instead of asserting a uniform standard
across every color pairing.

## A component inherits its conformance

The Button component's shipped accessibility specification shows what the
token approach produces at the component tier. Its conformance target is
WCAG 2.2 AAA, and its conformance table resolves criterion by criterion to
token-derived facts: text contrast at 7.4:1 against the primary variant's
background (passing SC 1.4.6 Contrast Enhanced, AAA); a 2-pixel focus ring
with a 2-pixel offset holding the 3:1 minimum of SC 1.4.11; and target size
met by arithmetic — the button renders at 40 pixels of height, and the
focus ring plus offset add 2 pixels per side, bringing the activatable area
to the 44 pixels SC 2.5.5 requires.
token approach produces at the component tier, including the parts that
don't clear the strictest bar. Its conformance target is WCAG 2.2 AA, AAA
where achievable — not a blanket AAA claim — and the spec is explicit
about which variant lands where: the primary variant's text contrast is
6.66:1, which passes AA (SC 1.4.3) but falls short of the 7:1 AAA floor
(SC 1.4.6); the critical variant clears both at 7.33:1. The focus ring
holds the 3:1 minimum of SC 1.4.11 at every variant. Target size is met by
arithmetic — the button renders at 40 pixels of height, and the focus ring
plus offset add 2 pixels per side, bringing the activatable area to the 44
pixels SC 2.5.5 requires.

The same specification shows requirements that are behavioral rather than
numeric being carried by tokens where a token can carry them: the CSS
@@ -130,7 +126,7 @@ Stated plainly. The conformance claims above are self-declared by the
design system's maintainers against the cited criteria; no third-party
accessibility audit of the system has been performed. Tokens enforce the
values a criterion depends on, not the criterion itself — a component can
reference `a11y-target-min` and still fail keyboard users through broken
reference `{focus.ring}` and still fail keyboard users through broken
markup, and no token expresses the judgment-dependent criteria around
content, labels, and context. Assistive-technology testing with real
screen readers remains manual. The structural claim is narrower and, for
@@ -149,7 +145,7 @@ specifically — target size and focus color as first-class tokens with the
WCAG criterion recorded in the token's own description field.

On licensing, precision matters because two different licenses are in
play. The token data itself — `a11y-target-min`, `cds-focus`, the DTCG
play. The token data itself — `focus.ring`, the DTCG
token files and component recipes that reference them — ships in the
`pointsav-design-system` repository under the Apache-2.0 license. The text
of this article is published in the documentation wiki under CC BY 4.0.
Important Information

Corporate structure. PointSav Digital Systems ("PointSav") is currently a trade name of Woodfine Capital Projects Inc. ("Woodfine"), planned to become a wholly-owned Woodfine subsidiary upon incorporation. PointSav does not itself offer, sell, or solicit any security. Any securities offering associated with Woodfine's real-property direct-hold solutions is made exclusively by Woodfine, and only by means of the applicable Private Placement Memorandum.

No investment advice. This wiki's content is provided for engineering, operational, research, and development purposes. Nothing on this wiki constitutes investment advice or a solicitation to invest in any Woodfine partnership or direct-hold solution.

Intellectual property. The PointSav name, trade name, wordmark, and marks, together with all current and future PointSav- and Totebox-branded products, services, and offerings — and the software, source code, documentation, design system, and all related materials — are proprietary to Woodfine and its affiliates, except for components identified as open source. No rights are granted except as expressly set out in a written license or agreement. The full trademark notice appears in the footer of every page on this site.

Open source components. Portions of the platform are made available under permissive open-source licenses identified in the accompanying repository. Use of those components is governed by their respective license terms.

No warranty; informational use. Content on this wiki is provided for general informational purposes only and does not constitute a representation, warranty, or commitment with respect to product functionality, availability, pricing, or roadmap. Some articles describe planned or intended features, capabilities, and milestones — language such as "planned," "intended," "targeted," "may," and "expected" marks this forward-looking content, which is subject to change and does not constitute a commitment regarding future performance.

Confidentiality. Where an article describes an operational or deployment detail that is not intended for public disclosure, that article is not published on this wiki. Content here is general-purpose engineering documentation, not customer-specific configuration.

Jurisdiction. Woodfine Capital Projects Inc. is organized in British Columbia, Canada. References to the Sovereign Data Foundation on this wiki describe a planned or intended initiative only, not a current equity holder or active governance body.

Changes to this notice. PointSav may update this notice from time to time; the version posted on this page governs.

Not a filing system. This wiki is not a securities filing system, an electronic disclosure repository, or a substitute for SEDAR+ or any other regulatory filing system. Formal securities filings are made through the applicable regulatory filing system, not through this wiki.

Full disclaimer. This notice supplements, and does not replace, the full Disclaimers article. In the event of any conflict, the full Disclaimers article governs.

Read the full disclaimer →