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.