На моей веб-странице мне нужно создать таблицу со строкой заголовка, которая видна или скрыта в зависимости от конфигурации пользователя. Эта таблица также должна быть полностью доступной (в частности, поскольку таблица может быть очень длинной, я бы хотел, чтобы ярлыки, считывающие заголовки строк / столбцов, работали). У меня есть только ChromeVox для тестирования (я подробно расскажу о поведении других читателей из найденных мной сообщений в блогах).
Мой текущий макет похож на этот:
CSS:
.table-header-show {
}
.table-header-hide {
display: none;
}
HTML:
<table>
<!-- ${show} is used to choose the right class the user configuration -->
<thead class="table-header-${show}">
<tr>
<th>Name</th>
<th>Value 1</th>
<th>Value 2</th>
</tr>
</thead>
<tbody>
<tr>
<td>John Doe</td>
<td>Value 1a</td>
<td>Value 2a</td>
</tr>
</tbody>
</table>
Когда заголовок виден, проблем нет. Когда заголовок скрыт, от программы чтения с экрана зависит, будут ли считаны эти метки или нет:
- Я бы хотел, чтобы строка заголовка пропускалась при использовании обычной навигации * с программой чтения с экрана, но используйте строку заголовка для объявления названий столбцов
- С ChromeVox первый работает (пропускается при навигации), но второй не работает (скрытая строка не используется для маркировки столбцов)
- Опять же, с ChromeVox, перемещение скрытия, которое будет объявлено как атрибут a
style
, а не какclass
, заставит работать оба желаемых поведения. - Согласно найденному мной сообщению в блоге, программы чтения с экрана иногда игнорируют
display: none
, чтобы говорить из контента, а иногда и нет - поэтому я не уверен, что могу положиться на такого рода скрытие, чтобы быть надежным для моей цели (скрытие для навигации, использование для маркировки)
Итак, как я могу добиться желаемого поведения с помощью кроссбраузерного ридера?
- AFAIK, проблема с скрытием за пределами экрана / размером 1 пиксель (как предлагается здесь) заключается в том, что если я сделаю это для строки заголовка, то все заголовки столбцов всегда будут считываться ...