This site should be usable with a keyboard, with a screen reader, at high zoom, with animation turned off, and with JavaScript disabled entirely. Where it falls short of that, this page says so rather than claiming otherwise.
The standard being aimed at
The target is the Web Content Accessibility Guidelines version 2.1 at level AA. The word aimed is deliberate. This site has not been through an independent accessibility audit, so this is a statement of intent and of specific work done, not a certification, and nothing here should be read as a formal conformance claim.
What is in place
Specifics rather than reassurance, because every item below is checkable.
- A skip link on every page, as the first thing a keyboard user reaches.
- Text contrast that clears AA on both the light and the dark surfaces. The palette is built as separate token sets for each, because a single gray ramp cannot serve both. The brand orange is used for headings, borders and accents rather than body text, precisely because it does not clear the ratio at body size on a light background.
- Visible focus styles throughout, using focus-visible so they appear for keyboard use without following a mouse click around.
- One h1 per page and no skipped heading levels, so the outline a screen reader announces matches the page you can see.
- Every form field has a real label. No field uses placeholder text as its label. Errors are tied to their input with aria-describedby, marked with aria-invalid, and announced through a live region rather than only turning red.
- Reduced motion is respected. Turning on the operating system setting removes the intro animation entirely and renders every staged reveal in its final position immediately.
- The site works with JavaScript disabled. All content is in the served HTML. Nothing is injected, and no hidden state is applied unless JavaScript is present to remove it, so the failure mode is content that does not animate rather than content that never appears.
- Interactive targets are at least forty four pixels in their smallest dimension.
- Code blocks scroll horizontally and are keyboard reachable, so a scrollable region is not a mouse only region.
- The phone illustration on the homepage carries a text description of the conversation it shows, and the animated headline exposes its full sentence as one string rather than as a run of separate characters.
- Layout is not fixed to a pixel width. Text reflows at high zoom and at narrow widths without a horizontal scrollbar on the page itself.
Known limitations
Listing these is more useful than omitting them.
- No independent audit. Everything above was checked by the people who built the site, which is the weakest form of testing there is.
- Screen reader coverage is partial. The markup is written to standard semantics, but the site has not been exercised end to end with every major screen reader and browser pairing.
- The intro animation on the homepage runs on a timer. Any interaction dismisses it immediately and reduced motion prevents it appearing at all, but it is still a moving element that starts on its own.
- Long code blocks require horizontal scrolling on narrow screens. They are keyboard reachable, which is the accessibility requirement, but scrolling to read a line is still awkward.
How this was checked
Keyboard only navigation through every page. Loading every page with JavaScript disabled and confirming the content is complete and readable. Rendering with the reduced motion setting forced on. Checking contrast ratios against the computed token values rather than by eye. Confirming the heading outline of each page programmatically rather than visually.
What has not been done: testing with real assistive technology users, and testing with a screen reader in every browser.
Reporting a problem
If something here does not work for you, tell me and I will fix it. This is a small site maintained by one person, which means there is no accessibility ticket queue and also no committee between you and the change.
Use the contact page or email hello@theaeoguy.pro. Describing the page, what you were trying to do, and what you were using to do it will get to a fix faster, but a one line report is welcome and better than none.
If a page is blocking you right now and you need what is on it, say so and I will send you the content in whatever format works.