Подтвердить что ты не робот

Правильное использование HTML5 `figure` и` в сторону`

У меня есть фрагмент страницы, которая выглядит семантически:

Заголовок A

Текстовая информация, связанная с заголовком A.
Бла-бла-бла-бла-бла.

[галерея изображений, связанная с заголовком A]

Я могу придумать пару способов отметить это:

Способ 1:

<section>
    <h1>Heading A</h1>

    <p>Textual information related to heading A.<br />
    <p>Blah blah blah blah blah.</p>

    <figure>
        <img />
        <figcaption>Image 1</figcaption>
        <img />
        <figcaption>Image 2</figcaption>
    </figure>
</section>

Способ 2:

<section>
    <h1>Heading A</h1>

    <p>Textual information related to heading A.<br />
    <p>Blah blah blah blah blah.</p>

    <figure>
        <img />
        <figcaption>Image 1</figcaption>
    <figure>
    </figure>
        <img />
        <figcaption>Image 2</figcaption>
    </figure>
</section>

Способ 3:

<section>
    <h1>Heading A</h1>

    <p>Textual information related to heading A.<br />
    <p>Blah blah blah blah blah.</p>
    <aside>  <!--Method 3b: use section here-->
        <figure>
            <img />
            <figcaption>Image 1</figcaption>
        <figure>
        </figure>
            <img />
            <figcaption>Image 2</figcaption>
        </figure>
    </aside>  <!--Method 3b: use section here-->
</section>

Способ 4:

<section>
    <h1>Heading A</h1>

    <p>Textual information related to heading A.<br />
    <p>Blah blah blah blah blah.</p>
</section>
<aside>
    <figure>
        <img />
        <figcaption>Image 1</figcaption>
    <figure>
    </figure>
        <img />
        <figcaption>Image 2</figcaption>
    </figure>
</aside>

Каков семантически правильный способ сделать это?

4b9b3361

Ответ 1

Невероятно, что вы получите полное согласие по "одному истинному пути", чтобы отметить это, но я бы выбрал метод 2. Мое рассуждение:

  • Элемент figure не может содержать несколько дочерних элементов figcaption, поэтому метод 1 недействителен
  • A figure уже является типом aside, поэтому нет необходимости их обертывать: "Элемент рисунка представляет собой единицу контента..., который может быть удален от основного потока документа, не затрагивая документов смысл". (спецификация W3C HTML5, элемент фигуры)
  • Если эти две цифры не связаны каким-либо образом, кроме обоих, связанных с разделом, в котором они находятся, нет необходимости группировать их дальше, чем они уже были

Ответ 2

Вставка <figure> в <aside> не имеет большого смысла в этом случае. Эмпирическое правило для выбора между <figure> и <aside> заключается в том, чтобы различать:

  • Содержание имеет смысл само по себе и может быть перемещено на другую часть страницы или даже на отдельную страницу (например, приложение), но передает важную информацию. Если да, выберите <figure>.//Примеры: иллюстрации, диаграммы, блоки кода, графики, аудио/видео и т.д. (В основном графический контент), все из которых сопровождаются основной темой документа и часто упоминаются как единое целое.
  • Содержание не обязательно для понимания section, в котором оно размещено, может быть полностью пожертвовано или не способствует основной темой этого раздела. Кроме того, контент имеет смысл только в окружающем контексте. Если да, выберите <aside>.//Примеры: pull quotes, дополнительная информация, связанная с контекстом, боковые панели, как в печатной типографии, объявления и т.д. (В основном текстовое содержимое). Я вполне могу представить Google AdSense.

Имея это в виду, я бы принял метод Метод 2:

  • Метод 1 был правильно исключен @robertc.
  • Метод 3a исключается мной (ваш пример не соответствует требованиям для <aside>, указанным выше, то есть нет причин для переноса <figure> с помощью <aside>).
  • Метод 3b - нет необходимости в вложенности в другой <section>, если нет дополнительного заголовка <h2> для <figure> s.
  • Метод 4 также исключается мной - тот же аргумент, что и для метода 3, плюс, что <figure> не следует размещать в другом разделе, кроме соответствующего текста и заголовка.

Колебание <figure> должно использоваться в галереях, не очевидно из Спецификация W3C. В идеале, страница должна также содержать текст абзаца, относящийся к основной теме, затем <figure> следует отнести к этому тексту и быть "изобразительным", а не всем основным содержанием. С другой стороны, такое использование никоим образом не противоречит спецификации, поскольку элементы галереи обычно являются "самодостаточными" (не связанными с контекстом), в частности, когда они обогащены <figcaption>, поэтому их смысл ясен. Я не могу представить лучшего элемента для этого использования.