Таблицы для структуры
Я бы рекомендовал держаться подальше от таблиц, но это мое личное предпочтение. Вы могли бы сделать это доступным с помощью таблиц, но это оказалось бы более сложным, чем нужно.
Структура списка
Список структура, которую вы описали, была бы хорошей, но в конечном итоге вы могли бы передать иерархическую структуру того, что вы здесь делаете, используя только заголовки и абзацы.
Вне полки Решения
Многие из популярных каркасов внешнего интерфейса (например, Bootstrap, Material, et c.) Уже решили проблему доступных аккордеонов , элементов свертывания , панели расширения , или как вы еще хотите это называть. Если вы не являетесь сильным JS разработчиком, я бы порекомендовал начать с готового решения из хорошо известного фреймворка, а затем провести тестирование с использованием достойной программы чтения с экрана .
Индивидуальные решения
Нет ничего плохого в реализации вашего собственного решения, если у вас есть набор навыков и время для этого.
W3 C дает отличные рекомендации по желаемому поведению доступных элементов аккордеона , а проект A11Y имеет хорошую библиотеку шаблонов проектирования с используемыми примерами кода.
Для разметки ARIA вам необходимо использовать aria-expanded
, aria-controls
и aria-labelledby
соответственно. В зависимости от того, как программа чтения с экрана тестирует go, вы также можете sh установить фокус при открытии расширяемого элемента.