Аккордеон (Accordion)
Серия разворачивающихся / сворачивающихся панелей контента.
Last updated
Was this helpful?
Серия разворачивающихся / сворачивающихся панелей контента.
Last updated
Was this helpful?
Основной ресурс откуда взята информация -
Каждая панель аккордеона отделена интерактивным заголовком панели, которую в любой момент можно открыть.
Часто используется в боковых панелях и меню навигации для постепенного раскрытия ссылок и фильтров.
accordion: шаблон в целом, состоящий из следующих частей
panel: каждая панель в аккордеоне - это виджет раскрытия деталей
header: заголовок, который отображает интерактивную сводку содержимого панели
heading: заголовок, который находится внутри элемента и отражает суть панели
auto-collapse: свойство аккордеона, при котором автоматически сворачиваются открытые панели при открытии новой панели
Каждый заголовок (header) находится в естественном индексе табуляции. Этот естественный tabindex нельзя удалять или изменять.
По умолчанию все панели могут быть в открытом, развернутом состоянии.
При желании аккордеон может быть ограничен отображением только одной панели содержимого за раз (т.е. открытие панели закроет любую другую открытую панель). Это называется автоматически сворачивающимся аккордеоном.
Нажатие клавиши TAB
должно перемещать фокус клавиатуры с одного заголовка на другой. Он также будет перемещать фокус через любые интерактивные элементы внутри открытых панелей.
Точно так же нажатие клавиш SHIFT-TAB
перемещает фокус назад по заголовкам и содержимому интерактивной панели.
Нажатие клавиши ПРОБЕЛ
или ВВОД
в заголовке с фокусом клавиатуры должно открывать панель. Для автоматического сворачивания аккордеонов любая другая открытая панель должна закрываться.
Виртуальный курсор должен иметь возможность перемещаться от одного заголовка к другому.
С виртуальным курсором на заголовке, он должен иметь возможность открывать панель с помощью имитации события щелчка. Для аккордеонов с автоматическим сворачиванием любая другая открытая панель должна закрываться, но об этом не следует объявлять.
В шаблоне «аккордеон» активно используется тег "details" HTML. Старые браузеры, включая IE11 и Edge, изначально не поддерживают тег сведений, поэтому требуют полифилла.
При использовании details нет возможности анимировать открытие
HTML-элемент <details>
используется для раскрытия скрытой (дополнительной) информации.
Виджет раскрытия обычно представлен на экране с использованием небольшого треугольника, который поворачивается, чтобы показать состояние открытия / закрытия, с меткой рядом с треугольником. Если первый дочерний элемент элемента <details>
является <summary>
, содержимое элемента <summary>
используется в качестве метки для виджета раскрытия.
Обратите внимание, что в некоторых браузерах роль неявного списка удаляется, когда применяется CSS list-style-type: none, поэтому мы применили role = list в нашей разметке, чтобы гарантировать явную роль.
Для смены стандартного треугольника раскрытия:
Анимация раскрытия:
Код для загрузки полифила только для ие:
Основной код указан выше и служит для того, что бы закрывать открытую вкладку при выборе новой.
aria-roledescription: определяет удобочитаемое, локализованное для автора описание роли элемента. В данном случае «аккордеон».
Хорошая статья с примерами настройки и применения <details>
:
Очень много примеров <details>
использования с кодом:
Тэг details
требует для браузеров которые не поддерживают его нативно.