Final challenge: fix an inaccessible page
Below is a small bookshop page with twelve real accessibility problems. Each one comes from an earlier lesson, starting with Understanding web accessibility. First you find them, then you fix them, then you take a test checklist with you for every page you build.
In one minute
- Part 1, find: test the practice page with your keyboard and the readouts. Tick each problem you spot.
- Part 2, fix: press "Show fix" on each problem. The practice page updates, and the score goes up.
- Part 3, keep: print the 10-point manual test checklist and use it on your own pages.
- Stuck? Hints appear one at a time. Each fix links back to the lesson that teaches it.
An accessibility audit is a careful check of a page, looking for anything that blocks people. Automatic tools catch only some problems. The rest you find by using the page the way your users do: by keyboard, zoomed in, and with a screen reader.
1. The broken bookshop
This page looks fine to a mouse user with good eyesight. Now imagine Ravi, who uses a screen reader, and Mei, who uses only a keyboard. Ravi cannot find the form's email box. Mei cannot add a book to her basket at all.
The practice page sits inside a frame, so it is a real separate page. Press Tab to move into it. The readouts below it update every time you fix something.
Practice page
- Page language:
- …
- Page title (shown in the browser tab):
- …
Headings list
Landmarks list
- Without reading ahead, press Tab through the practice page. Try to add "The Salt Road" to the basket. Can you?
2. Part 1: find the problems
Work through the list. Test each point on the practice page. Tick it when you have found a real problem there. There is a problem behind every item.
You have found 0 of 12.
Hints
- Aim for at least eight of twelve before you open any hint. Most testers miss the image and status problems.
3. Part 2: fix them one by one
Each card names the problem, who it hurts, and the fix. Press "Show fix" to swap the practice page to the fixed version. Press it again to see the broken one.
- Fix only "Add to basket" and "Status message". Now use the keyboard to add a book. What changed for Mei, and what changed for Ravi?
4. Part 3: your 10-point manual test checklist
Run these ten checks on every page you build. They take about fifteen minutes. Print this list, or tick it here.
The browser tab shows a clear, unique title. The
<html>element has the rightlang.Put the mouse away. Tab reaches every link, button and field, in a sensible order. Enter and Space work. You never get stuck.
At every step you can see where focus is. Nothing is hidden behind a sticky header.
At 200%, all text grows and nothing is cut off. At 400% (like a narrow phone), you do not need to scroll sideways to read.
Open the screen reader's list (NVDA: Insert+F7; VoiceOver on Mac: VO+U). One
h1, no skipped levels, and header, nav, main and footer are present. The skip link works.Normal text is at least 4.5:1, large text 3:1, icons and field borders 3:1. Nothing is shown by colour alone.
Every field has a visible label. Groups of choices have a
<legend>. Errors are in words, next to the field, and linked to it.Informative images have
altthat gives the same information. Decorative images havealt="".Each one makes sense alone, in a list. Actions use
<button>; places use<a href>.With "reduce motion" turned on, animations stop. "Saved", "3 results" and errors are announced by a screen reader.
Common mistakes
| You see | Why it is a problem | Fix |
|---|---|---|
| Only an automatic checker was run | Tools catch only some problems, often quoted as about a third. They cannot judge alt text or focus order. | Add the manual checklist. |
| Testing with the mouse only | Keyboard and focus problems stay hidden. | Test with Tab first. |
| Fixing the look but not the code | A styled div still is not a button. | Use the right element. |
| Adding ARIA to cover every gap | Wrong ARIA is worse than none. | Native HTML first, ARIA only for gaps. |
| Testing once, at the end | Late fixes cost more and get skipped. | Run the checklist on every new page. |
Remember
- Find problems by using the page: keyboard, zoom, screen reader lists.
- Most fixes are small: the right element, a label, an
alt, a heading level. - Never remove the focus outline without a better one.
- Errors and status messages need words, and a way to reach screen reader users.
- Keep the 10-point checklist. Use it every time.