Привет, Хабр!
За последний год HTML получил деталь, которая меняет привычные «аккордеоны». У <details>
появился атрибут name
, и этим всё сказано: теперь эксклюзивные аккордеоны можно сделать без строчек JavaScript, а стили и поведение дочистить через :has()
. Поддержка стала широкой, а старые практики на дивчиках и ролях можно оставить для случаев, когда действительно нужна сложная логика.
В HTML у нас давно есть пара <details>/<summary>
. Браузер сам рисует disclosure-виджет, умеет разворачивать содержимое, бережно обращается с фокусом и клавиатурой. Сейчас поверх этого добавился name
, который превращает набор из нескольких <details>
в группу, открываешь одно и закрываются остальные из той же группы. Если в группе вы отметили несколько элементов open
в исходнике, браузер оставит открытым первый по порядку.