I'm working on a blog that implements Disqus comments and I'm making an effort to make as much use of HTML5 semantic markups as possible.
Here's an example <article />
(itself within a <section />
), fairly simple:
<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>
With the above structure, I'm unsure semantically where to integrate the article's comments.
- A
<footer />
is clearly not appropriate ("The footer element is not sectioning content; it doesn't introduce a new section.") - Disqus uses async JavaScript to create an
<iframe />
to contain the comment widget, so a<p />
doesn't seem appropriate, either.
Am I over-thinking the semantic markup thing: is it best to just stick it into a <div />
and not worry about it?
There is an example in the HTML5 spec for a blog post with comments. Which makes sense, in my opinion.
Your example could look like:
Side note: I think your "
posted-on
" would better fit into afooter
instead of aheader
. So yourheader
could be omitted because it would only contain the heading. So your example could look like:You could stick it in its own
<section>
(rather than a<div>
) within your containing<section>
, as a sibling of your<article>
. But if you're using Disqus, I guess whichever element you use doesn't matter. I don't think it belongs within the article content though. Maybe an<aside>
instead?Just keep in mind that when it comes to semantics, there aren't any hard and fast rules. As long as your document is structured and outlined in a meaningful way, that's what matters.