About This HTML Issue
Heading elements like h3 cannot be placed inside a dt element because dt only accepts phrasing content, and headings are flow content.
The <dt> element represents a term in a description list (<dl>). According to the HTML specification, <dt> can only contain phrasing content — things like text, <span>, <strong>, <em>, and similar inline-level elements. Heading elements (<h1> through <h6>) are flow content, not phrasing content, so nesting them inside <dt> is invalid.
If you need the text inside <dt> to look like a heading, use CSS to style it instead. Alternatively, if the heading is meant to introduce a group of terms, place it before the <dl> or use the <dfn> element inside the <dt> for emphasis on the term being defined.
Invalid Example
<dl>
<dt><h3>Term Title</h3></dt>
<dd>Description of the term.</dd>
</dl>
Valid Example
Style the <dt> directly with CSS to achieve the visual appearance you want:
<dl>
<dt class="term-title">Term Title</dt>
<dd>Description of the term.</dd>
</dl>
<style>
.term-title {
font-size: 1.17em;
font-weight: bold;
}
</style>
If the heading is meant to introduce the entire list, place it outside:
<h3>Section Title</h3>
<dl>
<dt>Term</dt>
<dd>Description of the term.</dd>
</dl>
Find issues like this automatically
Rocket Validator scans thousands of pages in seconds, detecting HTML issues across your entire site.
Help us improve our guides
Was this guide helpful?
Validate at scale.
Ship accessible websites, faster.
Automated HTML & accessibility validation for large sites. Check thousands of pages against WCAG guidelines and W3C standards in minutes, not days.
Pro Trial
Full Pro access. Cancel anytime.
Start Pro Trial →Join teams across 40+ countries