Accessibility
~ 3 min reading
Accessibility is a first-class concern in this web edition. The features below are what’s in place today; the list will grow as further improvements land.
If you encounter an accessibility issue — something that doesn’t work with your keyboard, screen reader, or preferred display settings — please email me at hello@leedurbin.co.nz or open an issue on GitHub. I treat accessibility reports as priority bugs.
Current features
Skip-to-content link. Keyboard and screen-reader users can bypass the sidebar on every page. The link appears as the first focusable element on page load.
Reading preferences panel. A single button in the bottom-right of every page opens a panel grouping all reading-preference toggles. The panel is keyboard-accessible (Esc closes, Tab cycles through controls), and its expanded state is announced to screen readers. Each toggle’s value persists across pages.
The panel currently contains:
- Theme — switches the site between light and dark colour schemes for low-light reading, photosensitivity, or simple preference. Honours your operating system’s
prefers-color-schemesetting on first visit and remembers your explicit choice thereafter. - Dyslexia font — switches body and heading text to the OpenDyslexic typeface, which some readers with dyslexia find easier to parse.
Glossary marker on specialised terms. Specialised vocabulary (such as common cause, special cause, and PDSA cycle) is marked up with the HTML <dfn> element at the place where each term is first defined in the prose. The marker is rendered with an upright (non-italic) face and a 2px solid amber underline, distinct from blue hyperlinks and from Neave’s own use of italics for emphasis, so the cue is conveyed by both shape and colour rather than colour alone (WCAG 1.4.1). The full set of terms is collected in the Glossary appendix for non-linear lookup.
Visible focus indicators. Keyboard focus is clearly outlined on all interactive controls (links, buttons, text inputs, toggles). Mouse users are unaffected.
ARIA labelling. Interactive elements, data tables, and input widgets expose accessible names to assistive technology. This includes the site search, the activity text inputs, and the chart-embedded controls on Days 2, 3, and 6.
Non-colour status indicators. Where the course uses colour to convey state — for example, the four phases of the funnel experiment on Day 3 — shape and text are used alongside colour, meeting WCAG 1.4.1 Use of Color.
Reduced-motion support. Animated transitions respect the prefers-reduced-motion: reduce media query. If your operating system or browser requests reduced motion, the site complies.
Print-safe styling. Decorative controls and colour overrides are suppressed in print media, so hard-copy notes and PDF exports render cleanly.
Automated checks
Every pull request to the repository runs pa11y against the rendered site. The build fails if any WCAG 2.1 AA issue is detected, so the main branch is kept passing at all times.
A small set of pa11y rules are suppressed in .pa11yci.json — chiefly framework-level false positives or rules whose substantive remediation is scoped to other tracked issues. The rationale for each suppression is documented in docs/pa11y-ignores.md, which should be updated whenever the ignore list changes.
What’s still to come
Planned improvements are tracked on GitHub under the accessibility label. Current priorities include long-descriptions for the statistical charts across Days 4–12 and a per-chapter text-to-speech control.