Как вы можете сделать таблицу с вложенными таблицами совместимой с WCAG AA

#css #user-interface #devexpress #accessibility #w3c

Вопрос:

Клиентам всегда нужна таблица пользовательского интерфейса, имеющая область расширения для отображения вложенной таблицы связанных данных.

Я уже делал это с тегами и стилями DIV раньше, но таблица в ячейке таблицы была бы проще.

Из того, что я знаю о соответствии требованиям WCAG AA, таблицы следует использовать только для табличных данных, а добавление вложенной таблицы в ячейку или даже элементов управления приводит к путанице для программ чтения с экрана и других инструментов.

Мой вопрос прост: как вы можете сделать таблицу с вложенными таблицами или элементами управления доступной?

Например, представление основных сведений DevExpress утверждает, что оно доступно. https://js.devexpress.com/Demos/WidgetsGallery/Demo/DataGrid/MasterDetailView/Angular/Light/

Ответ №1:

Вложенные таблицы прекрасно подходят, если они семантические. Я бы не стал использовать пример таблицы основных сведений в качестве вашего шаблона. Это довольно странно. Код чрезмерно сложен, неправильно использует сетку/ячейку сетки вместо таблицы/ячейки таблицы, и программа чтения с экрана испытывает трудности с переходом к вложенной таблице.

Если вы используете реальное <table> вместе со связанным <tr> с ним , <th scope="row/col"> , <td> , и <caption> тогда вы можете сделать так, чтобы одна из ячеек таблицы ( <td> ) содержала другую <table> .

Пользователь программы чтения с экрана может использовать Tклавишу для перехода к таблице (при использовании JAWS или NVDA), а затем ctrl alt arrowдля навигации внутри таблицы. TПовторное нажатие приведет к переходу к вложенной таблице, и пользователь сможет перемещаться внутри вложенной таблицы. Все это отлично работает.

Я бы рекомендовал использовать a <caption> , чтобы вы могли назвать свою таблицу, и пользователь программы чтения с экрана будет знать назначение таблицы.