There seems to be some misunderstanding about that IE supports XHTML. IE supports XHTML equally good as Netscape Navigator 4.x and Mosaic. Just because you can write an HTML document using well formed XML does not mean that is XHTML. Neither does adding invalid HTML attributes and tags.
To be correct XHTML your web server needs to send the application/xhtml+xml content type. Browsers that do understand this, use their XML parsers to parse the content and then applies the default XHTML CSS to this. If you send this content type to IE, it does not know what to do and it asks the user to save the file.
An alternative would be to send the document as text/xml. This should work in all browsers supporting XML+CSS. Once again IE falls short even though it states that it does indeed support this. The problem is that it does not know that is should trigger the XML to HTML XSLT that it does when it encounters i stylesheet PI. (Remember that using XML+CSS does not give access to DOM HTML 1/2 nor DOM0 which prevents usage of cookies and many more crucial parts of the DOM).
Note that IE uses HTML with custom elements in those few cases that it does know how to apply the CSS to XML. This means that it changes the tag names of all XHTML elements to uppercase. It also means that it adds HTML, HEAD and BODY elements which means that your CSS will most likely not work.
- Mozilla 1.4 – Passed
- Opera 7.2 – Passed
- Opera before 7.2 – Failed
- IE6Sp1 – Failed
Oh… I almost forgot (IE Rant #4)