- 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