Demo 2: Accordion (Aria Toggles)
TL;DR
These aria toggles target an element by ID and toggle an aria attribute.
Demo (by Adam Argyle)
- Establish a toggle
- Content for “Establish a toggle”
- Toggle item visibility
- Style the summary
Source
HTML
<dl class="accordion">
<dt aria-toggleValueForAttribute="hidden" aria-toggleFor="accordion-item-1">
Establish a toggle
</dt>
<dd id="accordion-item-1" aria-hidden="false">
Content for “Establish a toggle”
</dd>
<dt aria-toggleValueForAttribute="hidden" aria-toggleFor="accordion-item-2">
Toggle item visibility
</dt>
<dd id="accordion-item-2" aria-hidden="true">
Content for “Toggle item visibility”
</dd>
<dt aria-toggleValueForAttribute="hidden" aria-toggleFor="accordion-item-3">
Style the summary
</dt>
<dd id="accordion-item-3" aria-hidden="true">
Content for “Style the summary”
</dd>
</dl>
CSS
@layer demo.accordion {
.accordion > dt {
cursor: pointer;
display: list-item;
}
.accordion > dt:has(+ dd[aria-hidden="false"]) {
list-style-type: '👇🏽';
}
.accordion > dt:has(+ dd[aria-hidden="true"]) {
list-style-type: '👉🏽';
}
.accordion > dd[aria-hidden="true"] {
block-size: 0;
overflow: clip;
}
}