Most of us check a landing page at the size of our own screen. Plenty of visitors don't see it that way: they zoom in, use a larger default font, or browse on a small window. Here is a short check that catches the most common breakage.
The check
- Open the page in a desktop browser.
- Press Ctrl and + (Cmd and + on a Mac) until you reach 200%.
- Scroll the whole page, top to bottom.
- Zoom further, to 400%, and scroll again.
Two WCAG success criteria cover this:
- 1.4.4 Resize Text: text can be resized up to 200% without loss of content or functionality.
- 1.4.10 Reflow: content can be presented without loss of information or functionality, and without scrolling in two dimensions, at a width of 320 CSS pixels. W3C notes that this is the same as a 1280 pixel wide window at 400% zoom. Parts that need a two-dimensional layout, such as data tables, maps and diagrams, are an exception. A single column is a common way to meet it, but the requirement is the lack of sideways scrolling and of lost content, not a specific layout.
What usually breaks
-
Fixed-height hero sections. If the hero has
height: 600px, big text spills over the next section. Usemin-heightinstead. -
Text that gets clipped. Buttons or cards with a fixed width and
overflow: hiddencut off labels. Let them grow. - A sticky header that eats the screen. At 200%, a tall fixed header can cover half the viewport. Check that you can still reach the content under it.
- Sideways scrolling. Usually one wide element, like a pricing table or a code block, pushes the page past the viewport. Wrap it in its own scroll area.
-
Font sizes in px. If someone sets a larger default font in their browser,
pxtext ignores it. Usingremfor body text respects it.
A quick way to find the culprit
If the page scrolls sideways, run this in the console to list elements wider than the window:
[...document.querySelectorAll('*')].filter(
(el) => el.getBoundingClientRect().right > document.documentElement.clientWidth
);
The first few results are normally the cause.
One fix worth making today
Swap fixed heights on text containers for min-height, and change one body font size from px to rem. Both are small edits and both help at any zoom level.
What's the first thing that broke when you zoomed one of your own pages?
Top comments (1)
I'd extend the zoom pass to the page's open states too: open the navigation, a dialog, and any form with a validation error, then Tab through each at 200% and 400%. The static page can reflow while a dialog's last button is clipped or a sticky header hides keyboard focus. A useful pass condition is that every action remains reachable and the focused control stays visible, without having to reduce the zoom.