---
title: "Conformance report (VPAT/ACR)"
description: "A complete WCAG 2.2 Level A and AA accessibility conformance report in which every criterion is honestly marked Not Evaluated."
url: "https://opsinjs.pensievelabs.org/accessibility/conformance-report"
source: "https://opsinjs.pensievelabs.org/accessibility/conformance-report.md"
section: "Accessibility"
kind: "accessibility"
reviewed: "2026-09-02"
reviewer: "design"
aliases: ["vpat", "acr", "section 508", "en 301 549"]
---

> Elements written as `<PascalCase … />` below are opsinjs documentation
> components. Their attributes are the content: the values they render are
> generated from `tokens/*.json` and `registry/catalogue.ts` and are
> published separately at https://opsinjs.pensievelabs.org/r/index.json and under the Reference
> section.
> Nothing is missing from this page. The data simply does not live in
> the prose.

<PageTemplate kind="accessibility" />

## What we guarantee [#what-we-guarantee]

This is the artefact procurement asks for: an Accessibility Conformance Report,
in the shape a VPAT produces, covering WCAG 2.2 at Levels A and AA.

**Every row still says *Not Evaluated*.** That is deliberate, and it no longer
means what it meant a month ago. An ACR records an independent conformance
evaluation, and none has been performed. What has happened is separate and real:
all sixty components in `registry/bases/base/` were audited against WCAG 2.2 AA,
in a static source pass and a rendered pass against the live `/view` page, and
the findings were fixed in the same change. That audit was run by the authors of
the components, so it is not an independent review, and it did not look at this
documentation site. Read
[ADR 0025](../project/decisions/0025-the-audit-is-author-run.mdx) for what the
audit was and what it was not. The table is published complete anyway, for three
reasons: it tells a reviewer exactly what will be reported when an independent
evaluation runs; it makes the shape of that future claim auditable now; and an
empty page would have let a reader assume the absence was an oversight rather
than the finding.

**Report date:** 2 September 2026.
&#x2A;*Product:** opsinjs design system and documentation site.
&#x2A;*Standard:** WCAG 2.2, Levels A and AA. WCAG 2.2 became a W3C Recommendation in
October 2023; note that SC 4.1.1 Parsing was removed in it and therefore does not
appear below.
&#x2A;*Author-run audit performed:** WCAG 2.2 AA, a static source pass and a rendered
pass, findings fixed, run by the component authors against the sixty catalogue
components. This is a floor raised, not an ACR.
&#x2A;*Independent evaluation methods used:** none.
&#x2A;*Independent evaluator:** none.
&#x2A;*Clinical review:** pending. Nothing here is for a production health surface
until a clinician signs it.

<Callout>
  A conformance level is *not* claimed. Under the usual VPAT conventions a product
  may only claim a level when every criterion at that level is marked Supports or
  Not Applicable. Nothing here is marked either, because an author auditing their
  own work is not the independent assessment a conformance level rests on. The
  author-run audit raises the floor; it does not sign the report.
</Callout>

## What you own [#what-you-own]

Your own report. This one covers the design system; it cannot be reused for a
product built with it, because conformance is a property of what ships to the
reader. When you write yours:

* **Fill the remarks column, not the conformance column.** "Supports" with no
  remark is unevaluable. A reviewer reads the remarks.
* **Name the evaluation method and date per row group,** not once at the top.
* **Report partial support as Partially Supports with the specific failure,** not
  as Supports with a caveat elsewhere.
* **Do not copy this table's verdicts.** They are all *Not Evaluated* and copying
  them into a product report would be false in the other direction. An author-run
  audit is a floor the authors reached, not a conformance claim you can inherit.

## How to check [#how-to-check]

<Steps>
  ### Read the remarks column first [#read-the-remarks-column-first]

  The conformance column of any ACR is marketing until the remarks make it
  falsifiable. In this report every remark says whether the author-run audit has
  covered the criterion and points at the page that carries or will carry the
  evidence.

  ### Check the criterion count [#check-the-criterion-count]

  WCAG 2.2 Level A and AA together have 55 success criteria, once 4.1.1 Parsing is
  removed. A report with fewer rows has dropped something.

  ### Check for the 2.2 additions [#check-for-the-22-additions]

  SC 2.4.11, 2.5.7, 2.5.8, 3.2.6, 3.3.7 and 3.3.8 are the criteria added in WCAG
  2.2. A report that omits them is a WCAG 2.1 report wearing a 2.2 label.

  ### Ask for the underlying evidence [#ask-for-the-underlying-evidence]

  For any row that says Supports, ask what was tested, with what, by whom and when.
  If that cannot be answered, the row is unsupported. An author-run audit answers
  "by whom" with the authors, which is why the verdict here stays Not Evaluated.
</Steps>

## Measured results [#measured-results]

Every component-level criterion below has now had an author-run WCAG 2.2 AA
audit, and its remark says so. The conformance verdict stays *Not Evaluated*
because that column records an independent evaluation, which has not happened.
Criteria that name the documentation site or a media type the system does not use
were outside the author-run audit and say why.

### WCAG 2.2 Level A [#wcag-22-level-a]

| Criterion                                     | Conformance   | Remarks                                                                                                                                                                    |
| --------------------------------------------- | ------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| 1.1.1 Non-text Content                        | Not Evaluated | Components now render non-text content and were audited author-run for alt text. Authoring rules on [Alt text and descriptions](../content/alt-text-and-descriptions.mdx). |
| 1.2.1 Audio-only and Video-only (Prerecorded) | Not Evaluated | No media in the system or the docs.                                                                                                                                        |
| 1.2.2 Captions (Prerecorded)                  | Not Evaluated | No media.                                                                                                                                                                  |
| 1.2.3 Audio Description or Media Alternative  | Not Evaluated | No media.                                                                                                                                                                  |
| 1.3.1 Info and Relationships                  | Not Evaluated | Component semantics are implemented and were audited author-run.                                                                                                           |
| 1.3.2 Meaningful Sequence                     | Not Evaluated | DOM order is a product responsibility; see [For developers](./for-developers.mdx).                                                                                         |
| 1.3.3 Sensory Characteristics                 | Not Evaluated | Copy rules exist, and the components that render them were audited author-run.                                                                                             |
| 1.4.1 Use of Color                            | Not Evaluated | The rule is specified and was audited author-run in the source pass; see [Colour independence](./colour-independence.mdx).                                                 |
| 1.4.2 Audio Control                           | Not Evaluated | No audio.                                                                                                                                                                  |
| 2.1.1 Keyboard                                | Not Evaluated | Contract published on [Keyboard and focus](./keyboard-and-focus.mdx); implemented and audited author-run.                                                                  |
| 2.1.2 No Keyboard Trap                        | Not Evaluated | Interactive components ship and were audited author-run for keyboard traps.                                                                                                |
| 2.1.4 Character Key Shortcuts                 | Not Evaluated | The docs site disables its single-key search hotkey; untested and outside the component audit.                                                                             |
| 2.2.1 Timing Adjustable                       | Not Evaluated | No component introduces a time limit by design.                                                                                                                            |
| 2.2.2 Pause, Stop, Hide                       | Not Evaluated | No auto-updating or moving content exists.                                                                                                                                 |
| 2.3.1 Three Flashes or Below Threshold        | Not Evaluated | No flashing content exists.                                                                                                                                                |
| 2.4.1 Bypass Blocks                           | Not Evaluated | A docs-site concern, outside the component audit; see [This site's accessibility](./this-site.mdx).                                                                        |
| 2.4.2 Page Titled                             | Not Evaluated | Docs titles come from frontmatter; a docs-site concern, outside the component audit.                                                                                       |
| 2.4.3 Focus Order                             | Not Evaluated | Implemented and audited author-run.                                                                                                                                        |
| 2.4.4 Link Purpose (In Context)               | Not Evaluated | Authoring rule on [For content](./for-content.mdx).                                                                                                                        |
| 2.5.1 Pointer Gestures                        | Not Evaluated | No multipoint or path-based gesture drives a component.                                                                                                                    |
| 2.5.2 Pointer Cancellation                    | Not Evaluated | Inherited from the primitive layer and audited author-run.                                                                                                                 |
| 2.5.3 Label in Name                           | Not Evaluated | Labelled controls ship and were audited author-run.                                                                                                                        |
| 2.5.4 Motion Actuation                        | Not Evaluated | Nothing is actuated by device motion.                                                                                                                                      |
| 3.1.1 Language of Page                        | Not Evaluated | A docs-site concern; the root layout sets a language and the 404 route's handling is a known gap, both outside the component audit.                                        |
| 3.2.1 On Focus                                | Not Evaluated | Implemented and audited author-run.                                                                                                                                        |
| 3.2.2 On Input                                | Not Evaluated | Implemented and audited author-run.                                                                                                                                        |
| 3.2.6 Consistent Help                         | Not Evaluated | New in WCAG 2.2. No help mechanism is shipped.                                                                                                                             |
| 3.3.1 Error Identification                    | Not Evaluated | Copy rules on [Error and empty messages](../content/error-and-empty-messages.mdx); implemented and audited author-run.                                                     |
| 3.3.2 Labels or Instructions                  | Not Evaluated | Form components ship and were audited author-run for labels.                                                                                                               |
| 3.3.7 Redundant Entry                         | Not Evaluated | New in WCAG 2.2. Treated as a design floor; a product responsibility, not yet exercised.                                                                                   |
| 4.1.2 Name, Role, Value                       | Not Evaluated | Depends on the primitive layer; audited author-run at the component level.                                                                                                 |

### WCAG 2.2 Level AA [#wcag-22-level-aa]

| Criterion                                       | Conformance   | Remarks                                                                                                                                                                                                          |
| ----------------------------------------------- | ------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| 1.2.4 Captions (Live)                           | Not Evaluated | No live media.                                                                                                                                                                                                   |
| 1.2.5 Audio Description (Prerecorded)           | Not Evaluated | No media.                                                                                                                                                                                                        |
| 1.3.4 Orientation                               | Not Evaluated | Nothing locks orientation; audited author-run in the rendered pass.                                                                                                                                              |
| 1.3.5 Identify Input Purpose                    | Not Evaluated | Guidance on [Ask users for…](../patterns/ask-users-for/index.mdx); implemented and audited author-run.                                                                                                           |
| 1.4.3 Contrast (Minimum)                        | Not Evaluated | Token pairs are measurable and are the one area with a generator; see [Contrast conformance](./contrast-conformance.mdx). Audited author-run in the rendered pass, not independently measured against a product. |
| 1.4.4 Resize Text                               | Not Evaluated | Mechanism exists in `app/product.css`; the rendered pass checked 200% author-run.                                                                                                                                |
| 1.4.5 Images of Text                            | Not Evaluated | No images of text are used.                                                                                                                                                                                      |
| 1.4.10 Reflow                                   | Not Evaluated | Layout system is built for it and was audited author-run in the rendered pass.                                                                                                                                   |
| 1.4.11 Non-text Contrast                        | Not Evaluated | Boundary and graphic tokens are measured; compositions were audited author-run in the rendered pass.                                                                                                             |
| 1.4.12 Text Spacing                             | Not Evaluated | Explicitly unaddressed; see [Text resizing and zoom](./text-resizing-and-zoom.mdx).                                                                                                                              |
| 1.4.13 Content on Hover or Focus                | Not Evaluated | Hover and focus content ships in the overlay components and was audited author-run.                                                                                                                              |
| 2.4.5 Multiple Ways                             | Not Evaluated | The docs site has search, a sidebar and a jump rail; a docs-site concern, outside the component audit.                                                                                                           |
| 2.4.6 Headings and Labels                       | Not Evaluated | Heading outlines are build-enforced in the docs; a docs-site concern, outside the component audit.                                                                                                               |
| 2.4.7 Focus Visible                             | Not Evaluated | Focus token specified, implemented, and audited author-run.                                                                                                                                                      |
| 2.4.11 Focus Not Obscured (Minimum)             | Not Evaluated | New in WCAG 2.2. Named as the sticky-chrome risk on [Keyboard and focus](./keyboard-and-focus.mdx), a docs-chrome concern outside the component audit.                                                           |
| 2.5.7 Dragging Movements                        | Not Evaluated | New in WCAG 2.2. `slider` ships and was audited author-run for a drag-free alternative.                                                                                                                          |
| 2.5.8 Target Size (Minimum)                     | Not Evaluated | New in WCAG 2.2. A 44 px floor is specified, sits above the 24 px minimum, and the rendered pass measured hit area author-run.                                                                                   |
| 3.1.2 Language of Parts                         | Not Evaluated | No multilingual content.                                                                                                                                                                                         |
| 3.2.3 Consistent Navigation                     | Not Evaluated | One persistent sidebar by design; a docs-site concern, outside the component audit.                                                                                                                              |
| 3.2.4 Consistent Identification                 | Not Evaluated | Naming conventions are published and were audited author-run.                                                                                                                                                    |
| 3.3.3 Error Suggestion                          | Not Evaluated | Copy rules exist; implemented and audited author-run.                                                                                                                                                            |
| 3.3.4 Error Prevention (Legal, Financial, Data) | Not Evaluated | Consent and disclosure guidance exists; the components that carry it were audited author-run.                                                                                                                    |
| 3.3.8 Accessible Authentication (Minimum)       | Not Evaluated | New in WCAG 2.2. Authentication is out of scope for this system.                                                                                                                                                 |
| 4.1.3 Status Messages                           | Not Evaluated | The announcement contract is specified on [Screen readers](./screen-readers.mdx), implemented, and audited author-run.                                                                                           |

<NoDataYet script="scripts/run-evals.mts" />

## Known gaps [#known-gaps]

* **No independent conformance evaluation has been performed.** The author-run
  WCAG 2.2 AA audit raised the floor, but an ACR is an assessment somebody
  independent signs, and none has been commissioned. Every verdict above stays
  *Not Evaluated* until one runs.
* **No clinical review has been performed.** Clinical review is pending for every
  component, so nothing here is for a production health surface until a clinician
  signs it.
* **Level AAA is not reported at all,** even though the system adopts the AAA
  target-size figure from SC 2.5.5 as its floor. Adopting one AAA criterion is not
  a AAA claim.
* **EN 301 549 and Section 508 mappings are not included.** Both map largely onto
  WCAG 2.x, but the non-web and functional-performance clauses of EN 301 549 are
  not addressed here.
* **There is no machine-readable form of this report.** It should be emitted as
  JSON alongside the other generated artefacts, and it is not.

<Todo>
  Emit this report from a data file rather than authoring the table by hand, so
  that a criterion cannot be dropped silently and so that a machine-readable
  version is available at `/r`.
</Todo>

## Updates to this page [#updates-to-this-page]

<Reviewed />

<LastUpdated />
