- From: Simon Pieters <simonp@opera.com>
- Date: Wed, 22 Oct 2008 18:04:41 +0200
- To: "Shane McCarron" <shane@aptest.com>
- Cc: "public-xhtml2@w3.org" <public-xhtml2@w3.org>
On Wed, 22 Oct 2008 17:31:34 +0200, Shane McCarron <shane@aptest.com>  
wrote:
>> Don't use CDATA sections (except in <script> and <style>).
> Yeah.  Actually, I think you shouldn't use them at all.  Is there a  
> specific syntax that you believe is portable to XHTML and HTML?
If you want to use "<" or "&" in a <script> or <style> element, you have  
to use
    <script>//<![CDATA
    ...
    //]]></script>
or
    <style>/*<![CDATA[*/
    ...
    /*]]>*/</style>
for it to work in both HTML and XHTML.
>> Don't use <noscript>.
> Why not?  I am not aware of a compatibility issue,
<noscript> is parsed as a CDATA element in HTML when scripting is enabled,  
and PCDATA when scripting is disabled. In XML it's always parsed as  
PCDATA. So if you have, e.g.
    <form><noscript><input name="x"  
value="y"/></noscript><button>OK</button></form>
the input will be successful in XHTML but not in HTML (when scripting is  
enabled). (This isn't limited to just forms, though.)
>> Don't use markup in <iframe>.
> Again, why not?  I am not aware of an issue between HTML and XHTML in  
> this regard.
Same as <noscript>.
>> Use createElementNS if supported and fall back to createElement.  
>> (createElement as specced doesn't match reality and there's no interop.)
> What does createElementNS do in an HTML context?
The same as it does in an XML context.
> Or, in that context, do you believe it is not supported?
IE doesn't support createElementNS, hence the advice to fall back to  
createElement.
>> When setting innerHTML, make sure the string is both well-formed and  
>> "HTML 4 compatible".
> Agreed, although if I remember correctly innerHTML is not really part of  
> a W3C spec.
http://www.w3.org/TR/html5/dom.html#innerhtml0
http://www.w3.org/TR/html5/dom.html#innerhtml1
Cheers,
-- 
Simon Pieters
Opera Software
Received on Wednesday, 22 October 2008 16:05:32 UTC