IE8 parsing and xmlns [was: Supporting MathML and SVG in text/html, and related topics]

Hi Chris,

Just a heads-up about the following message with a question about
parsing behavior in IE8.

  --Mike

Thomas Broyer <t.broyer@gmail.com>, 2008-04-10 16:16 +0200:

> On Thu, Apr 10, 2008 at 11:51 AM, Ian Hickson wrote:
> >
> >  A common theme across some of the problems listed above, and discussed in
> >  detail in the e-mails below, is the issue of a generic syntax for non-HTML
> >  namespaces in text/html. It turns out to be _exceedingly_ hard to handle
> >  the giant mass of weirdness found in legacy content on the Web while
> >  adding new features. For example, this page:
> >
> >    http://www.laroseweb.com/calcs/fans.php
> >
> >       <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
> >       "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
> >       <html xmlns="http://www.w3.org/1999/xhtml" >
> >       <math xmlns="http://www.w3.org/1998/Math/MathML">
> >       <math xmlns="&mathml;">
> >
> >       <head>
> >       [... continues with just a normal XHTML page]
> 
> ...renders exactly the same in Firefox 2 and IE8b1 (don't know why,
> probably because they come before <head>)
> 
> >  ...or this page:
> >
> >    http://www.cocopahrv.com/map.html
> >
> >       [...]
> >       <table width="592" border="0" cellspacing="0" cellpadding="0">
> >         <tr align="left" valign="top">
> >           <td width="592"><svg width="200" height="200" viewBox="0 0
> >       200 200"><img name="r1_c1" src="map/resortmap.jpg" width="600"
> >       height="465" border="0" alt="Cocopah RV and Golf Resort"
> >       usemap="#r1_c1Map"><map name="r1_c1Map"><area shape="rect"
> >       coords="4,2,298,230" href="map/lmp1a.jpg"><area shape="rect"
> >       coords="1,230,296,460" href="map/lmp1b.jpg"><area shape="rect"
> >       coords="297,4,598,231" href="map/lmp2a.jpg"><area shape="rect"
> >       coords="297,231,599,462" href="map/lmp2b.jpg"></map><rect
> >       x="100" y="100" width="10" height="20" style="fill: green"/>
> >           </svg> </td>
> >         </tr>
> >       </table>
> >       [...]
> 
> Don't use xmlns="" so renders exactly the same in Firefox 2 and IE8b1
> (I've nly tested those two; not that I couldn't have tested more, but
> I thought it was sufficient).
> 
> >    http://kr.blog.yahoo.com/yunneo2000/1111673
> 
> >    http://puysl.com/view.htm
> >    http://albren.blogspot.com/2007/02/l05-traductor.html
> 
> >  On Tue, 10 Apr 2007, Sam Ruby wrote:
> >  >
> >  > Instead of "starts with x_", how about "contains a colon"?
> >
> >  I considered that, but unfortunately, it forms a dichotomy of semantics,
> >  where when used in XML the DOM shows one set of names, and when used in
> >  text/html, it shows another (at least in legacy UAs, though we could
> >  hard-code behaviour for new UAs).
> 
> IE already does this (report the thing following the first colon)
> since version 5.5 (if there's a corresponding xmlns:<prefix> attribute
> on the <html> element or a <?XML:NAMESPACE prefix=<prefix> />
> pseudo-processing-instruction)
> If we follow the same rules (except for the <?XML:NAMESPACE />), we
> probably won't break much pages...
> 
> >  On Sun, 9 Mar 2008, Sam Ruby wrote:
> >  >
> >  > > Establishing a pseudo-XML parsing scope for <svg> and math.
> >  >
> >  > IE8's approach seems to be "establish a pseudo-XML parsing scope for
> >  > unknown elements which contain an attribute named xmlns that happens to
> >  > match a list of known values", where the list of known values may vary
> >  > by user agent or installation.  IMHO, that approach merits exploration.
> >
> >  Unfortunately, exploration basically shows that IE8 doesn't do anything
> >  (at least, I couldn't reproduce it) with xmlns="", other than screw up the
> >  attribute parsing),
> 
> It processes "/>" and puts the elements in a different "scope" (cf.
> scopeName and tagUrn).
> 
> > and a quick study of existing documents suggests that
> >  there's a great deal of content that wouldn't be handled very well at all
> >  by anything triggering off xmlns="",
> 
> You might well be correct (Sam's blog fails to render in IE8b1, but it
> seems to be a bug in their parser, probably because of the screwed-up
> attribute parsing), though aside from those parser-bugs I guess
> Microsoft has done some testing on their own...
> Maybe someone from Microsoft could comment on this? Chris?
> 
> > even if it were limited to unknown elements or known namespaces
> > (e.g. see the examples at the top of this  e-mail).
> 
> They're all rendered "correctly" (i.e. the same as in Firefox) in IE8b1.
> 
> Actually, the only problem I see with IE8's "enhanced namespace
> support" is the lack of namespace support for attributes.
> 
> 
> And fortunately, supporting namespaced elements (à la IE8 or
> IE5.5/6/7) is not incompatible with your effort for supporting SVG and
> MathML "out-of-the-box" (great job by the way).
> 
> 
> My 2 c€nts...
> 
> -- 
> Thomas Broyer

-- 
Michael(tm) Smith
http://people.w3.org/mike/
http://sideshowbarker.net/

Received on Wednesday, 30 April 2008 06:16:59 UTC