<dt> and <dd> elements must be contained by a <dl>

Rule ID: dlitem
User Impact: Serious
WCAG: 1.3.1

Compliance Data & Impact

User Impact

Disabilities Affected

  • Blind
  • Deafblind
  • Mobility

Requirement(s)

  • WCAG 2.0 (A): MUST

WCAG Success Criteria

  • 1.3.1 Info and Relationships

Section 508 Guidelines

  • Not specified, or not applicable

Rule Description

Definition list items (dt and/or 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 dt and dd elements, starting with the dt element. 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 dt and 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 dt and 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 dd and dt elements have a dl as a parent.