Powered by
Structure & headings
Bold Paragraph Text Is Used Instead of a Real Heading
Text styled to look like a heading is really a paragraph, so screen reader users can't find it or jump to it.
p-as-headingWCAG 2.0Introduced in WCAG 2.0.Level AA — the minimum. Missing it blocks people outright.
- Status
- SeriousSerious — Significant friction, or information that is lost.Experimentalaxe-core has this rule, but runs it only when a team turns experimental rules on.
- Owner
- DesignDevContentTest
- Audit
- Automated+ManualA scanner finds it; a person confirms the fix.
Experimental rule. Experimental in axe-core: it runs only when a team turns experimental rules on, so a clean default scan says nothing about it. WCAG 1.3.1 Info and Relationships still applies.
Why it matters
A heading does two jobs. It looks bigger or bolder, and the code marks it as a heading with <h1> to <h6>. Screen readers use that code to list headings and skip between sections.
When a paragraph is only made bold or large, it looks like a heading but isn't one. People who can't see the page lose the outline everyone else sees at a glance.
Who it affects
| Who | What they experience | Impact |
|---|---|---|
| Screen reader users | The heading list skips this section, and the text is read as an ordinary sentence. | High impact |
| Low-vision users (magnification) | Affected only if they also use a screen reader or a heading-based reading tool. | Partial impact |
| Keyboard-only users | Some keyboard users rely on extensions that jump between headings, and these can't reach it. | Partial impact |
| Cognitive and neurodivergent users | Reader modes and simplified views may flatten the text, so the page structure is harder to follow. | Partial impact |
Business & product impact
| Area | Why | Impact |
|---|---|---|
| Legal | It fails WCAG 1.3.1 Info and Relationships at Level A, the minimum. Complaints under Australia's Disability Discrimination Act point to WCAG, and EN 301 549 uses the same test. | High impact |
| Conversion | Long pages like pricing or checkout help are hard to scan without headings. Some users give up. | Moderate impact |
| SEO | Search engines may read real headings as a weak hint about the page. The benefit is small. | Low impact |
| Cost to fix | Usually a quick swap of tags. Fix the editor or template so authors can't fake headings. | High impact |
Fixing it in code
A section title on a page
Don't
<p><strong>Delivery options</strong></p>A screen reader says: “Delivery options”
Do
<h2>Delivery options</h2>A screen reader says: “Heading level 2, Delivery options”
A real heading tag shows up in the screen reader's heading list.
Keep the look, change the tag
Don't
<p class="section-title">Our team</p>A screen reader says: “Our team”
Do
<h2 class="section-title">Our team</h2>A screen reader says: “Heading level 2, Our team”
The style stays the same, but the code now says it's a heading.
Fixing it in design and content
Writing in the content editor
Don't
The author selects a line and clicks Bold and a bigger font size to make a section title.
Do
The author picks "Heading 2" from the editor's style menu for the section title.
The editor's heading styles create real heading tags.
Designer's handoff note
Mark every heading in your designs with its level, such as H2 or H3. Don't just style it.
Make heading styles easy to pick in the content editor, and remove bold or size buttons that tempt people to fake them.
Quick test
Tool
VoiceOver (opens in a new tab) (on every Mac)
Duration
1 minChecklist
- Pass
- Every title you can see is in the list, at a sensible level.
- Fail
- A title you can see on the page is missing from the list.
Check these at the same time
- A heading has no text in it
empty-heading - Heading levels skip a step, like jumping from h2 to h4
heading-order - The page has no main content area marked up
landmark-one-main - The page has no main heading
page-has-heading-one
What a green scan still misses
This rule is experimental and only catches paragraphs that look much bolder or bigger than the text around them. It can't find every fake heading, or tell whether heading levels make sense — check the outline yourself.
Reference
- Status
- ExperimentalExperimental in axe-core: it runs only when a team turns experimental rules on, so a clean default scan says nothing about it. WCAG 1.3.1 Info and Relationships still applies.
- Rule ID
p-as-heading- Raised by
- axe-core: “Styled <p> elements must not be used as headings”
- WCAG
- 1.3.1 Info and Relationships (opens in a new tab) · Level A · since WCAG 2.0
- Other standards
- EN 301 549 9.1.3.1 · RGAA 9.1.3
- Last reviewed
- 16 October 2026