( Conversation started here, with @murtaugh and @zeldman. )
Ah man, I got Opinions™ on this. I ususally go with something like:
<aside>
<h1>Optional Heading</h1>
<blockquote>
<p>It is the unofficial force—the Baker Street irregulars.</p>
</blockquote>
<address>Sherlock Holmes</address>
<cite>Sign of Four</cite>
</aside>
aside
provides sectioning context, address
flags the author/owner of the current sectioning context, cite
to cite a “work”, and blockquote
because it’s… a blockquote. I’d probably bolt the emdash onto the front of the address
with address:before { content: "—"; }
, where it’s not really essential. This is all predicated on the pullquote being considered non-essential to the surrounding content.
The figure
route could work too, but technically figure doesn’t provide sectioning context, so there’s two ways you could go with this.
<aside || section>
<figure>
<blockquote>
<p>It is the unofficial force—the Baker Street irregulars.</p>
</blockquote>
<figcaption>
<address>Sherlock Holmes</address>
<cite>Sign of Four</cite>
</figcaption>
</figure>
</aside || /section>
aside
if complementary but inessential to the surrounding content (like a pull-quote directly from the article), section
if part to the surrounding content (an external quote directly referenced by the text).
That’s an awful lot of stuff, though, so the other way of doing it with figure:
<figure>
<blockquote>
<p>It is the unofficial force—the Baker Street irregulars.</p>
</blockquote>
<figcaption>
<p>Sherlock Holmes</p>
<p>Sign of Four</p>
</figcaption>
</figure>
The figcaption
flags the content as metadata for the rest of the figure, but you lose the specifics: “author” and “work” just become generic metadata.
I’m partial to the first one from an HTML5 outline standpoint.
I really should update that article already >< I love the smell of semantics in the morning too, so forgive the intrusion, but here are some related thoughts, most likely too late to be relevant. Y’know, fwiw ^^
While I loved the neatness of
footer
inblockquote
that we’ve been using on HTML5 Doctor, I can understand Hixie’s reasoning — it’s a problem when you want to quote an article etc which has a footer. Because of this we’re (well, I’m) planning to change all blockquotes at HTML5 Doctor to Hixie’s suggestedfigure
pattern at some undetermined point in the future. For example:(together with
figcaption:before {content: "—";}
etc.) Amusingly an important reason for wanting a wrapper element is because our blockquote style visually groups the citation with the quote, so a more Zeldman-friendlywouldn’t cut it for us, although it’s one option Hixie suggests, and would work fine for ALA. We could just use a
div
wrapper, butfigure
+figcaption
(or a sectioning wrapper plusfooter
) seems a nice way to make the association between quote and citation explicit. Another alternative would be ARIA’saria-describedby
property:(with
p[id^="bq-"]:before {content: "—";}
etc.), butfigure
seems more built-in vs ARIA’s bolt-on, and setting this up seems a little fiddly.As blockquotes in ALA are main content I personally wouldn’t use
aside
, although @murtaugh’s code sample above would be perfect for magazine-style pullquotes (a phrase from the article repeated in large type, intended to tempt you to start reading).section
also seems overkill to me as blockquotes don’t have headings, although admittedly this isn’t a requirement.I wouldn’t use
address
for the quote’s author, unless it was used to provide contact info for the author, which would seem a little creepy to me ^_^ Using a Person Microdata or Microformat for the author might be worth it, but only if you could automate it, and this still seems a little overkill since you’ve just linked to an article of theirs:The
cite
attribute onblockquote
is also something I’d only add if it was automated (beware ye metacrap), and only in addition to a visible link.There’s no one true pattern in the spec for this yet, so I don’t think any of these ways are wrong. It would be a great SimpleQuiz question for H5D actually…
PS Love your work, all — thanks for making the web a better place! \o/