Skip to main content
WCAGrules
Quick navigation

Services · Focused audits

A Semantic Structure Audit Checks the Skeleton Under the Skin

For the site that looks organized and wants to be organized in the layer screen readers actually navigate, so headings, landmarks, lists, and tables.

What We Keep Finding

Screen reader users move by structure. Heading to heading, landmark to landmark, rather than reading from the top like a book. A page built from styled divs offers them nothing to move by. Bold 24-pixel text that is not a heading. A nav that is not a nav. A data table assembled out of floated boxes. It is invisible in a design review and decisive the moment somebody navigates by it, and it is wonderfully fixable, because structure lives in templates and templates repeat.

The honest part of this job is telling you which structure findings are conformance failures and which are just untidy, because most audits blur that and it costs you sprints. A skipped heading level is untidy. The standard's only guidance on heading nesting is advisory rather than required, and there is no rule anywhere setting how many top-level headings a page may have, whatever your linter says. Requiring headings for every section at all is a Level AAA rule. What is a real failure is a heading that is not marked as one, or a table whose headers are not wired to their cells, because that is information the design conveys and the markup does not.

Landmarks have the same split. One main region, labelled navigation, sensible regions, all good practice, and the single-main rule comes from ARIA rather than from WCAG. Where landmarks become a conformance question is skipping repeated content, and there the rule has two routes rather than one. Landmarks plus real section headings satisfy it. So a page with good structure and no skip link conforms, and any review that fails you for a missing skip link is testing its own preference.

Tables attract the opposite overreach, where reviewers demand markup the standard never asked for. A caption is not required. A scope attribute on every single header is not required either, and on a small table with one header row it can be left off entirely. Headers that span groups of columns or rows want a scope value that says which group. The heavyweight approach of wiring every cell to its headers by id is reserved for two narrow situations, and a mis-wired version of it is worse than none at all.

One newer thing worth checking while we are in the landmarks, since it is been widely available since October 2023 and almost nobody has switched. HTML now has a dedicated search element that creates the search landmark on its own, and it is the preferred way in rather than the ARIA role most sites still carry.

What We Check

  • Map every template's heading outline against its visual hierarchy
  • Separate the real failures from the tidiness findings, and label which each one is
  • Check landmarks, so one main region, labelled navigation, and the newer search element
  • Verify lists are lists and tables are tables, with headers wired and no markup the rule never asked for
  • Test the reading order linearized, the way it is actually heard
  • Deliver fixes per template, where one change repairs the most pages

What You Get

Every service on this site runs the same three-pass engine: an automated scan, an expert review of all 55 WCAG 2.2 A and AA rules, and a hands-on session with a professional blind screen-reader user. You get one report with every finding screenshotted, ranked by user impact, and linked to its fix. Your team fixes, we verify: the re-audit is half price within 3 months.

The format is not a mystery either. Read the sample report before you spend anything.

The Honest Limit

One honest limit, and how we keep it defensible. On sites with many hand-built pages outside the templates, we sample, and the report says exactly what was sampled and gives your authors the pattern for everywhere else. Sampling well is a documented method rather than a shrug, so the pages we pick cover the common templates and the key tasks, and the report names them. What a sample can never do is support a claim that the whole site conforms, and that is true of any sample from anybody.

What It Costs

Rapid Audit: $499, up to 10 pages you pick, report in 5 business days. Standard Audit: $1,499, up to 25 pages in 10 business days. Flat rates, no discovery calls, and a real blind screen-reader user on every engagement. Pick your pages. We bring the humans.

Worth Reading Next

Related on this site

Guides, checklists, tools, and terms that go with this service.

More in Focused audits

Go somewhere useful

Find tools, resources and your workspace.

29 destinations