Re: Trailing slash in doctype

On Wed, 27 Feb 2008 19:32:46 +0100, Philip Taylor <pjt47@cam.ac.uk> wrote:

>
> http://www.mobile.de/ (from the Alexa Top 500 list) says:
>
>      <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"  
> "http://www.w3.org/TR/html4/strict.dtd" />
>
> IE, Firefox and Opera (I've not tested Safari) treat that as standards  
> mode. HTML5 says it must be treated as quirks mode, since the trailing  
> slash is a syntax error and sets the 'incorrect' flag during  
> tokenisation. Is this likely to be a compatibility problem that HTML5  
> should avoid?
>
> Relatedly, http://www.gamespy.com/ says:
>
>      <!DOCTYPE HTML PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"  
> SYSTEM "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"/>
>
> which is standards mode in IE, quirks mode in Firefox and Opera, and  
> quirks mode in HTML5.
>
> I see '..." />' on roughly 0.02% of pages from dmoz.org, and (excluding  
> gamespy.com) I see '..."/>' on roughly a quarter of that, so it's not a  
> very widespread issue but it does exist.

Testing in Firefox it seems that any garbage after the system identifier  
is basically ignored. But a trailing slash without system identifier would  
still trigger quirks mode in Firefox:

    <!doctype html />
    <!doctype html public "-//w3c//dtd html 4.01//en"/>


Opera's rendering of gamespy.com would align more with Firefox if we used  
quirks mode (large list bullets).

mobile.de would not quite render correctly in Opera if we used quirks mode.

I think HTML5 needs to ignore garbage after the system identifier like  
Firefox does. ("Anything else" in the after doctype system identifier  
state should say "parse error, stay in this state", or maybe the state  
going into the bogus doctype state should be responsible of setting the  
correctness flag.)

-- 
Simon Pieters
Opera Software

Received on Thursday, 28 February 2008 16:54:51 UTC