Skip to content

PDF Accessibility

PDF Heading Structure Checker

Check the heading outline a screen reader uses to navigate the document.

Processed locally in your browser. Your file is not uploaded to any server. How this works

  1. 01Add your file
  2. 02PDF Heading Structure Checker
  3. 03Download

Runs in your browser · nothing uploaded

About PDF heading structure checker

Headings are how a screen reader user navigates a long document. Rather than listening from the beginning, they pull up a list of headings and jump — exactly as a sighted reader skims for a section title. That only works if headings are tagged as headings, `H1` through `H6`, and if their levels form a coherent nesting. Two problems break it. The first is text that is visually a heading but structurally a paragraph: someone made it 18pt and bold in a word processor without applying a heading style, so it looks like a heading and is announced as ordinary body text, leaving the document with no navigable outline at all. The second is broken nesting, most often a level skip — an `H1` followed directly by an `H3`. To a reader relying on levels to understand hierarchy, the missing `H2` implies a section they cannot find, which makes the document’s organisation genuinely confusing rather than merely untidy.

How to PDF heading structure checker

  1. 01

    Open the PDF

    Drop in the document whose outline you want to check.

  2. 02

    Review the outline

    Read the extracted heading list top to bottom. It should read like a coherent table of contents.

  3. 03

    Check for level skips

    Any jump from H1 to H3, or similar, is reported with its page number.

  4. 04

    Look at flagged visual headings

    Lines that look like headings but are tagged as paragraphs are listed so you can fix them at source.

What this tool does

  • Extracts the full tagged heading outline in document order
  • Reports skipped levels with the page where the jump occurs
  • Detects text that is visually a heading but carries no heading tag
  • Flags a missing top-level heading, which leaves a document without an entry point
  • Shows the heading count per level, revealing lopsided or unused hierarchies

Limitations worth knowing

Every PDF tool has constraints. Stating them plainly is more useful than discovering them halfway through your work.

  • Whether a heading level is semantically right is a judgement call. This tool can see that H1 is followed by H3; it cannot know which of them was wrong.
  • Visual heading detection is heuristic, based on size and weight, so it produces both occasional false positives and misses.
  • It does not check whether heading text is descriptive — “Section 2” is a valid heading and a poor one.
  • This is not a PDF/UA or WCAG validator and produces no conformance statement.

How your file is handled

This tool runs entirely inside this browser tab. When you choose a file, your browser reads it from your own disk and hands the bytes to JavaScript running on this page — no network request carries your document anywhere. You can confirm that yourself: open your browser’s developer tools, switch to the Network panel, and run the tool. You will see no upload.

Nothing is stored after the fact. Closing or reloading this tab discards the file, the result and everything derived from them, because none of it ever left your machine. Read how local processing works.

Questions about PDF heading structure checker

Why do skipped heading levels matter?

Screen reader users rely on levels to understand hierarchy and to navigate by jumping between headings. An H1 followed by an H3 implies an intermediate section that does not exist, which makes the document’s structure confusing to someone who cannot see the layout.

My document has headings but the tool found none. Why?

They were almost certainly formatted by hand — made larger and bold — rather than given heading styles. Visually they read as headings; structurally they are paragraphs, so a screen reader announces them as body text and the document has no navigable outline.

How do I fix heading structure?

In the source document, apply real heading styles (Heading 1, Heading 2) instead of manual formatting, then re-export with tagging enabled. That fixes the outline at its origin rather than patching the PDF.

Should every document have exactly one H1?

One H1 as the document title is the usual convention and the safest default. Multiple H1s are not automatically wrong in a document that genuinely contains several top-level parts, but they are worth a deliberate look.

Read more about this