- From: Robert J Burns <rob@robburns.com>
- Date: Wed, 31 Dec 2008 17:54:42 -0600
- To: Philip Taylor <pjt47@cam.ac.uk>
- Cc: Adam Barth <w3c@adambarth.com>, Jonas Sicking <jonas@sicking.cc>, public-html@w3.org, Julian Reschke <julian.reschke@gmx.de>
Hi Philip, julian, Adam and Jonas,
What I have suggested in the past is that HTML5 provide a consistent
document conformance requirement that all void elements use the "/"
and that all non-void elements prohibit the slash. Therefore <div/>
would be document non-conforming even if the author intended <div></
div>. <img> would be document non-conforming, though alerts from a
conformance checker could be suppressed since the point of this is to
provide authors with a consistent authoring approach.
In terms of implementation conformance and parsing, parsing would
still be done the same for known elements. In other words <a/> would
be parsed the same as <a>. However, <e/> (as an unknown element) would
be parsed as a void element while <e> would not.
This does introduce a somewhat confusing inconsistency with XML's use
of the /, but that is not an inconsistency I think should concern us
much. The point is that it is important for authors to understand the
difference between a void and a non-void element and such an approach
reinforces that understanding. It is less important to provide an
empty element minimization as XML does. In terms of authoring, I think
this would be a very consistent and easy to understand approach that
only requires authors to fully understand which elements are void
(those whose tag ends with a slash) and which are not (those whose tag
does not end with a slash, but instead has a separate closing tag).
Take care,
Rob
On Dec 31, 2008, at 2:22 PM, Philip Taylor wrote:
>
> Adam Barth wrote:
>> On Tue, Dec 30, 2008 at 4:57 PM, Philip Taylor <pjt47@cam.ac.uk>
>> wrote:
>>> http://www.haliburtonrealestate.on.ca/ -- <li><a href="http://www.mls.ca
>>> "
>>> target="_blank" title="Multiple Listing Service" />MLS</a>
>>>
>>> http://www.ccitula.ru/ -- <a href="pages/virtv.htm"/> <img
>>> src=http://www.ruschamber.net/banner/VEru158x50.jpg border=0></a>
>>>
>>> http://takasago.shop-pro.jp/ -- <a href="?pid=1912944" /><img
>>> src="http://img05.shop-pro.jp/PA01015/854/product/1912944_th.jpg"
>>> class="border" /></a>
>>>
>>> http://www.alternativegreetingcards.com/ -- <a href="products.asp?
>>> id=57"
>>> class="submenu" />Wizard of Oz</a>
>> I'm not an HTML parsing expert, but these examples seem as easy to
>> fix
>> up as other parsing oddities like mis-nested tags (e.g.,
>> <b>foo<i>bar</b>baz</i>). Why can't the parser assume that <foo />
>> is
>> a void element until it finds a </foo> that would otherwise close the
>> tag? This would permit forward and backward compatible parsing and
>> ease of authoring.
>
> If that rule was introduced, it should apply to all (non-void)
> elements, otherwise it would be introducing more self-
> inconsistencies in the language. But then it would cause problems
> and/or confusion in cases like:
>
> <div class="a"><div class="b" />Is this text in the b div?</div>
>
> <script src="..." /><script>alert('Does this get executed?')</script>
>
> <textarea /><script>alert('Does this get executed?')</script></
> textarea>
>
> Also it would have to interact with other aspects of error handling,
> like:
>
> <table><tr><td />Does this text get foster-parented, and then
> somehow get yanked back into the table after reaching the end tag?</
> td>
>
> <a href="..." />Does the first a element get closed by an implicit
> end tag before the second a element?<a href="...">or is this nested
> inside the first a element?</a></a>
>
> --
> Philip Taylor
> pjt47@cam.ac.uk
>
Received on Wednesday, 31 December 2008 23:55:24 UTC