What "WCAG 2.1 AA" means here
The Web Content Accessibility Guidelines 2.1 are the international standard. Level AA is what most U.S. ADA enforcement actions, the European Accessibility Act, and the U.S. Section 508 refresh treat as the practical baseline. We target AA — not A (too low) and not AAA (often impractical for complex apps without compromising design).
We do not claim full conformance. Anyone who does without an external audit is bluffing. We claim a documented, programmatically verified, continuously improved baseline — and we show our work.
What we test, automatically, before every deploy
An audit script runs on the entire studio site before any commit ships. It catches the WCAG issues that are detectable without a browser:
- Document language — every page declares
<html lang="en">(WCAG 3.1.1). - Page titles — every page has a unique, descriptive
<title>(WCAG 2.4.2). - Skip-to-content link — keyboard users can skip the nav (WCAG 2.4.1).
- Main landmark — every page exposes a
<main>orrole="main"region (WCAG 1.3.1). - Image alt text — every
<img>has an alt attribute, even decorative (alt="") (WCAG 1.1.1). - Form labels — every visible input has a
<label for=…>,aria-label, oraria-labelledby(WCAG 3.3.2). - Button names — no buttons or links without an accessible name (WCAG 4.1.2).
- Empty links — no
<a href>with no inner text (WCAG 2.4.4). - Heading hierarchy — flagged when h-levels skip (h2 → h4) (WCAG 1.3.1).
- Viewport meta — pinch-zoom is never disabled (WCAG 1.4.4).
- Role smells —
role="button"on a non-button element must be keyboard-reachable (WCAG 2.1.1). - Visible focus indicators — 3px brass outline on every focusable element (WCAG 2.4.7).
What we can't catch automatically
Real accessibility lives at the intersection of HTML, CSS, JavaScript, and how a screen reader narrates the resulting experience. The audit catches structural issues. The following can only be validated with manual testing:
- Whether the visible focus order matches the visual layout (WCAG 2.4.3).
- Whether dynamic content updates announce themselves to screen readers (WCAG 4.1.3, live regions).
- Whether color-contrast ratios meet 4.5:1 / 3:1 in every state, including hover, focus, and disabled (WCAG 1.4.3).
- Whether the experience works on a mobile screen reader (VoiceOver iOS, TalkBack Android).
- Whether modals, dropdowns, and ARIA widgets follow the WAI-ARIA Authoring Practices.
This manual layer is run on a monthly cadence on the highest-traffic surfaces (homepage, /cadence, /cadence-checkout, the Cadence app dashboard). When you read a "manual review: in progress" status above, this is what's being reviewed.
Known gaps under remediation
The honest part of the page. Issues we've found and not yet fully resolved:
| Issue | Pages affected | Severity | Plan |
|---|---|---|---|
| Heading levels skip on some legacy product pages (h2 → h4) | ~10 product / blog pages | Low (WCAG A) | Restructure during next content pass |
Some checkout pages don't yet have an explicit <main> wrapper |
5 checkout pages | Low | Adding wrapper alongside next checkout-flow polish |
Some inline event handlers (onclick) on legacy pages — works fine for assistive tech but conflicts with strict CSP |
~12 product/checkout pages | Low | Migrating to addEventListener during CSP hardening pass |
| Color-contrast in two places previously had a CSS-specificity bug (hover-only legibility) | 0 (fixed v0.1.37) | Resolved | Sweep applied to all 54 nav surfaces; visual-regression check on roadmap |
| Cadence app Settings: 2FA option not yet a focusable form control | Cadence dashboard | Medium | Shipping with auth-v2 (planned 2026 Q3) |
Assistive technologies we test against
- NVDA on Windows + Firefox (free, open-source — most common screen reader)
- VoiceOver on macOS Safari + iOS Safari
- TalkBack on Android Chrome (mobile reality check)
- Keyboard-only navigation (Tab / Shift+Tab / Enter / Esc) on every conversion-critical surface
- 200% browser zoom + macOS / Windows OS-level zoom
- OS dark-mode + reduced-motion preferences honored where the design allows
How we'd describe our current real-world AA conformance
Studio marketing site (vantagedigital.dev): Substantial conformance with WCAG 2.1 AA. All Level A criteria checked programmatically; AA-specific items (contrast, resize, focus) covered for the conversion path. Known low-severity gaps documented above.
Cadence app (the customer-facing PWA): Substantial conformance for the primary flows (sign-in, dashboard, plan-generation). The 2FA settings panel and admin tooling have known gaps that will land with auth-v2.
If anything we've shipped fails for you, that's our problem to fix — not yours to work around.
Browser + OS support floor
We support the latest two stable releases of Chrome, Edge, Firefox, and Safari on macOS, Windows 10+, iOS 15+, and Android 10+. Older browsers will render legibly but may not have every animation or progressive-enhancement feature.
Found a barrier? Tell us.
If something on any Vantage Digital page or inside Cadence doesn't work for you with a screen reader, on a keyboard, at high zoom, or with any other assistive technology — we want to know. Two ways to reach us:
Email accessibility report Security & data reportWe aim to acknowledge every accessibility report within 2 business days and resolve substantive issues within 30 days. If you'd prefer to file a report under any specific accessibility law (ADA Title III, Section 508, EAA, AODA, etc.), please mention that in your subject line and we'll route accordingly.
Audit tooling, transparently
The audit script that produces the "0 errors" status above lives in our repo at marketing/accessibility-audit.py. It's not magic — it's 12 regex-based WCAG checks, run before every deploy. We pair it with manual NVDA/VoiceOver passes on the highest-traffic surfaces. The /changelog records every accessibility-related fix.
Related transparency surfaces
- /trust — full transparency hub
- /security — security and data practices
- /privacy — privacy policy
- /changelog — every fix dated and public
- /velocity — 30-day ship calendar
This page itself
Built to its own standard. Skip-link at top. Single h1. Logical heading hierarchy. Visible 3px brass focus indicators on every focusable element. Color contrast ≥ 4.5:1 for body text, ≥ 3:1 for large text. role="main" on the content region. aria-label on the nav. Tested with NVDA + Firefox before publish.