Fails
Fixed-width page wrapper
Live preview
.page { width: 960px; margin: 0 auto;}
At 320 CSS pixels wide, which is a 1280px window zoomed to 400%, a 960px page needs sideways scrolling to read every line.
Perceivable · 1.4 Distinguishable
Content must be usable without scrolling in two directions, and without losing information or function, at a width of 320 CSS pixels, or a height of 256 CSS pixels for horizontally scrolling content. Parts needing a two-dimensional layout, such as maps, data tables and diagrams, are exempt.
Live demo
The same task, done two ways: switch between the version that passes and the one that fails, or put them side by side. Everything in the box is live, so try it with a keyboard, a pointer or a screen reader.
Drag the width from 1280 down to 320 pixels. Check whether you can read the product details and reach Add to cart without scrolling sideways.
$64.00
A 20-liter backpack in waxed cotton, with a padded laptop sleeve and two front pockets.
$64.00
A 20-liter backpack in waxed cotton, with a padded laptop sleeve and two front pockets.
The tools follow the version you last used.
What happened
Why it passes
The layout is flexible. At 320 pixels the photo moves above the details, and everything fits in one column that you scroll down.
Why it fails
The layout is fixed at 900 pixels. At 320 pixels you have to scroll sideways to read each line and to find the Add to cart button.
Examples
Five examples, each one running: the usual ways this criterion fails, and code that passes. Listen to them, measure them, or copy the code.
Fails
Live preview
.page { width: 960px; margin: 0 auto;}
At 320 CSS pixels wide, which is a 1280px window zoomed to 400%, a 960px page needs sideways scrolling to read every line.
Passes
Live preview
.page { max-width: 60rem; margin: 0 auto; padding: 0 1rem;}
max-width limits the width on large screens, but the page can shrink to 320 pixels, so text wraps inside the window.
Fails
Live preview
<p class="tracking">Track your parcel at <a href="https://parcels.example.com/track?ref=AB1234567890US4471200938KXQ7720341&zip=10001">https://parcels.example.com/track?ref=AB1234567890US4471200938KXQ7720341&zip=10001</a></p>
A long URL has few places where the browser may break it, so it can push the page wider than 320 pixels and cause sideways scrolling.
Passes
Live preview
.tracking a { overflow-wrap: anywhere;}
overflow-wrap: anywhere lets the browser break the URL at any character when it would not otherwise fit, so it stays inside 320 pixels (technique C33).
Passes
Live preview
<div role="region" aria-labelledby="fares-caption" tabindex="0" style="overflow-x: auto"> <table> <caption id="fares-caption">Train fares by time of day</caption> <tr><th scope="col">Route</th><th scope="col">Peak</th><th scope="col">Off-peak</th></tr> <tr><th scope="row">Boston to Providence</th><td>$18.40</td><td>$12.10</td></tr> </table></div>
Data tables need two dimensions, so they are exempt. Scrolling the table inside a labelled, focusable region keeps the rest of the page in one column.
Why it matters
People with low vision who zoom to 400 percent can read by scrolling in one direction, instead of panning back and forth along every line.
W3C: Understanding 1.4.10Level AA
Level AA is the level most laws and policies require.
Where it is required
Required where the law names WCAG 2.1 or later at this level: the United States, Canada, the European Union, the United Kingdom, France, Germany, Italy, Spain, the Netherlands, Ireland, Norway, Switzerland, India, Australia and New Zealand.
How to test
A few concrete steps. Automated tools find some failures; most need a person.
Common failures