- From: Leif Halvard Silli <xn--mlform-iua@xn--mlform-iua.no>
- Date: Sat, 21 Nov 2009 04:44:36 +0100
- To: Maciej Stachowiak <mjs@apple.com>
- Cc: Leif Halvard Silli <xn--mlform-iua@xn--mlform-iua.no>, Julian Reschke <julian.reschke@gmx.de>, HTMLwg <public-html@w3.org>
On Fri, 20 Nov 2009 15:13:52 -0800, Maciej Stachowiak wrote:
> On Nov 20, 2009, at 7:21 AM, Leif Halvard Silli wrote:
>> On Fri, 20 Nov 2009 15:05:11 +0100, Julian Reschke wrote:
>>> Leif Halvard Silli wrote:
>>>> <body xmlns="http://www.google.com/ns/jotspot" id="body" class=" en">
> Do you think it was intentional to make the body not be an HTML body?
> Doesn't seem likely to me.
The Google Sites example pages[*] all show the same "feature", so it is
no accident ... If they get something positive out of it, then I
suppose it is on the editor side - not on the browsing side.
However, in plain English, what you claim is this: "If text/HTML
supported namespaces, then how could this possibly be meaningful? A
default namespace declaration inside *a* <body> would "steal" *the*
<body> element." Julian's thought about forbidding namespaces on the
<body> elements builds on the same idea.
However, here is another option that perhaps is just as logical:
Namespace enabled text/HTML user agents would generate a DOM with *two*
body elements: A parent <body> in the HTML namespace and a child <body>
in the "jotspot" namespace. After all, doesn't text/HTML UAs always
generate a <body>, even if you omit it?
<body>
<body xmlns="http://www.google.com/ns/jotspot" id="body"
class="en"></body>
</body>
Old UAs would see one <body> element, while namespace enabled text/HTML
UAs would see two.
To not cause Web breakage, <body> elements in a non-HTML namespace
would have to be special cased whenever they would would be the first
child of a <body> in the HTML namespace. That is: Special CSS rules and
JavaScript/DOM rules for such cases. For example, it could be required
that, for CSS, such a non-HTML body element would have to be selected
like this, if you would like to write over the default special cased
styling:
body>body{}
I don't say that two bodies is what Google Sites would expect, at
first. (It would surprise them the same amount as it surprises others
that user agents auto insert <body>.) But I would claim that it would
be a logical expression of text/HTML's interpretation of Postel's "be
conservative in what you do, be liberal in what you accept from others".
Because, fact is: The thing that text/HTML user agents auto-generates
those bits of the DOM that an author "forgets" to insert himself, is
text/HTML's way of being "draconian": If yo don't take control
yourself, then the user agent takes control for you.
And that's the kind of soft punishment that Google Sites would need in
order to start doing it right.
[*] http://www.google.com/sites/help/intl/en/overview.html
--
leif halvard silli
Received on Saturday, 21 November 2009 03:45:12 UTC