Built to be used by everyone.
Statement current as of
The target is WCAG 2.2 AA, and it’s built in rather than bolted on — the contrast ratios, focus styles, and semantic markup live in the design system, so every page inherits them instead of being remediated one at a time.
I’m not claiming perfection. Anyone who tells you their site is fully compliant is either testing more thoroughly than anyone in the industry or isn’t testing at all. What I can tell you is what I build to, how I check it, what I know is imperfect, and how fast I’ll fix something you report.
What that means in practice
- Keyboard, all the way through. Every link, control, and form field is reachable and operable without a mouse, with a focus indicator you can actually see, and no traps that strand you. A skip link is the first thing on every page, so you don’t tab the whole masthead to reach the content.
- Contrast that holds up. 4.5:1 for body text, 3:1 for large text, and 3:1 for the things people forget — button borders, field outlines, icons.
- Structure a screen reader can navigate. One heading per level in the right order, real labels attached to real fields, descriptive link text, and alt text that says something useful — or is deliberately empty when an image is decoration.
- Usable when magnified. Readable at 200% zoom and down to a 320px viewport, with no horizontal scrolling to chase.
- Targets you can hit. Comfortably past the 24×24 minimum, sized for real thumbs on real phones.
- Errors explained in words. Never color alone, and a form that never wipes what you typed when it complains.
- Motion that asks first. Nothing auto-plays at you, and if your system says you prefer reduced motion, this site listens.
How it’s actually checked
Automated tooling catches perhaps a third of real accessibility problems, so it’s the floor here rather than the answer. Every build runs an axe-core scan across every page, a contrast validation computed from the design system’s own color values, a check that no image ships without alt text, and a browser test that drives the contact form — including that its error summary takes focus and that its spam controls stay out of the keyboard’s way. A failure blocks the release rather than filing a ticket.
On top of that, pages get a manual keyboard pass, because the things automation misses are mostly things you find by trying to use the page without a mouse.
What I know isn’t perfect
Naming these is the part that makes the rest of this page worth reading.
A green build means zero automated violations, which is a real result and a partial one. The rest is judgement, and judgement is fallible — which is why the last section of this page matters more than the one above it.
Scheduling a call hands you to a third-party service with its own accessibility record, which I don’t control and won’t pretend to. If it gives you trouble, email me and we’ll arrange a time the ordinary way — that route will always exist.
The full record runs to thirty years and is dense by design. It’s structured and navigable, but density is itself a barrier for some readers. Shorter routes through the same material exist on every page that offers them, and I’d rather point you to one than have you fight the long version.
If a page ever carries a PDF, an embedded video, or a document from somewhere else, it may not meet the same bar as the pages around it. Tell me and I’ll get you the content in a form that works.
Why there’s no accessibility widget
You won’t find one of those overlay buttons here — the ones promising instant compliance from a single line of JavaScript. They don’t work, and they can make things worse by interfering with the screen reader or magnifier someone already has set up the way they like it. The FTC fined the largest vendor $1 million for claiming its product made sites compliant, and sites running overlays have been sued anyway.
An overlay is a liability wearing the costume of a fix. I remediate the source instead, which is slower, unglamorous, and the only thing that actually helps.
Found a problem? Tell me.
Email thread@goduarte.com with what happened, roughly where, and what you were using — a screen reader, keyboard only, magnification, voice control, whatever it was. You don’t need to know the technical name for it, and “this page fought me and I don’t know why” is a perfectly good report.
I’ll acknowledge it within one business day and tell you either when it’s fixed or what’s involved in fixing it. If it’s something I can’t fix quickly, I’ll get you the content another way in the meantime rather than leaving you waiting on a release.