- From: <bugzilla@jessica.w3.org>
- Date: Tue, 15 Feb 2011 03:09:44 +0000
- To: public-html@w3.org
http://www.w3.org/Bugs/Public/show_bug.cgi?id=12072
Summary: Comments before <!DOCTYPE html> should be forbidden
Product: HTML WG
Version: unspecified
Platform: PC
URL: http://dev.w3.org/html5/spec/syntax#comments
OS/Version: All
Status: NEW
Severity: major
Priority: P2
Component: HTML5 spec (editor: Ian Hickson)
AssignedTo: ian@hixie.ch
ReportedBy: xn--mlform-iua@xn--mlform-iua.no
QAContact: public-html-bugzilla@w3.org
CC: mike@w3.org, public-html-wg-issue-tracking@w3.org,
public-html@w3.org
<!--comments before--><!DOCTYPE html>
should be forbidden, because
a) it triggers quirksmode in IE6, IE7, IE8 and IE9;
b) "HTML5 compliant quirksmode" isn't needed & is against HTML5's spirit
Valid HTML5 shouldn't trigger quirks in mayour browsers!
c) it is a gotcha to authors; Confusion isn't hard to locate.[1][2]
Even a check of the 10 first pages on Philip Taylor's no-quirks list
revealed
that one of them <!---> before DOCTYPE; [3]
d) there is an alternative: <!---> *after* the DOCTYPE;
e) it is a hindrance to Polyglot Markup;
* <!---> before DOCTYPE is OK in 'application/xhtml+xml',
( as long as it follows *after* a possible XML declaration) ;
* Thus e.g. IE9 in 'application/xhtml+xml' mode gets no problems.
* But the same page in text/html mode will cause IE quirks;
f) it promotes proprietary syntax; Proprietary code such as
<!--[if !IE]><![endif]-->
<!DOCTYPE html>
and
<!---><!DOCTYPE html>
<meta http-equiv="X-UA-COMPATIBLE" content="IE=Edge" />
is the only way to have <!---> before DOCTYPE w/o getting IE quirks
POSSIBLE COUNTER ARGUMENTS:
* Claim: "There is a need to trigger quirks mode in IE6 an donly in IE6!"
Whether there is such a need, is a question in itself. But, for now, assuming
there is such a need, then:
ANSWER 1:
To forbid comments before the DOCTYPE does not hinder authors from still
using them. It just won't validate anymore. HTML5 defines no-quirks as the
default mode. There are many syntaxes that are forbidden in HTML5, but which
still triggers *no-quirks* (a.k.a. standards) mode in HTML5 parsers. (For
example, the XML declaration doesn't trigger quirks mode in a valid HTML5
parser.) Forbidding comments before the DOCTYPE will be no different.
ANSWER 2:
For XHTML pages, there is one, common answer to that problem: use the XML
declaration before the DOCTYPE. (For examples of that kind of advice, see
http://www.gunlaug.no/contents/wd_additions_16.html and
http://www.456bereastreet.com/archive/200904/using_an_xml_declaration_triggers_quirks_mode_in_ie_6/
)
This will trigger quirks-mode in IE6, but not in IE7, IE8 or IE9. (But note
that even if XML declaration was permitted, it would still have to be forbidden
to use comments *between* the XML declaration and the DOCTYPE, as this causes
quirks-mode in IE7, IE8 and IE9.)
ANSWER 3:
Authors will develop other methods for triggering quirks-mode in IE6. HTML5
should nevertheless not promote quirks-mode.
References:
[1]
http://stackoverflow.com/questions/941100/can-html-comments-appear-before-the-doctype-declaration
[2]
http://stackoverflow.com/questions/2770392/html-doctype-setting-ie-quirks-mode
[3] http://philip.html5.org/data/doctypes.html#HTML5_non-quirks
--
Configure bugmail: http://www.w3.org/Bugs/Public/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are on the CC list for the bug.
Received on Tuesday, 15 February 2011 03:09:48 UTC