Почему ‹table› не подходит для макета, а ‹div› подходит? для пользователей программ чтения с экрана

В чем проблема с тегом <table>, которого нет с тегом <div> для пользователей программ чтения с экрана? Пожалуйста, объясните на примере.


person Jitendra Vyas    schedule 08.03.2010    source источник
comment
Связанный вопрос: stackoverflow .com/questions/83073/   -  person Zenya    schedule 11.03.2010


Ответы (1)


Я думаю, потому что вы можете передать правильную таблицу через звук, но не можете проанализировать таблицу, используемую для макета, и произнести ее разумно.

Пример

Title | Age
Bob   | 6
Greg  | 10

Это можно говорить.

Но как насчет этого?

[img] | Welcome to my site | [img]
News  | [img] 

Как вы думаете, как это будет читать слабовидящему человеку?

Все упирается в семантику. Таблицу, используемую для целей макета, нельзя анализировать и читать правильно (или надежно). Div — это просто раздел на странице, не обязательно для макета. Я не думаю, что скринридеры придают какое-либо семантическое значение div при озвучивании содержимого страницы.

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

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

Если вы хотите иметь представление о том, что может прочитать программа чтения с экрана, ознакомьтесь с Fangs. для Firefox (ссылка на программу чтения с экрана JAWS).

person alex    schedule 08.03.2010
comment
Так ли это, Скринридер говорит о ‹table› боте не для ‹div›? - person Jitendra Vyas; 08.03.2010
comment
@Jitendra: программа чтения с экрана озвучит содержимое элемента div, но сам факт присутствия div не заставляет программу чтения с экрана интерпретировать это содержимое определенным образом. С другой стороны, таблица имеет значение (таблицу информации), и программа чтения с экрана может попытаться использовать тот факт, что это таблица, когда озвучивает содержимое пользователю, что может попасть в беду. Таблицы для макета настолько распространены, что я был бы удивлен, если бы у любого хорошего скринридера действительно были проблемы с ними, но зачем усложнять жизнь, если можно этого избежать? - person T.J. Crowder; 08.03.2010
comment
@TJ - вы имеете в виду, что ‹DIV› не имеет семантического значения, в то время как ‹table› имеет. Хорошо, я не знал этого - person Jitendra Vyas; 08.03.2010
comment
‹div› — это раздел на странице. Но ничто в спецификации не говорит, что его следует использовать для какой-либо определенной цели. Я использую его в основном как хук для CSS и JavaScript, а также для группировки связанных элементов. - person alex; 08.03.2010
comment
Спасибо @Alex и @TJ. Я также нашел полезную информацию о div здесь en.wikipedia.org/wiki/Span_and_div - person Jitendra Vyas; 08.03.2010
comment
@ Алекс: Спасибо. Я думал, что он не предлагает ничего сверх вашего, поэтому, когда я увидел ваш, я удалил свой и проголосовал за ваш. Но я думаю, что могу быть в меньшинстве в этом вопросе, возможно, мне нужно было просто проголосовать за вас и оставить свой на месте. Просто кажется глупым оставлять возможно дублирующийся ответ... :-) Но опять же, чем больше я вижу, тем больше кажется, что я не в курсе, несмотря на это: meta.stackexchange. ком/вопросы/15775/ - person T.J. Crowder; 08.03.2010
comment
@TJ Я тоже удаляю многие свои ответы, а потом возвращаюсь, читаю их и думаю, что это было не так уж и плохо. Обычно я их не восстанавливаю. Спасибо за голосование. Если вы восстановите свое, я проголосую за него. - person alex; 08.03.2010
comment
Могу ли я предложить кому-нибудь: а) попробовать примеры в программе чтения с экрана или б) спросить человека с нарушением зрения. Я вижу очень много разговоров о взаимосвязи между разметкой и доступностью и очень мало реальных исследований. - person Andy Baker; 16.01.2013