На моей веб-странице мне нужно создать таблицу, которая имеет строку заголовка, которая видима или скрыта в соответствии с некоторой пользовательской конфигурацией. Эта таблица также должна быть полностью доступна (в частности, поскольку таблица может быть очень длинной, мне бы хотелось, чтобы ярлыки, которые читали заголовки строк/столбцов, работали). У меня только 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, перемещение скрытия, которое будет объявлено как атрибут
style
, а неclass
, приведет к тому, что оба желаемых поведения будут работать. - Согласно сообщению в блоге, я обнаружил, что устройства для чтения с экрана когда-то игнорируют
display: none
, чтобы высказывать свое мнение, а иногда они не - поэтому я не уверен, что могу полагаться на такое сокрытие, чтобы быть надежным для своей цели (скрыть для навигации, использовать для маркировки).
Итак, как я могу достичь желаемого поведения в режиме кросс-браузера?
- AFAIK, проблема с скрытым размером за пределы экрана /1px (как предложено здесь) заключается в том, что если я сделаю это для строки заголовка, то весь столбец заголовки всегда будут считаться...