Imagine opening a dictionary where some words have definitions but others don't, or where definitions appear without their matching words. You'd be confused about which explanation goes with which term, making the dictionary useless for learning. This same confusion happens when websites use definition lists incorrectly, leaving screen reader users unable to understand which terms match which descriptions.
Definition lists (<dl>) are HTML elements designed to display pairs of related information—specifically terms (<dt>) and their corresponding descriptions (<dd>). When properly structured, these lists create clear relationships between concepts and their explanations, making content accessible to screen readers and meaningful to all users.
Screen readers and assistive technologies rely on correct definition list markup to help users understand content relationships:
Definition lists work like bridges connecting questions to answers, terms to meanings, or problems to solutions. When these bridges are broken or missing, users get stranded without understanding the relationships between related pieces of information.
<!-- Problematic: Term without matching description -->
<dl>
<dt>Website Design</dt>
<dd>Creating visual layouts and user interfaces for websites</dd>
<dt>SEO Optimization</dt>
<!-- Missing description for SEO Optimization -->
<dt>Content Writing</dt>
<dd>Producing written content for websites and marketing materials</dd>
</dl>
<!-- Better: Every term has a description -->
<dl>
<dt>Website Design</dt>
<dd>Creating visual layouts and user interfaces for websites</dd>
<dt>SEO Optimization</dt>
<dd>Improving website visibility in search engine results</dd>
<dt>Content Writing</dt>
<dd>Producing written content for websites and marketing materials</dd>
</dl>
<!-- Problematic: Description without matching term -->
<dl>
<dt>What is our return policy?</dt>
<dd>Items can be returned within 30 days of purchase</dd>
<!-- Missing question for this answer -->
<dd>Yes, we offer free shipping on orders over $50</dd>
<dt>How long does delivery take?</dt>
<dd>Standard delivery takes 3-5 business days</dd>
</dl>
<!-- Better: Every description has a term -->
<dl>
<dt>What is our return policy?</dt>
<dd>Items can be returned within 30 days of purchase</dd>
<dt>Do you offer free shipping?</dt>
<dd>Yes, we offer free shipping on orders over $50</dd>
<dt>How long does delivery take?</dt>
<dd>Standard delivery takes 3-5 business days</dd>
</dl>
<!-- Problematic: dt and dd outside dl container -->
<dt>Term 1</dt>
<dd>Description 1</dd>
<dt>Term 2</dt>
<dd>Description 2</dd>
<!-- Problematic: Other elements mixed inappropriately -->
<dl>
<dt>API</dt>
<p>This is not a proper description element</p>
<dd>Application Programming Interface</dd>
</dl>
<!-- Better: Proper structure -->
<dl>
<dt>Term 1</dt>
<dd>Description 1</dd>
<dt>Term 2</dt>
<dd>Description 2</dd>
</dl>
<dl>
<dt>API</dt>
<dd>Application Programming Interface - a set of protocols for software communication</dd>
</dl>
Each term should have at least one corresponding description.
<!-- Simple term-description pairs -->
<dl>
<dt>HTML</dt>
<dd>HyperText Markup Language used to structure web content</dd>
<dt>CSS</dt>
<dd>Cascading Style Sheets used to style and layout web pages</dd>
<dt>JavaScript</dt>
<dd>Programming language used to add interactivity to websites</dd>
</dl>
Some terms may require multiple descriptions or explanations.
<!-- One term with multiple descriptions -->
<dl>
<dt>Accessibility</dt>
<dd>The practice of making websites usable by people with disabilities</dd>
<dd>Ensuring content works with assistive technologies like screen readers</dd>
<dd>Following standards like WCAG to create inclusive web experiences</dd>
<dt>Responsive Design</dt>
<dd>Creating websites that work well on all device sizes</dd>
<dd>Using flexible layouts that adapt to different screen dimensions</dd>
</dl>
Sometimes multiple terms share the same definition.
<!-- Multiple terms with shared description -->
<dl>
<dt>CEO</dt>
<dt>Chief Executive Officer</dt>
<dd>The highest-ranking executive in a company responsible for major decisions</dd>
<dt>CTO</dt>
<dt>Chief Technology Officer</dt>
<dd>Executive responsible for technology strategy and development</dd>
</dl>
Use definition lists for appropriate content types that have clear term-description relationships.
<!-- FAQ sections -->
<h2>Frequently Asked Questions</h2>
<dl>
<dt>How do I reset my password?</dt>
<dd>Click "Forgot Password" on the login page and follow the email instructions</dd>
<dt>What payment methods do you accept?</dt>
<dd>We accept Visa, MasterCard, American Express, and PayPal</dd>
</dl>
<!-- Glossary or dictionary -->
<h2>Technical Terms</h2>
<dl>
<dt>Cache</dt>
<dd>Temporary storage that helps websites load faster by storing frequently accessed data</dd>
<dt>Cookie</dt>
<dd>Small text files stored by browsers to remember user preferences and login status</dd>
</dl>
<!-- Product specifications -->
<h2>Product Details</h2>
<dl>
<dt>Weight</dt>
<dd>2.5 pounds</dd>
<dt>Dimensions</dt>
<dd>12" x 8" x 3"</dd>
<dt>Battery Life</dt>
<dd>Up to 10 hours</dd>
</dl>
Definition lists aren't appropriate for all content types:
<!-- Don't use dl for simple lists -->
<!-- Wrong approach -->
<dl>
<dt>Home</dt>
<dt>About</dt>
<dt>Services</dt>
<dt>Contact</dt>
</dl>
<!-- Right approach for navigation -->
<ul>
<li><a href="/">Home</a></li>
<li><a href="/about">About</a></li>
<li><a href="/services">Services</a></li>
<li><a href="/contact">Contact</a></li>
</ul>
Ensure your definition lists work effectively for all users:
You can customize the appearance of definition lists while maintaining their semantic structure:
/* CSS for accessible definition list styling */
dl {
margin: 1em 0;
}
dt {
font-weight: bold;
color: #2c3e50;
margin-top: 1em;
margin-bottom: 0.5em;
}
dd {
margin-left: 2em;
margin-bottom: 1em;
line-height: 1.6;
}
/* FAQ-style formatting */
.faq-list dt {
background: #f8f9fa;
padding: 15px;
border-left: 4px solid #007bff;
border-radius: 4px;
font-size: 1.1em;
}
.faq-list dd {
margin-left: 0;
padding: 15px 20px;
background: #ffffff;
border: 1px solid #e9ecef;
border-top: none;
border-radius: 0 0 4px 4px;
}
/* Glossary-style formatting */
.glossary dt {
display: inline-block;
font-size: 1.2em;
color: #495057;
min-width: 120px;
vertical-align: top;
}
.glossary dd {
display: inline-block;
margin-left: 10px;
width: calc(100% - 140px);
vertical-align: top;
}
Well-structured definition lists provide several business advantages:
Definition lists are powerful tools for creating clear relationships between terms and their explanations, but only when properly structured. Every term needs its description, every description needs its term, and both need to work together within the proper HTML framework to create accessible, meaningful content.
The key to effective definition lists is remembering their purpose: connecting related pieces of information in ways that both humans and assistive technologies can understand. When you ensure every term has its matching description and structure your content semantically, you create websites that serve all users effectively.
Whether you're building FAQ sections, glossaries, or product specifications, proper definition list structure transforms confusing information into clear, navigable content that helps users find exactly what they need to know.
Greadme's tools can identify orphaned terms and descriptions in your definition lists, helping you create properly paired content that works for all users.
Check Your Website's Definition Lists Today