Помещение тега <tfoot>перед <tbody>делает таблицу более доступной? - PullRequest
3 голосов
/ 06 мая 2020

На нашем уроке веб-доступности наш учитель постоянно говорил нам, что мы должны помещать тег <tfoot> перед тегом <tbody> в таблице. Он не объяснил почему, но сказал, что это сделает стол более доступным. Поскольку ни один из учащихся не использовался для этого, мы провели небольшое исследование, но не смогли найти аргументов, почему размещение тега <tfoot> перед <tbody> делает таблицу более доступной. Может быть, из-за порядка чтения для программ чтения с экрана?

Может кто-нибудь просветите меня этим?

Ответы [ 3 ]

6 голосов
/ 06 мая 2020

Вас учат способу работы HTML 4, и теперь это неверно

В старых спецификациях <tfoot> раньше было <tbody>.

Вы можете увидеть в официальном HTML стандартном репозитории , что почти за 5 лет go HTML spe c был изменен из-за тот факт, что размещение элементов в предложенном порядке вызывает проблемы с доступностью. Я выделил ключевое предложение о том, почему <tfoot> должно идти после <tbody>

Disallow <tfoot> перед <tbody> в модели содержимого

В HTML4, tfoot должно было появиться перед tbody, но HTML5 разрешено либо до, либо после. Размещение перед вызывает проблемы с порядком фокуса клавиатуры и порядком объектов доступности , поэтому это изменяет модель содержимого, чтобы не допускать tfoot до tbody.

Причина поскольку это порядок DOM, один из ключевых элементов доступности. Поместив <tfoot> перед <tbody>, он будет прочитан первым, то есть, когда вы дойдете до конца таблицы, элемента <tfoot>, как и следовало ожидать, не будет.

Кроме того, вы обнаружите следующее цитата из рекомендации W3 C HTML поддерживает tfoot в конце.

Модель содержимого: В таком порядке: необязательно элемент caption, за которым следуют ноль или более элементов colgroup, за которыми, необязательно, следует элемент thead, за которым следует либо ноль, либо более элементов tbody или один или несколько элементов tr, за которыми необязательно следует элемент tfoot, необязательно смешанный с одним или несколькими элементами поддержки скрипта.

1 голос
/ 06 мая 2020

Другие отмечали, что текущий стандарт html на самом деле требует , чтобы элемент tfoot шел последним.

Даже на неофициальных условиях, я очень сомневаюсь, что ваш инструктор прав . Любая технология вспомогательной доступности может тривиально установить приоритет вывода содержимого tfoot при обработке таблицы html, в то время как естественный порядок создания - tfoot идет последним.

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

Однако сегодня это невозможно. больше не проблема. Если быть более точным, если это было проблемой, доступность пострадала бы и во многих других местах присутствия в сети (нарушающая сетевая служба) или структура контента нарушила бы рекомендации по доступности (гигантский объем данных в таблице) .

0 голосов
/ 13 мая 2020

Стоит отметить, что thead, tfoot и tbody являются элементами стиля c и фактически не влияют на доступность.

Элементы thead и tfoot определяют строки верхнего и нижнего колонтитула для таблиц. Они не обеспечивают функции доступности и обычно используются только при печати длинной таблицы - строки заголовка и / или ноги будут повторяться вверху или внизу каждой напечатанной страницы. Точно так же элемент tbody определяет содержимое тела таблицы данных (то есть все, что не thead или tfoot). Опять же, этот элемент не дает дополнительных преимуществ доступности, но нет никакого вреда в использовании его для стилизации таблиц или по другим причинам. https://webaim.org/techniques/tables/data

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

...