Re: A Concrete Example for the HTML Versioning Debate

On Wed, 18 Apr 2007, Jeff Schiller wrote:
> On 4/18/07, Ian Hickson <ian@hixie.ch> wrote:
> > On Tue, 17 Apr 2007, Jeff Schiller wrote:
> > >
> > > And even if you can be reasonably confident - what is the harm in 
> > > introducing a "5" into the DOCTYPE somewhere?
> > 
> > It encourages people to think of HTML as a versioned specification,
> 
> HTML is a versioned specification.

I mean, it encourages people to think that HTML has different incompatible 
requirements from version to version, so that a user agent that implements 
one version is not necessarily compatible with all earlier versions.


> > and encourages and gives the appearance of condoning exactly what 
> > Microsoft is intending to do.
> 
> I need to understand what it is that you think Microsoft is trying to do 
> (and the ramifications of doing it), so I can understand whether I 
> condone it or not.  Can you clarify what you mean here?

http://lists.w3.org/Archives/Public/public-html/2007Apr/1071.html


> > It increases the size of the boilerplate, when we should be limiting 
> > it to the bare minimum.
> 
> Actually it does not increase the size of the boilerplate.  The 
> boilerplate right now is
> 
> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
> "http://www.w3.org/TR/html4/strict.dtd">

I mean it increases the size of the boilerplate from the minimum we have 
managed to find in the HTML5 proposal:

   <!DOCTYPE HTML>

(Actually we considered going one step further:

   <!DOCTYPEHTML>

...but that's ugly. It does trigger standards mode in the major browsers, 
though, so it was considered.)


> > It encourages conformance checkers to check against the declarad 
> > version instead of checking against the most up to date version.
> 
> Shouldn't they?  If I've authored HTML4 they should check against that.  
> Same with HTML5.

If we make something obsolete in HTML6, it's for a reason. Why would we 
want to have people ignore it? Similarly, if something is illegal in HTML5 
but is made legal in HTML6, why should people who don't know anything 
about this and are just slamming their code through HTML conformance 
checkers because they were told to received messages saying there are 
problems when the working group decided to remove the problems?

No, it doesn't matter what you've authored to, you should be conformance 
checked against the latest specifications, IMHO.


> > In any case, arguing that we should add something because it doesn't 
> > cause harm is not a valid line of argument. We should add something 
> > because it has strong *benefits*.
> 
> I guess I should have phrased my suggestion as "follow what's been done 
> in the past" (a DOCTYPE specifying the HTML version), because actually 
> it is the WHATWG that is suggesting changing existing practices.  
> Shouldn't the burden be on you for proving the benefits are worthwhile?  

For what it's worth, the WHATWG process has been to start from scratch, 
not to start from HTML4. So every piece of syntax, every element, every 
attribute, has to be justified. (I'm not saying we should do that in 
_this_ working group, and I acknowledge that it's in the context of this 
HTML working group that we're having the discussion.)

Also, HTML4 technically doesn't have _versioning_, it has an FPI for a 
DTD. Since HTML5 doesn't have a DTD, we can't have an FPI. So technically, 
the precedent would be to not include an FPI (that's how you indicate you 
have no DTD).


> The benefits seem to consist of:
>
> 1) it's shorter so it's easier to remember
> I contend that it's still a line of text that people will not understand 
> and still cut & paste)

I can't remember the HTML4 DOCTYPE. I can remember the proposed HTML5 one. 
I've heard dozens of people immediately tell me the exact same thing when 
exposed to the proposed HTML5 DOCTYPE. So I firmly believe this is a big 
advantage.


> 2) future HTML specs will never introduce incompatibilities from HTML5 
> onwards
> 
> Forgive me, but I just have my doubts on this one - though I do think 
> the WebApp 1.0 spec is excellently researched and written.  The fact 
> that we're evolving HTML here instead of moving to something new (XHTML) 
> means that HTML will likely evolve again in the future.  Maybe you have 
> a different opinion.

I agree we'll evolve it again. I just think that we won't do so in a way 
that will require user agents to know the difference between HTML5 and 
HTML6 (even Microsoft's proposal isn't spec version based, but browser 
version based).

In any case, IF we find when doing HTML6 that we need versioning, we can 
add it then -- we're not locking ourselves into a corner in HTML5 by not 
having versioning.


> From what I've read on here, I agree with you that existing practices 
> suck for choosing the "HTML mode".  From what I can tell, it is 
> prevailing ignorance from those developers who don't see any huge 
> benefit to HTML 4.01 in "standards mode".

It's not that they don't see a benefit. They simply don't know it exists, 
in many cases.


> But I disagree on the idea that people will "randomly choose" modes in 
> the future.  HTML5 will be the first new major version of HTML in 10 
> years.  People interested in authoring content to conform to the new 
> specification will have to learn the "new" language and the first thing 
> they will want to know is how does it differ from the "old" language.

Most content authors will not even hear about the fact that there's a new 
language. It's humbling, as specification authors, but basically, people 
don't care about us. Many, maybe even most, authors don't know the 
difference between HTML4 and HTML2, and won't know the difference between 
HTML5 and HTML4.


> A version specifier is one of the first things they will look for.

No, many (again, maybe most) authors will just copy boilerplate from some 
other document, and work from there, blissfully ignorant of what the 
random gibberish at the top of their document means. HTML5? HTML4 
Transitional? They don't care.

Heck, even _I_ do that. Before the HTML5 proposal had "<!DOCTYPE HTML>", 
I used to just copy the DOCTYPE from whatever page I was on. It was rarely 
the latest and greatest, and I didn't care, because so long as it 
triggered standards mode, I was happy. Now I'm even happier because I 
don't have to do that, I can type it from memory quicker.


> But if we don't care about versioning, then why does HTML5 have a 
> DOCTYPE at all?  Answer: to trigger standards mode in most browsers.
> 
> Ok, but if we don't care about versioning, then why does it differ from 
> the HTML 4.01 DOCTYPE?  Answer:  because it's easier to type...

Yup.

And it's shorter. For example, we haven't been able to convince Google to 
use an HTML4 DOCTYPE, but we might be able to convince Google to use the 
proposed HTML5 one. When you serve millions of pageviews a day, every byte 
counts. There are plenty of sites in the same position.

-- 
Ian Hickson               U+1047E                )\._.,--....,'``.    fL
http://ln.hixie.ch/       U+263A                /,   _.. \   _\  ;`._ ,.
Things that are impossible just take longer.   `._.-(,_..'--(,_..'`-.;.'

Received on Wednesday, 18 April 2007 09:29:54 UTC