Text is inappropriately marked as a heading. Marking it as one using an H1-H6 tag misrepresents structure and info relationships.
- Rule ID:
- semantic-heading-misused
- User Impact:
- Serious
- WCAG :
- 1.3.1.e
Rule
Text that does not act as a heading visually or structurally SHOULD NOT be marked as a heading.
Background
People who can see are able to quickly scan a page for headings and subheadings to understand the content and structure of a page. People who are blind do not have this ability if heading text is not marked in a way that screen readers can understand. Heading text and hierarchy must be identified semantically with heading markup. When heading markup is correctly applied, screen readers are able to: communicate that text is a heading and its level, provide a heading outline to users, and allow users to navigate directly from heading to heading.
Headings are about logical structure, not visual effects. Because screen reader users rely on semantic headings to learn the structure of the page, it is important to not use heading markup to create big, bold text for non-heading text. Fix this issue by: removing the heading markup; replacing it with appropriate semantic markup, such as a <p> element; and using CSS styles to achieve the visual effect instead.
Code Examples
Good Example:
Text styled using CSS:
<p class="promotional-item">Special rates good until July 31!</p>
The CSS:
.promotional-item {
font-weight: bold;
font-size: 200%;
color: MEDIUMBLUE;
}
Failure Example:
Non-heading content marked as heading (promotional text marked as <h1> for styling):
<h1 class="promotional-item">Special rates good until July 31!</h1>
How To Fix
To fix this problem, do the following:
- Remove the inappropriate heading markup.
- Replace the heading markup with an appropriate semantic markup such as a <p> element.
- Style the text using CSS.
Don't do this:
- Use heading markup (<h1>, <h2>, etc.) when the text does not actually act as a heading.