Re: Fate of <P> [Was: Toward Closure on HTML]

Daniel W. Connolly ([email protected])
Thu, 07 Apr 1994 15:03:00 -0500


In message <[email protected]>, "Roy T. Fielding" writes:
>Dan Connolly writes:
>>
>> So write
>> <PP>Here's my para<p></pp>
>>
>> and it'll work everywhere. When <pp> is well established, just
>> s/<p>//g and be done with it. I guarantee that's a lot easier and
>> more reliable than the script that changes <p> from a separator
>> to a container.
>
>Yes, but isn't this requiring some serious dog-wagging? One of the major
>reasons for enabling the parsing of documents is to make it easier for
>authors editing in the raw to produce good HTML (those using pre-structured
>editors would not need an external parser). A <PP> container would make
>it substantially harder to read and produce raw HTML and thus would defeat
>its own purpose.

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