Good point. But let's get back to basics. Here are my working assumptions:
1. An HTML document shall be a conforming SGML document.
2. Existing documents and browsers define current practice,
with tutorials and ideas in folks' head a close second.
>From these, it is necessary to draw the conclusion:
3. #PCDATA is allowed in <BODY>.
It is still possible to define P as a container, but there's little to
be gained. You'd end up with stuff like:
<BODY>
Here's Para 1.
<P>
Here's Para 2.
</P>
<P>
Here's Para 3.
</P>
</BODY>
and I hope nobody is interested in that.
>I would much rather enforce the <HEAD> and <BODY> containers than add
>the <PP> element, even though I agree that it would be extremely difficult
>to do so.
It is not difficult. The HTML element in html.dtd. version 1.7.2.4 is
defined as:
<!ELEMENT HTML O O (HEAD, BODY)>
The SGML parser infers, using standard techniques, that
<TITLE>title</TITLE>
<H1>foo...</H1>
means
<HTML><HEAD>
<TITLE>title</TITLE>
</HEAD>
<BODY>
<H1>foo...</H1>
</BODY>
The change was to allow OMITTAG YES in the SGML declaration. I also
turned on SHORTTAG, cuz folks seem to use that too.
This puts us in the position where there are a lot of constructs that
are legal according to the dtd and declaration that don't work in
Mosaic. But marked sections an comments have been in that category
for quite some time. (Comment processing in Mosaic is somewhat broken.)
In current practice, it's not an issue.
Dan