joshthompson.co.uk is built to be usable by as many people as possible, including users of assistive technology.
What we aim for
We aim to meet WCAG 2.1 Level AA across every page. This is verified on every pull request via axe-core (an automated accessibility scanner) covering the home, search, log-in, register, password reset and 404 routes.
We also test interactively in Safari + VoiceOver on macOS & iOS, and Chrome + NVDA on Windows.
What's already in place
Skip-to-main-content link as the first focusable element on every page (WCAG 2.4.1).
Keyboard-first navigation: every menu, dialog and interactive element works with Tab, Enter, Space and Esc.
Visible focus rings in the brand jt-pink colour on every focusable element when navigating with a keyboard.
Mobile-nav focus management: opening the menu traps Esc-to-close and returns focus to the trigger.
Inline links use underlines, not colour alone, so users who can't perceive the brand pink can still spot links inside body copy (WCAG 1.4.1).
Reduced-motion respected: every animation and transition collapses to instant for users with prefers-reduced-motion: reduce.
Light + dark backgrounds meet 4.5:1 contrast against body text and 3:1 against large text.
Forms have associated labels, aria-describedby for hints + errors, and aria-invalid on error.
Article hierarchy: h1 → h2 → h3 used semantically; jump-to-section table of contents on long articles with IntersectionObserver-driven active highlight.
Known limitations
Some migrated WordPress imagesmay lack alt text where the original publication didn't include one. We're working through these as we re-touch each post.
The AI Josh chat widget streams responses; screen readers may announce mid-stream content. We use aria-live="polite" to keep this non-disruptive but it's an active area of polish.
Embedded YouTube videos use the standard YouTube player whose accessibility is governed by Google.
Reporting an issue
If you encounter an accessibility barrier, please get in touch. Include the URL, your browser + assistive technology, and a brief description of what went wrong. We aim to respond within 5 working days.