В каком элементе я должен заключать комментарии <article/">?
Я работаю над блогом, который реализует комментарии Disqus, и я прилагаю все усилия, чтобы максимально использовать семантические разметки HTML5, насколько это возможно.
Здесь пример <article />
(сам по себе внутри <section />
) довольно прост:
<article class="post">
<header>
<h2>Title</h2>
<p class="posted-on">Posted on <time datetime="2012-07-28T13:00:24+01:00">July 28th 2012</time>.</p>
</header>
<p>Lorem ipsum dolor sit amet...</p>
<p>Lorem ipsum dolor sit amet...</p>
<!-- blog comments -->
</article>
С приведенной выше структурой я не уверен семантически, где можно интегрировать комментарии к статье.
- A
<footer />
явно не подходит ( "Элемент нижнего колонтитула не является секционирующим содержимым, а не содержит новый раздел." )
- Disqus использует async JavaScript для создания
<iframe />
, чтобы содержать виджет комментариев, поэтому a <p />
тоже не подходит.
Я слишком задумываюсь о семантической разметке: лучше ли просто вставлять ее в <div />
и не беспокоиться об этом?
Ответы
Ответ 1
Вы можете вставить его в свой собственный <section>
(а не <div>
) в свой текст, содержащий <section>
, как родной брат вашего <article>
. Но если вы используете Disqus, я думаю, какой бы элемент вы ни использовали, это не имеет значения. Однако я не думаю, что это относится к содержимому статьи. Может быть, вместо <aside>
?
Просто имейте в виду, что когда дело доходит до семантики, нет никаких жестких и быстрых правил. Пока ваш документ структурирован и очерчен значимым образом, это важно.
Ответ 2
В описании HTML5 есть для сообщения в блоге с комментариями. Что имеет смысл, на мой взгляд.
Ваш пример может выглядеть так:
<article class="post">
<header>
<h1>Title</h1>
<p class="posted-on">Posted on <time datetime="2012-07-28T13:00:24+01:00">July 28th 2012</time>.</p>
</header>
<p>Lorem ipsum dolor sit amet...</p>
<p>Lorem ipsum dolor sit amet...</p>
<section>
<h1>Comments</h1>
<article><!-- comment 1--></article>
<article><!-- comment 2--></article>
<article><!-- comment 3--></article>
<section>
</article>
Боковое примечание: я думаю, что ваш "posted-on
" лучше вписывался в footer
вместо header
. Таким образом, ваш header
может быть опущен, поскольку он будет содержать только заголовок. Таким образом, ваш пример может выглядеть так:
<article class="post">
<h1>Title</h1>
<footer class="posted-on">Posted on <time datetime="2012-07-28T13:00:24+01:00">July 28th 2012</time>.</footer>
<p>Lorem ipsum dolor sit amet...</p>
<p>Lorem ipsum dolor sit amet...</p>
<section>
<h1>Comments</h1>
<article><!-- comment 1--></article>
<article><!-- comment 2--></article>
<article><!-- comment 3--></article>
<section>
</article>