Serious
1.3.1 Info and Relationships · Level A
Structure lists correctly (WCAG 1.3.1)
<ul> and <ol> may only contain <li> (plus script/template) as direct children.
Why it matters
Assistive tech announces "list, 5 items" and lets users jump item to item. Wrapping list items in stray <div>s breaks that semantics so the list isn't announced as one.
How to fix it
Put content in <li> elements and keep non-list markup out of the direct children of the list.
<!-- Passes -->
<ul>
<li>First</li>
<li>Second</li>
</ul>
Related guides
- Fix low colour contrast (WCAG 1.4.3) 1.4.3 Contrast (Minimum)
- Add text alternatives to images (WCAG 1.1.1) 1.1.1 Non-text Content
- Give links a discernible name (WCAG 2.4.4) 2.4.4 Link Purpose / 4.1.2 Name, Role, Value
- Give buttons a discernible name (WCAG 4.1.2) 4.1.2 Name, Role, Value
These guides cover automated checks (~30–40% of WCAG criteria). A full audit also needs manual review.