Re: Whats wrong with W3C Validator?

Robin Daugherty wrote:

> The doctype declaration must be at the top of the document, and can
> only be preceded by whitespace to be valid.

That's not quite correct.

A doctype declaration can be preceded by a processing instruction, and 
<?php ... ?> would be such an instruction if it appeared at the start of 
a document. It would simply be ignored by a validator (and a browser). 
Normally it never reaches a validator (or a browser), since the PHP 
software, running on a server, reads the file and processes it before 
sending it in response to a request, and the processing includes the 
removal of <?php ...>.

If you try to validate a page by file upload or by direct input, with 
<?php ...> appearing at the start of the file, then the validator gets 
that line and not the processed data. The <?php ...> declaration does 
not make the document invalid, but the lack of processing means that 
what the validator gets can be quite different from the real content (as 
seen in normal validation by URL and as seen by browsers, search 
engines, etc.). So just don't do that. PHP-based pages must be validated 
using validation by URL. This means that you need to upload them before 
validation, but if this bothers you, you can upload them under some test 
name, validate, and only then rename them so that they have the intended 
URLs.

A doctype declaration can also be preceded by a comment declaration, 
<!-- something -->. Such usage is not recommendable in general in HTML 
documents, since it throws IE into "Quirks Mode" (see 
http://www.cs.tut.fi/~jkorpela/quirks-mode.htm ), but note that a 
validator does not and must not report such a document as invalid. 
Starting with a comment is valid, though not good practice. (I guess a 
validator _could_ issue a _warning_, but this might be confusing to 
people who use the validator to check markup in situations where IE 
oddities don't matter and that may have nothing to do with HTML.)

Jukka K. Korpela ("Yucca")
http://www.cs.tut.fi/~jkorpela/ 

Received on Thursday, 20 March 2008 13:26:28 UTC