Built to WCAG 2.1 AA, checked in the open
A legibility pass at the design-token level, backed by a script in the repo rather than a claim on a page — the same operational habit the rest of this site runs on.
Conformance statement
The standard we hold this site to, and how that's checked.
- Standard
- WCAG 2.1
- Level
- AA
- Method
- Self-assessed
How it's measured
Not a one-time review — a script that runs against the built site.
check:a11y crawls every route in the sitemap with axe-core, at a desktop and a mobile width, and exits with an error if any check against the WCAG 2.1 A/AA rule sets comes back with a violation. We run it against the built site before a change ships. The script lives in the repo alongside the site it checks — the same repo that built this page.
It also re-checks contrast with every hover style switched on, and checks the heading outline of each page. Automated rules still can't see everything: animations that never settle, and the pressed state of a control, are checked by hand rather than by the script.
The site ships two themes — day and night — resolved from your system preference (with a header toggle to override it). check:a11y crawls every route in both, including the forced-hover pass, so a colour pairing that only exists in the dark palette gets the same scrutiny as the light one.
What's covered
The specific things the guard script and a manual keyboard pass check for.
Colour contrast
Every route is checked for text that clears 4.5:1 against its surface — including the primary call-to-action, in both its resting and hover states.
Visible focus
Every interactive element — links, buttons, form fields, the rate-card scroller — shows a visible focus ring, not just a colour shift.
Skip link
The first tab stop on every page jumps straight past the header to the main content.
Keyboard reach
Anything that scrolls, like the rate card, is reachable and operable from the keyboard, not just a pointer.
Heading structure
One top-level heading per page, and heading levels never skip — a screen reader can jump the outline reliably.
Reduced motion
The scroll-reveal animation and other transitions are dropped entirely when the OS asks for reduced motion.
Day and night themes
Respects your system preference by default, with a sticky header override — both themes are checked by the same contrast guard.
What this isn't
Stated plainly, so the conformance claim above isn't overreaching.
- This is a self-assessment against WCAG 2.1 AA, run by the team that built the site — not an independent third-party audit.
- There is no formal VPAT (Voluntary Product Accessibility Template) yet.
- Automated tooling catches a wide slice of issues but not everything a manual audit or real assistive-technology use would surface.
Found something we missed?
Automated tooling doesn't catch everything — tell us what you ran into.
Tell us through the quote form
There's no separate mailbox for this — the same form that starts a hosting conversation reaches the team directly. Describe the page and what happened, and we'll follow up.
This page exists because of the loop CustomHosted sells: CustomLabs designed the fix, CodeHerder's agents opened the pull request, the guard script gated it, and the merge deployed it — the same path any future accessibility fix takes, not a one-off audit that goes stale.
See it in context
- Built in the open
The real pull-request ledger this page and its guard script shipped through.
- Security
Backups, patching, TLS, and portability — the operational half of this posture.
- Status
Live status of the grid this site and the rest of your stack run on.
- Support
How to reach a human, including to report an accessibility barrier.
Ready to start?
Tell us what you're running — one fixed monthly rate, within a business day.