Self-check and mini-test

Two quick tools to spot common problems. Neither measures conformance.

20-point self-check

Do it on your key pages (home, product page, cart, checkout).

Download the checklist (Word)

#CheckHow to testWCAG 2.1RGAA 4.1
1Everything works with a keyboardPut the mouse away. Using Tab, Shift+Tab, Enter, Space and arrow keys, go through the menu, search, a product page, the cart and checkout. You must never get stuck.2.1.1, 2.1.24.11, 4.12, 7.3, 10.14, 12.9, 12.11
2Focus is visibleWhile tabbing, you can always see where you are (outline, underline…), including on buttons and fields.2.4.77.3, 10.7
3Tab order makes senseFocus follows the reading order and does not jump around; a modal dialog keeps focus and returns it when closed.2.4.310.3, 12.7, 12.8, 13.3, 13.4
4There is a skip linkOn the first Tab press a “Skip to content” link appears and works.2.4.19.1, 12.6, 12.7, 13.3, 13.4
5Meaningful images have a text alternativeProduct photos, logos and icon buttons have a relevant text alternative; decorative images have alt="" (the mini-check below can help).1.1.11.1, 1.2, 1.3, 1.4, 1.5, 1.6, 1.7, 1.9, 4.7, 4.8, 4.9, 6.1, 6.2, 7.2, 10.2, 13.3, 13.4, 13.5, 13.6
6Contrast is sufficientText: at least 4.5:1 (3:1 for large text). Field borders and meaningful icons: at least 3:1. Check prices, buttons, grey notes and banners.1.4.3, 1.4.113.2, 3.3, 10.5
7Colour is not the only cueErrors, links in text, unavailable sizes or steps are not shown by colour alone.1.4.13.1, 10.6, 10.7, 10.9, 10.10
8Zoom to 200% and 320 px widthZoom to 200%, then shrink the window to 320 px wide: everything stays readable and usable, without horizontal scrolling.1.4.4, 1.4.1010.4, 10.11
9Headings structure the pageEach page has one main heading (h1) and nested sub-headings that describe the sections.1.3.1, 2.4.63.1, 5.1, 5.2, 5.4, 5.5, 5.6, 5.7, 5.8, 7.3, 8.9, 9.1, 9.2, 9.3, 9.4, 10.1, 10.2, 11.1, 11.2, 11.5, 11.6, 11.7, 11.8, 12.6, 13.3, 13.4
10Each page has a unique titleThe browser tab shows a title that tells pages apart (e.g. “Cart – My Shop”).2.4.28.5, 8.6
11The language is declaredThe html element has the correct lang attribute (e.g. lang="en").3.1.18.3, 8.4, 13.3, 13.4
12Links are descriptiveNo bare “click here” or “read more”: the link text or its context says where it goes.2.4.46.1, 6.2
13Every field has a labelFields (search, address, card, newsletter) have a visible label tied to the field, not just placeholder text.1.3.1, 3.3.2, 4.1.21.2, 1.3, 1.9, 2.1, 2.2, 3.1, 4.13, 5.1, 5.2, 5.3, 5.4, 5.5, 5.6, 5.7, 5.8, 7.1, 7.2, 7.3, 8.2, 8.9, 9.1, 9.2, 9.3, 9.4, 10.1, 10.2, 10.8, 11.1, 11.2, 11.4, 11.5, 11.6, 11.7, 11.8, 11.9, 11.10, 12.6, 13.3, 13.4
14Errors are explainedSubmit an empty form: the error is described in text, near the field, with a suggestion to fix it.3.3.1, 3.3.311.10, 11.11
15Status messages are announced“Added to cart”, “3 results”: with a screen reader (NVDA, VoiceOver) the message is read without moving focus.4.1.37.5
16Videos have captionsVideos with speech have synchronised captions; important visual information is described.1.2.2, 1.2.54.3, 4.4, 4.5, 4.6
17Motion can be pausedCarousels and scrolling banners have a pause button and do not move for more than 5 seconds without a control.2.2.213.1, 13.8
18No blocking time limitsIf a session or cart expires, the user is warned and can extend the time.2.2.113.1, 13.8
19Login, CAPTCHA and payment are accessibleA CAPTCHA has an alternative (audio or other); sign-up, login and payment (including 3-D Secure) work with a keyboard and a screen reader.1.1.1, 3.3.21.1, 1.2, 1.3, 1.4, 1.5, 1.6, 1.7, 1.9, 4.7, 4.8, 4.9, 6.1, 6.2, 7.2, 10.2, 11.1, 11.2, 11.4, 11.5, 11.6, 11.7, 11.10, 13.3, 13.4, 13.5, 13.6
20Downloadable documents are accessibleTerms, invoices, manuals as PDF: selectable text, tagged headings, or an equivalent HTML version.1.1.1, 1.3.11.1, 1.2, 1.3, 1.4, 1.5, 1.6, 1.7, 1.9, 3.1, 4.7, 4.8, 4.9, 5.1, 5.2, 5.4, 5.5, 5.6, 5.7, 5.8, 6.1, 6.2, 7.2, 7.3, 8.9, 9.1, 9.2, 9.3, 9.4, 10.1, 10.2, 11.1, 11.5, 11.6, 11.7, 11.8, 12.6, 13.3, 13.4, 13.5, 13.6

Automated mini-test of an HTML snippet

Paste the HTML of a page or component (right-click › “View page source”, or the browser inspector). The test runs in your browser with axe-core 4.13; the code is not sent anywhere.

Scripts in the pasted code are removed and no external resource is loaded (images, CSS, fonts). To test contrast, paste the CSS in a <style> element too.