Как создать доступный аккордеон в 2025 году?

18 февраля 2025 г.Frontend Portal

Как создать доступный аккордеон в 2025 году?

В HTML есть встроенный тег <details>, который автоматически управляет состоянием открытия и закрытия. Нам не нужно добавлять ARIA-атрибуты, так как он изначально доступен

Мы можем создать аккордеон так:

<details> <summary>Вопрос?</summary> <div>Ответ</div> </details>

По умолчанию содержимое скрыто. Чтобы отобразить его сразу при загрузке страницы, добавьте атрибут open

Мы можем изменить иконку треугольника на что-то другое, используя псевдоэлемент ::marker:

summary::marker {

content: "👉";

}

details[open] summary::marker {

content: "👇";

}

Мы также можем запускать CSS-анимации при добавлении атрибута open

Однако пока нельзя анимировать height: auto с помощью CSS, так как это не поддерживается всеми основными браузерами.

Но можно использовать Web Animation API и анимировать высоту через JavaScript. На CSS Tricks есть отличный туториал на эту тему

➡️ @FrontendPortal | #HTML