Можно ли как-нибудь скрыть заголовок таблицы, не нарушая того, как программы чтения с экрана интерпретируют остальную часть таблицы?Скрытие <caption>
с обычно рекомендуемыми стилями для скрытия элемента визуально нарушает поведение VoiceOver, заставляя его пропускать последнюю строку в таблице при линейном чтении с помощью нажатия клавиши «следующий».(Можно принудительно ввести VoiceOver в последнюю строку путем явной навигации по столбцу, но для этого требуется, чтобы пользователь знал об этом.)
Я понимаю, что это может быть ошибкой в самом VoiceOver, но если естьчистый обходной путь, который был бы идеальным, поскольку WCAG требует доступности с реально доступной вспомогательной технологией.
Вот минималистский пример для демонстрации:
Обновление: приведенные ниже правила стиля являются стандартными правиламииспользуется в среде Magento для визуального скрытия элементов, оставляя их доступными для программ чтения с экрана.Ключевое правило, вызывающее поведение VoiceOver, - position: absolute
;однако, если это просто удаляется, это влияет на поток макета.
caption {
border: 0;
clip: rect(0, 0, 0, 0);
height: 1px;
margin: -1px;
overflow: hidden;
padding: 0;
position: absolute;
width: 1px;
}
<table>
<caption>Table of Fruits</caption>
<thead>
<tr>
<th>Fruit</th>
<th>Color</th>
</tr>
</thead>
<tbody>
<tr>
<td>Apple</td>
<td>Red</td>
</tr>
<tr>
<td>Pear</td>
<td>Green</td>
</tr>
</tbody>
</table>
<p>Voiceover will jump straight from "Red" in prior table to this paragraph, skipping the last row.</p>