[whatwg] List Headers

Benjamin Hawkes-Lewis bhawkeslewis at googlemail.com
Thu Feb 5 01:08:14 PST 2009


On 5/2/09 08:18, Markus Ernst wrote:
> A different use case in the same problem field: Often you have lists
> that are actually part of a paragraph, but cannot be correctly
> associated with the paragraph:
>
> <p>Text before ...</p>
> <p>There are lots of fruits available, e.g.:</p>
> <ul>
> <li>Apples</li>
> <li>Pears</li>
> </ul>
> <p>More Text...</p>
>
> More appropriate markup for this could be achieved with the LH suggestion:
>
> <p>Text before ...</p>
> <ul>
> <lh>There are lots of fruits available, e.g.:</lh>
> <li>Apples</li>
> <li>Pears</li>
> </ul>
> <p>More Text...</p>
>
> Anyway I would consider it even more appropriate to allow the list
> inside a paragraph:
> <p>Text before ...</p>
> <p>There are lots of fruits available, e.g.:
> <ul>
> <li>Apples</li>
> <li>Pears</li>
> </ul>
> </p>
> <p>More Text...</p>
>
> But I admit I have no idea what other problems this could cause.

I agree (?) that the use case you raise is not "list headers" but lists 
inside paragraphs, and I agree that nested block content can 
legitimately be placed inside a paragraph - it certainly is in print. 
Other examples of legitimately nested content would include quotations 
and perhaps tables.

But HTML5 cannot allow "ul" (or "blockquote" or "table") as children of 
"p" in the text/html serialization because legacy content relies on "p" 
end-tag insertion before those block element's start tags. In other 
words, web-corpus-compatible parsers need to parse the above as 
equivalent to:

<p>Text before ...</p>
<p>There are lots of fruits available, e.g.:</p>
<ul>
<li>Apples</li>
<li>Pears</li>
</ul>
<p></p>
<p>More Text...</p>

HTML5's definition of how to interpret non-"p" content as "paragraphs" 
excludes using any alternate wrapper (e.g. "div") to wrap the text and 
the "ul" as one semantic paragraph.

http://www.whatwg.org/specs/web-apps/current-work/#paragraphs

<div>Hamlet said:
<blockquote><p>To be or not to be, that is the question</p></blockquote>
— and lots of other things.</div>

is to be interpreted as three serial paragraphs not one paragraph with a 
paragraph in a nested quotation.

Using a "div" wrapper or adding a class ("continuation"?) to nested and 
continuing fragments will at least allow authors to emulate print 
conventions with CSS, however.

I believe nesting blocks inside "p" elements is currently allowed in the 
XML serialization, however, since HTML5 does not face the same 
web-corpus-parsing constraints there.

--
Benjamin Hawkes-Lewis



More information about the whatwg mailing list