<dt> and <dd> elements must be contained by a <dl>
Definition list items (
dd) must be wrapped in parent
dl elements to be valid. This enables screen reader users to understand the proper hierarchy of information in the list.
Why it Matters
A definition list item must be wrapped in parent
dl elements, otherwise it will be invalid.
A definition list must follow a specific hierarchy. A list is defined using the
dl element. What follows are alternating sets of
dd elements, starting with the
dt elements define a term while
dd elements denote a term’s description. Each set of
dt elements must have a corresponding set of
dd elements. Only
dd elements are allowed in definition list. If this hierarchy is not followed, the list will be invalid.
How to Fix the Problem
Wrap the list item in parent
dl elements to ensure the list follows the proper hierarchy. Furthermore, make sure that the
dd elements are in the proper order.
This rule checks for the valid hierarchical use of definition list elements to help screen reader users know what they are listening to, and what to expect as they listen to definition lists with regard to the organizational relationship of parent and child items.
For example, if you have the following code causing an error:
<dt>Coffee</dt> <dd>Black hot drink</dd> <dt>Milk</dt> <dd>White cold drink</dd>
Wrap it in the <dl> element:
<dl> <dt>Coffee</dt> <dd>Black hot drink</dd> <dt>Milk</dt> <dd>White cold drink</dd> </dl>
The Algorithm (in simple terms)
Ensures that all child
dt elements have a
dl as a parent.