Accessibility
Accessibility at MrStubs
Statement last reviewed 2026-05-19. We re-review at least quarterly and after any material change to the platform.
Our commitment
We build MrStubs for everyone — including people who use screen readers, navigate with a keyboard, need higher contrast, or rely on reduced-motion preferences. We target the Web Content Accessibility Guidelines (WCAG) 2.2 at Level AA as our baseline. We don't claim perfect — we claim honest, and we publish what we know is still broken so you can plan around it while we fix it.
Conformance status
As of 2026-05-19, MrStubs v3 is partially conformant with WCAG 2.2 Level AA. Of the 18 customer-facing surfaces in our most recent audit, 14 fully meet AA, 4 have one or more open findings still in active remediation. The grid below is current as of this statement's publication date and is refreshed each time we ship an a11y fix.
Surfaces we've audited
Every public route gets the same 18-item checklist: skip-link, landmark, heading hierarchy, focus visibility, focus trap, keyboard reachability, tab order, target size (44×44 CSS px), reduce-motion support, alt text, form labels, error association, color contrast (normal, large, UI), name/role/value, ARIA semantics, and name/state announcement.
| Surface | URL | Status as of 2026-05-19 | Notes |
|---|---|---|---|
| Home | / |
Fully meets AA | Hero, value pillars, featured events, footer CTA: all green. |
| Sign in | /users/log-in |
Fully meets AA | Form labels, error association, tab order verified. |
| Sign up | /users/register |
Fully meets AA | Magic-link single-field flow; programmatically associated label, descriptive submit button. |
| 404 error | (any unknown route) | Fully meets AA | Heading hierarchy, recovery links, ghost-button border edge case under review. |
| Footer (all variants) | site-wide | Fully meets AA | Brand, Product, Company, Social columns plus minimal plus CTA variants all green. |
| Nav header | site-wide | Fully meets AA | Skip-link target, landmark, mobile bottom nav reachable. |
| Pricing | /pricing |
Partially meets AA | Tier-card price-display contrast on Pay-As-You-Go column under remediation. FAQ disclosure pattern fixed (now native details/summary). Eyebrow duplicate-heading fix in flight. |
| Events index | /events |
Fully meets AA at empty-state | Filter inputs labeled; once events populate, card-keyboard-reachability requires re-audit. |
| Contact | /contact |
Fully meets AA at form layer | Field labels, submit button, error association need re-audit once server-side validation lands. |
| Checkout flow | /checkout/* |
Not yet audited at v3 production | v3 checkout LiveView ships Sprint 2 Phase D; full audit scheduled before Sprint 3 cutover-of-checkout. |
| Organizer event creation | /organizer/events/new |
Not yet audited at v3 production | Sprint 3 EPIC-2. Pre-audit in v2 reference doc. |
| Ticket scanner (PWA) | /scan |
Not yet audited | EPIC-7. Camera permission flow, offline mode, ticket-valid announce-pattern under design. |
| Seating editor | /organizer/events/[id]/seating |
Feature in development | EPIC-6. Canvas-based interaction; keyboard equivalents and screen-reader narration designed-in from day one. |
"Not yet audited" means the surface ships in a later sprint and will be added to this table when it lands in production. We do not list pages as conformant until we've actually walked the 18-item checklist on the live page.
Known issues
We list every open finding we know about. If you find one we missed, please tell us.
- Pricing page — Pay-As-You-Go column price text contrast. Some helper text on the PAYG tier card uses an opacity that computes to roughly 3.2:1 against the card background, below the 4.5:1 floor for normal body text. Fix in progress; target: this sprint. WCAG 1.4.3.
- Pricing page — "Not included" feature labels strike-through. Same root cause as above; strike-through further reduces legibility. Fix in progress; target: this sprint. WCAG 1.4.3.
- Pricing page — duplicate "Questions we get a lot" heading. Eyebrow text and section heading both render the same string, so screen readers announce it twice. Five-minute fix; target: this sprint. WCAG 1.3.1.
- Site-wide — ghost-button border visibility. Secondary-CTA ghost buttons have a resting border that computes to ~1.04:1 against the page background. The button is keyboard-focusable and the focus ring is visible — but the at-rest border is effectively invisible. Fix planned for next CSS sweep; target: Sprint 3 Wave C-3 follow-up. WCAG 1.4.11.
-
Pricing page hero — light text-opacity on warm-neutral background.
text-white/60on the hero band computes to ~3.3:1 light-mode, below the 4.5:1 floor for body text. Fix planned; target: Sprint 3 Wave C-3 follow-up. WCAG 1.4.3. - Seating editor (in development). The canvas-based seat picker for organizers is being built with keyboard equivalents and screen-reader announce-patterns designed-in. Until it ships, this surface is not conformant; we will not enable it for organizers until it is. Target: EPIC-6, roughly six weeks out. WCAG 2.1.1, 4.1.2.
-
Skip-to-content link consistency.
The skip-to-content link is present in the layout shell but rendered visibly only on the home page. Other surfaces have the
<main id="main-content">jump target but lack the visible skip link. Target: Sprint 3 Wave C-3 follow-up — hoist the visible skip link into the global Layouts.app head. WCAG 2.4.1.
How we got here
v3 was rebuilt from the ground up in 2026 with accessibility as a Sprint-1 commitment, not a Sprint-N-minus-one cleanup. We defined a color-contrast token system (we call it ADR-0019) that makes opacity-based contrast accidents harder to ship. Every surface gets walked through an 18-item checklist before it counts as "done." We re-audit after every visual change. And before this page existed, we'd already shipped 14 of 18 customer-facing surfaces at full AA.
The four still open above are the four we're working on right now. The seating editor isn't open yet because it hasn't shipped — when it does, it ships conformant or it doesn't ship.
Standards we follow
- WCAG 2.2 Level AA (W3C) — the baseline. Detailed criterion-by-criterion conformance is in our VPAT.
- Section 508 of the U.S. Rehabilitation Act — federal procurement standard. We map our WCAG 2.2 AA conformance onto Section 508 in the VPAT.
- EN 301 549 — the European harmonized accessibility standard. WCAG 2.2 AA conformance covers the web-content provisions.
- ADA Title III — U.S. private-accommodation obligations. We treat WCAG 2.2 AA conformance as the floor here as well.
Read our detailed VPAT 2.4 (Voluntary Product Accessibility Template)
How to report an accessibility issue
If something on MrStubs isn't working for you, please tell us. We treat accessibility reports the same way we treat checkout-broken reports — fast, with a real human, with a follow-up.
Email: [email protected]Or use the form on our contact page.
We aim to respond within two business days. If you're filing on behalf of an organization or a procurement review, mention that in the subject line so we can route to the right person faster.