Accessibility
I built this site to conform to the W3C Web Content Accessibility Guidelines (WCAG) 2.2 at Level AA.
- Date of claim
- Guidelines
- Web Content Accessibility Guidelines (WCAG) 2.2
- Conformance level
- Level AA
- Pages covered
- All pages on adamtibi.com.
- Technologies relied upon
HTML and CSS. I use JavaScript in a few places to improve the experience, but the site does not depend on it. With JavaScript switched off, every page still reads and anything JavaScript would have enhanced falls back to plain HTML. JavaScript is therefore not relied upon for conformance.
Tested manually
Automated tools can check roughly thirty of the fifty-five success criteria that apply at Level AA. The rest need human judgment. A tool can tell me that an image has alt text, for example, but it cannot reliably tell me whether that alt text is actually useful. The same applies to things such as whether a heading describes what follows or whether a focus indicator is obvious enough to see.
So I checked those myself using the following.
- Silktide Toolbar (new tab), which I ran over every page on the site.
- NVDA (new tab), the screen reader from NV Access, on Windows.
- VoiceOver (new tab) on iPhone.
Tested automatically
I also have automated accessibility tests running against the built site before anything is published. If one of these tests fails, the release fails with it rather than producing a warning for me to look at later.
- axe-core (new tab) is the main accessibility scanner I use. It runs against every page in both light and dark themes at 320, 768 and 1500 pixels wide. I also enable the WCAG 2.2 rules that axe ships with but leaves switched off by default.
- Playwright (new tab) drives that matrix, twelve combinations in total. It also runs tests I wrote specifically for things a scanner cannot reliably check, including the skip link, focus visibility, focus not being obscured, reflow, text spacing and consistent help.
- pa11y-ci (new tab) makes a second independent pass over every page using both axe and HTML_CodeSniffer. I use this because I don’t want the whole accessibility check to depend on one scanning engine.
- Nu Html Checker (new tab) validates the HTML and CSS of every built page. Invalid markup may look perfectly fine in a browser while giving assistive technology something very different to work with.
- Lighthouse CI (new tab) runs as another check, and its accessibility category has to score 100.
- lychee (new tab) checks every internal link and anchor target. This also catches broken skip links and links to sections that no longer exist.
- I wrote a contrast audit specifically for this site to cover non-text contrast, including the contrast used by the footer accessibility badge.
- I also wrote a content lint that requires alt text and a caption on every image and rejects link text that would mean nothing when read out of context.
I have tested this site manually, NVDA included, but there is an obvious problem with me being the tester: I already know the content.
Knowing what a page says is not the same as meeting it cold, and that makes me a poor test subject.
So if you find an accessibility problem here, or anything else that does not work for you, please tell me on LinkedIn (new tab). I would rather hear about it than not.