# The element “h3” must not appear as a descendant of the “dt” element.

> Canonical HTML version: https://rocketvalidator.com/html-validation/the-element-h3-must-not-appear-as-a-descendant-of-the-dt-element
> Attribution: Rocket Validator (https://rocketvalidator.com)
> License: CC BY 4.0 (https://creativecommons.org/licenses/by/4.0/)

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

```html
<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:

```html
<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:

```html
<h3>Section Title</h3>
<dl>
  <dt>Term</dt>
  <dd>Description of the term.</dd>
</dl>
```
