Accessibility
This site should work for everyone who comes to it.
Accessibility here is a design constraint rather than a box to tick, so the commitments below are written to be specific enough that you can check them. The places this site still falls short are listed underneath them.
What this site does
- Keyboard access
- Every interactive element is reachable by keyboard and shows a visible focus ring, offset far enough from the element that it never clips. A skip link is the first thing focus lands on, and it jumps straight past the navigation to the main content.
- Reduced motion
- The site reads your system's reduced-motion setting. With it on, animation stops and the scroll-driven career sequence becomes the same five beats as a plain list. It is the same argument delivered without the ride, not a stripped-down version of it.
- Colour contrast
- Every text colour is measured against the background it sits on and the ratio is recorded in the stylesheet. Body text is 17.7:1, secondary text 6.8:1, and the red accent 5.2:1. The AA threshold is 4.5:1.
- Structure and semantics
- One first-level heading per page, headings in order beneath it, landmark regions around the navigation, main content and footer, a declared page language, and alt text on every image. Decorative graphics are hidden from assistive technology so they are not read out as noise.
- The career sequence
- The five beats stay in the page markup the whole time rather than appearing at a particular scroll position, so a screen reader receives the sequence as one continuous block. A link inside it skips the whole thing.
Where it falls short
- No independent audit
- The checks above were run against the code by hand. No third party has reviewed this site and there is no VPAT behind it. Treat the claims as specific and testable, not as certified.
- The resume PDF is untagged
- It carries no document structure, so a screen reader reads it as loose text with no headings or reading order. Email me and I will send the same content in a format that works for you.
- The career sequence is a long scroll on a phone
- The skip link inside it is the honest fix and it helps. The sequence is still long on a small screen.
- The globe needs WebGL
- The animated globe requires a browser with WebGL enabled. Turning on reduced motion loads the static version, which needs no WebGL at all.
Something here blocked you?
Tell me and I will fix it. Send the page you were on and what happened. If it is easier to describe out loud than to write down, say so and we will do it that way instead.