Почему ‹caption› не должен распознаваться как заголовок раздела в схемах документа?

На данный момент стандарты HTML5 создают заголовки/заголовки автоматически из первого заголовка, который он находит в статье/разделе/навигации и т. д. Проблема, с которой я столкнулся, заключается в том, почему <caption> не следует рассматривать так же, как заголовки (для целей контур).

Возьмите приведенный ниже код, например. Это то, к чему вы должны прибегнуть, чтобы иметь озаглавленный раздел в структуре документа:

<table>
    <caption>Results from zombie duck experiment</caption>
    <h2 style="display: none;">Results from zombie duck experiment</h2>
    <tr>
        <td>FAILURE</td>
        <td>FAILURE</td>
    </tr>
</table>

(Что создает этот план: http://gsnedders.html5.org/outliner/process.py?url=http%3A%2F%2Froncya.com%2Ftransfer%2FHTML5CaptionDocumentOutline2.htm)

Я понимаю, почему это работает; HTMLDoctor заходит так далеко, что говорит, что это рекомендуемый способ ведения дел:

Из соображений доступности мы рекомендуем, чтобы каждый элемент раздела имел заголовок, даже <aside> и <nav>. Если вы не хотите, чтобы эти заголовки были видны, вы всегда можете скрыть их с помощью CSS. --http://html5doctor.com/outlines/

Конечно, но почему бы и нет?:

<table>
    <caption>Results from zombie duck experiment</caption>
    <tr>
        <td>FAILURE</td>
        <td>FAILURE</td>
    </tr>
</table>

(Что создает этот неудавшийся план: http://gsnedders.html5.org/outliner/process.py?url=http%3A%2F%2Froncya.com%2Ftransfer%2FHTML5CaptionDocumentOutline1.htm)

Я предполагаю, что W3C принял сознательное решение, и единственные идеи, которые у меня есть, заключаются в следующем:

  1. Таблицы, хотя они и имеют конечный тег, на самом деле не используются в качестве «оболочек», таких как div, span, article, section, nav и тому подобное. Так что в этом смысле они не определяют «окруженный участок».
  2. Заголовки - это заголовки, а подписи - это не заголовки (... что мало что дает)
  3. Типичные подписи не подходят для заголовков (я не согласен с этим)

Что касается пункта 3, я думаю, что типичная подпись все еще была бы полезна в качестве заголовка в схеме документа. Независимо от того, находятся ли они на вершине таблицы или ниже. Черт, я даже не понимаю, почему это может быть хуже, чем ничего. Возьмем, к примеру, эти возможные подписи — я считаю, что все они будут подходящими заголовками разделов схемы документа:

  • Результаты эксперимента с зомби-уткой
  • Рисунок 3б
  • Цены на регион Windows 8
  • Какая марка содержит что?
  • Чит коды
  • Цвета
  • Одежда Авраама Линкольна в разные периоды истории

Это наверняка имело бы смысл для меня.


person Ron    schedule 15.08.2012    source источник


Ответы (1)


В HTML5 предполагается, что заголовок содержит не просто краткий заголовок, а описательный текст, объясняющий таблицу. Спецификация предоставляет один пример использования заголовка:

<caption>
    <p>Table 1.
    <p>This table shows the total score obtained from rolling two
    six-sided dice. The first row represents the value of the first die,
    the first column the value of the second die. The total is given in
    the cell that corresponds to the values of the two dice.
</caption>

Это не будет хорошим заголовком для схемы документа.

Я бы посоветовал вам поставить <h?> внутри подписи, если вы хотите, чтобы она отображалась в структуре документа. В приведенном выше примере это было бы подходящим:

<caption>
    <h2>Table 1.</h2>
    <p>This table shows the total score obtained from rolling two
    six-sided dice. The first row represents the value of the first die,
    the first column the value of the second die. The total is given in
    the cell that corresponds to the values of the two dice.
</caption>

или в вашем примере:

<table>
    <caption><h2>Results from zombie duck experiment</h2></caption>
    <tr>
        <td>FAILURE</td>
        <td>FAILURE</td>
    </tr>
</table>
person Alohci    schedule 15.08.2012