CSS Flexbox and Grid make it easy to lay things out in any visual position, regardless of where they sit in the HTML. That power is also a trap: a screen reader and the keyboard follow the DOM order, so if you reorder items only in CSS, what users hear and tab through no longer matches what sighted users see. This tool scans your CSS for the declarations that can cause that divergence.
How it works
The tool parses your CSS into selector and declaration blocks, stripping comments and flattening at-rule wrappers, then inspects each declaration for known order-shifting patterns:
- High risk — the flexbox
orderproperty with a non-zero value,flex-direction/flex-flowcontainingreverse, CSS Grid explicit placement viagrid-roworgrid-column, andgrid-template-areas. - Informational —
direction: rtlandfloat, which can shift content but are often legitimate.
Each high-risk finding names the selector and declaration and explains why the visual position may no longer match the source order. Because the tool cannot render the page, the output is a checklist of things to confirm rather than a definitive pass or fail.
Example
.nav .logo { order: 2; }
.nav .menu { order: 1; }
Visually the menu now appears before the logo, but in the DOM the logo still comes first, so a screen reader reads them in the opposite order to what a sighted user sees. The fix is to put the elements in the intended reading order in the HTML and avoid the order swap.
Tips and notes
- Prefer fixing the source order in HTML over reordering in CSS; that keeps visual, reading and focus order in sync automatically.
- After any layout change, tab through the page with the keyboard. If focus jumps around the screen, your DOM order is wrong even if the styles look fine.
grid-template-areasis especially easy to get out of order on responsive breakpoints, so re-check each breakpoint.- All analysis is static and local to your browser; the CSS you paste never leaves the page.