Mike Wilson wrote:
Ian Hickson wrote:
On Sat, 17 Jan 2009, Mike Wilson wrote:
So I wonder what is your process for determining if a "quirk" should be included in HTML5 or not?
It basically boils down to "did Web browser vendors find that if they didn't implement it, enough people complained to justify spending the resources to implement it after all?".

Ah, so your process is really to look at if browser vendors
historically have added special handling for individual quirks
and then mimic "popular" solutions in the spec?

For some things, yes.

Now I am just being curious ;-) but how on earth do you find
all quirks (and if they have been specially dealt with) - is it
up to reports on the mailing list or are you reading source code? :-)

Some things are known based on experience, because they occur so freqently in practice. But in general, when trying to spec a particular feature, a lot of time is spent testing and reverse engineering it using a variety of techniques including black box testing, reviewing past bug reports or even looking at the source code of the open source browsers.

For some examples of this, take a look at these articles
http://ln.hixie.ch/?start=1037910467&count=1
http://ln.hixie.ch/?start=1137799947&count=1
http://ln.hixie.ch/?start=1155195074&count=1
http://ln.hixie.ch/?start=1158969783&count=1
http://ln.hixie.ch/?start=1161042744&count=1
http://ln.hixie.ch/?start=1161121410&count=1

And do you generally find concensus among the non-MS vendors or
are there many quirks that are only worked around in a single browser, and how do you handle that?

If possible, we try to spec the behaviour that has the most interoperability among the browsers. i.e. If 3 out of 4 browsers do A, and the the other does B, and there's no significant evidence of compatibility problems with A, then the spec is likely to define A.

If there's no interoperabiliy at all between the browsers (i.e. All browsers do something completely different), then we have a little more freedom to pick the most sensible alternative, taking into account any compatibility issues with real world content.

The idea is to make it so that browsers don't feel forced to add _any_ non-standard behavior (other than experimental
innovations using vendor-prefixed names and stuff).

Do you think this will happen with the current popular browsers, ie will they actually remove existing code that implements workarounds that don't make it into HTML5?
Or will they employ some "legacy vs HTML5" mode switching where
their custom workarounds are only in legacy mode?

If the spec omits something that we implement and there's evidence to suggest that we need to keep it for compatibility, then we'll try to get that added to the spec. If it's something minor that no other browser does and it doesn't appear to be needed for compatibility with anything, then we're more likely to drop it. There will not be, at least in Opera, Firefox or Safari, new modes added beyond the existing no quirks, limited quirks and quirks modes.

I guess what I am really thinking about is whether there will
ever be a "strict to standard" HTML5 implementation, or a
reference implementation, that stays exactly on what is written
in (or easily interpolated from) the HTML5 spec...?

There won't be any implementation considered to be the reference implementation. But the hope is that all implementations will eventually converge on implementing things in the same way, and that the spec will match.

--
Lachlan Hunt - Opera Software
http://lachy.id.au/
http://www.opera.com/

Reply via email to