- Success Criterion 1.3.2
- Conformance level A
Print or PDF Export That Produces a Scrambled Reading Order
1.3.2 — Meaningful Sequence
Scenario
Setting
A grocery delivery app's shopping cart
What’s wrong
Newspaper-style print stylesheets/PDF export producing wrong linear order.
Example
.cart-summary { column-count: 2; column-gap: 2em; }
<div class="cart-summary">
<p>Organic Bananas</p>
<p>$3.49</p>
<p>Whole Milk</p>
<p>$2.99</p>
</div> Why it matters
Printing the cart before checkout, a shopper sees "Organic Bananas" fall at the bottom of column one while its $3.49 price jumps to the top of column two, so the exported list reads as a block of names followed by a block of unrelated prices.
How to test
Export the page to PDF or apply a print stylesheet, then read it linearly: check whether the linearized order still makes sense.
How to fix
If an item's name lands as the last line of one column and its price becomes the first line of the next, printing or exporting the cart separates the two entirely, so apply break-inside: avoid to each item block so a name and its price never get split across a column or page break.
.cart-item { break-inside: avoid; }
<div class="cart-item">
<p>Organic Bananas</p>
<p>$3.49</p>
</div> Outcome
Printed or exported before checkout, the cart now lists each item's name immediately followed by its own price.
Who is affected
Screen reader users and low-vision users reading a printed or exported version of their cart lose the pairing between each item and its price.
Learn more
- Understanding Understanding document (opens in a new tab)
Related scenarios
- CSS Layout Changes That Scramble the Screen Reader’s Reading Order
- Word Spelled Out Letter by Letter Instead of Read as a Word
- Text Columns Faked With Spaces Read Aloud Out of Order
- Layout Table That Reads in a Nonsensical Order When Linearized
- CSS Reordering That Makes Code Order Differ From Visual Order
- Multi-Column Article Whose Code Order Interleaves the Columns