Continuing on the theme of HTML’s flaws, consider the humble BLOCKQUOTE. While long used simply to indent text, it has a recognizable semantic meaning: a long quotation from another work.
A block quote may contain multiple paragraphs, so BLOCKQUOTE logically enough is a block-level element that contains other block-level elements like P.
But suppose I want to number the paragraphs in my document? I don’t want to count the P elements within the BLOCKQUOTE, because they’re part of a larger paragraph that contains the quote. Furthermore, I don’t want to count the P immediately after the BLOCKQUOTE either, because it is actually just the continuation of the paragraph before the quote. Except in those rare cases when a paragraph ends with a block quote.
So really, what I’d like to do is this:
<p> This is the beginning of my body paragraph. <blockquote> <p>First paragraph of the quotation.</p> <p>Second paragraph of the quotation.</p> </blockquote> Here the body paragraph continues. </p>
But I can’t, because BLOCKQUOTE can’t appear inside a P. (Looser forms of HTML will allow it, but only by inserting an assumed </P> before the BLOCKQUOTE.)
To be fair, word processors don’t handle this correctly either. Even LaTeX requires you to flag the continuing paragraph with
\noindent. The “correct” definition of BLOCKQUOTE, in my opinion, is awkward: BLOCKQUOTE itself should be an in-line element, but it should contain block-level elements.
If HTML had a FOOTNOTE tag, I would want it to work the same way.