Growth tool

Does your page have a real structure?

Headings are the only outline a page has, and most are chosen for their size.

Open your page, press Ctrl+U (Cmd+Option+U on a Mac) to see the source, select all, and paste it here. Or drop the saved .html file on the box.

No sign-upRuns in your browser: your page never reaches usNo limit

Two audiences read the same outline

Search works out what a page covers from its headings, and a screen reader user moves through the page by jumping between them. Both are reading a structure that was usually decided by which size looked right.

A heading picked for its size

An h4 used because h3 looked too big leaves a gap in the outline. To anyone navigating by heading that gap reads as a missing section, and they go looking for content that is not there.

A wall of text nobody enters

Readers scan before they commit. A long page with two headings gives them nothing to scan, so most of them do not commit, and search cannot tell which part answers a question.

It never shows in the design

The page looks exactly the same whether its headings are in order or not. That is why this goes unnoticed for the whole life of a template.

One page in, its outline out

1

Paste any page

The source, or the text with its markup. No sign-up, nothing installed.

2

It reads the outline

Every h1 to h6 in order, minus anything a screen reader is told to ignore.

3

You get what is wrong with it

Where the outline breaks, why it matters to the two audiences reading it, and the level it should be.

What it checks

Exactly one h1, in the right place

The page's title in its own words. More than one says the page is about several things equally; none means an outline with no top.

Levels that skip

An h2 straight to an h4 leaves a hole. Going back up a level is a new section and is not a fault, which is why the direction matters.

Headings with nothing in them

A heading wrapped around an icon still appears in the jump list, as a blank entry that tells the reader nothing about where they landed.

Long pages with no sections

Words counted against headings, so a page that is really a wall of text is named as one rather than passing because it has an h1.

The same heading over and over

Identical headings make the outline useless for navigating, because every entry in the list reads the same. Common on pages built from repeated blocks.

Headings that are paragraphs

A heading is read at a glance. Past a line or two it stops being a signpost and becomes the content it was meant to introduce.

Straight talk about what it cannot see

It reads the headings in the markup you give it, which is exactly what search and a screen reader read.

Text that only looks like a heading is invisible

Big bold text in a div is not a heading here, and it is not one to search or a screen reader either. That is the finding, not a gap in the tool.

It cannot tell you a heading is the right heading

Whether it describes the section under it is a judgement about your writing. This checks the structure, not the words.

It ignores what you tell it to ignore

Anything marked aria-hidden is left out, because a screen reader leaves it out. A duplicated marquee is not a duplicated heading.

Your page never leaves your machine

The whole check runs in your browser. Nothing is uploaded, which is also why there is no limit on it.

Look at the outline you actually shipped

It takes one paste, and the fix is usually changing a number in a tag.