V-CERT
Accessibility

The accessibility ledger

Verification only works if everyone can use it. We target and test against WCAG 2.2 AA — and we keep the results the way we keep certificates: dated, public, and honest about what still falls short.

The people with the strongest reason to use this site are often the people the web serves worst: someone checking a gluten-free certificate because the answer affects what they can safely eat, or reading a standard with a screen reader before their company applies. So this statement works like a certificate — findings are dated, the known-issues list is public, and nothing is described as “compliant” or “certified”, because accessibility is a property you keep testing for, not a badge you earn once.

Self-audit · 2026-07-03

What we verified, and where it lives

Every row below is checkable in the shipped site — the last column names the component or rule that carries it. Rows are re-dated only when a human re-verifies them.

Accessibility self-audit findings, verified 2026-07-03
AreaFindingWhere it lives
Keyboard focusA visible focus ring is applied globally to every link, button, form field and summary element, with an adapted ring on dark bands.globals.css :focus-visible (checked by the build guard)
Skip linkEvery page renders a skip-to-content link and a focusable main landmark as its first elements.SiteFrame — every page template
Sticky headerKeyboard focus targets can never hide under the fixed header: pages scroll with a reserved offset (WCAG 2.4.11).globals.css scroll-padding-top
Target sizeEvery button renders at 44px minimum height (48px for large); lookup fields are 44–52px tall.Button component size classes
Status, not colorCertificate status is always an icon glyph plus a text label — the same chip everywhere it appears. Color never carries the meaning alone.StatusChip — every status surface
Reduced motionWith reduced motion set, every animation and transition collapses to its finished state globally, and every scroll-triggered moment keeps a designed static composition — content is never hidden behind an animation.globals.css reduced-motion rules + moment primitives
Form errorsThe certificate lookup announces errors with a live alert, marks the field invalid, pairs an icon with the message text, and returns focus to the field.VerifyInput — role=alert, aria-invalid, aria-describedby
Interactive anatomyThe certificate anatomy uses real buttons in a list; each button is described by its visible note, and keyboard focus triggers exactly what hover triggers. The bracket highlight is decoration — nothing is lost without it.AnatomyExplorer on the verify page
QR alternativesEvery QR code is an image with a text alternative naming its destination, and is paired with a typed certificate ID and a text link that reach the same record.QrBadge — role=img + aria-label
Disclosure navigationMenus use the standard disclosure pattern: the trigger reports expanded state and controls its panel; the panel sits inside the trigger wrapper.NavHeader — aria-expanded / aria-controls
Type floorBody and interface text never renders below 18px; the single 14px size is reserved for mono furniture such as timestamps and plate captions — enforced at build time.type scale + build guard
Data tablesThe governance gates ledger is a real table with a caption and row and column headers — not a styled grid.governance restraint ledger

Audited 2026-07-03 against the shipped source. Contrast is enforced through the design-token palette (documented ratios per surface) rather than checked page by page.

Known issues

What still falls short

Kept public on purpose: when an item is fixed it comes off the list, and when testing finds a new one it goes on.

  • Certificate PDFsDownloadable certificate documents are not yet fully tagged for screen readers. Every fact on a certificate is also published as HTML on V-Cert’s certificate portal, which we treat as the canonical record.
  • Decorative moments read plainerThe typewriter placeholder, the drawn callout rules and the struck-through refused wordings are visual moments; screen readers get the plain text and a written prefix instead. Deliberate — but the experience is quieter, and we say so.
  • Marginalia on small screensGuide margin notes collapse above their paragraphs on mobile; the reading order is correct, but the note–paragraph pairing relies on visual adjacency. Under review.
  • Language coverageThe site is currently English-only. Additional languages ship only when a human-reviewed translation is ready — machine-translated pages never stand in for accessible content.
  • Header verify field labelThe compact certificate-ID field in the wide-screen header has no persistent visible label — it is named for assistive tech and shows an example ID as a placeholder, which disappears while typing. Our house rule is visible labels on every field; this is the one documented exception, and the footer's verify field carries the visible label.
The motion charter

Nothing moves unless it's proving something

Animation on this site follows four rules, and they are design law, not aspiration:

  1. Motion is built from CSS and a scroll observer only — no animation libraries, no parallax, no carousels, no autoplaying video.
  2. Every animated element has a designed static end-state. With reduced motion set, or without JavaScript, you get the finished composition — never a blank where content should be.
  3. Motion demonstrates the system working — a stamp landing, a ledger line writing itself — and then stops. The one blinking element on the site, the lookup caret, blinks exactly twice and rests.
  4. The largest content element of a page is never hidden behind a reveal.
Self-audit · 2026-07-03

Assistive-technology review matrix

Exactly what was examined and how. This release's pass is a source-level semantics audit; earlier releases also had manual NVDA (Windows) and VoiceOver (iOS) passes over the homepage, application flow and verification pages. Hardware passes are re-run before launch, and their findings land here, dated.

Assistive-technology self-audit matrix, 2026-07-03
SurfaceWhat was reviewedMethodDate
Certificate lookup + record pagesField labeling, search landmark, error announcement and focus return, record tables and timestampsSource semantics audit
Certificate anatomy (verify page)Button names and descriptions, keyboard–hover parity, decorative brackets hidden from the treeSource semantics audit
Verification band (homepage)Reading order of the engraved rule, the demo-record chip text, decorative typewriter hidden from the treeSource semantics audit
Governance restraint ledgerTable caption and header semantics; refused wordings announced with a written prefix, strike rendered as decorationSource semantics audit
Site navigationDisclosure pattern state reporting, skip link, landmark labelsSource semantics audit

Found a barrier?

If anything on this site is unreadable, unreachable by keyboard, or mislabeled for your screen reader, please tell us at info@v-cert.org. Reports go to the same monitored mailbox as certification questions and are acknowledged within 2 business days. Naming the page, your browser and your assistive technology helps us reproduce the problem — but a one-line report is enough to start, and real reports go on the known-issues list above.

This statement covers the v-cert.org website. Last reviewed — re-reviewed with each release that changes page templates or interactive components. Our approach to honest claims overall is on governance.