- From: Dannii <curiousdannii@gmail.com>
- Date: Wed, 18 Apr 2007 16:29:10 +1000
- To: "Matthew Raymond" <mattraymond@earthlink.net>
- Cc: matt@builtfromsource.com, public-html@w3.org
- Message-ID: <af3e73120704172329k9c36419rd581a4d92a940766@mail.gmail.com>
And it can be left out completely? Sounds very good. On 4/18/07, Matthew Raymond <mattraymond@earthlink.net> wrote: > > > Matthew Ratzloff wrote: > > I feel that a version is necessary given the fact that: > > > > - Microsoft says it needs an explicit opt-in, > > - 80% of the market uses Internet Explorer, > > - Most pages serve unique content to Internet Explorer, and > > - Microsoft will implement an unofficial opt-in whether or not one is > > specified expressly. > > > > Since we are "paving the cow paths" it seems to me that we must also > pave > > foreseeable future cow paths as well. To that end, add a version > > attribute and just be done with it. Everyone else can ignore it. > > I don't really see what Microsoft gets out of a |version| attribute. > Here's why: > > 1) The proposed versionless doctype for HTML5 can be used as a switch on > its own, so we're really talking about a |version| attribute for use > when we release HTML6, by which time we may very well have moved to > XHTML 2.0 or something anyway. So we resurrect |version| from the dead > just to kill it again. > > 2) It's unlikely that HTML6 will come out between IE8 and IE9 because of > greater competition in the browser market, so Microsoft will end up > using a switch unrelated to the HTML version before they even get to use > |version|. > > 3) If only the HTML version is used as a switch, IE will never support a > standards compliant version of the current HTML standard. They'll > always end up supporting the previous version plus some buggy new > features. What's worse, they will probably lobby for the new HTML6 spec > to incorporate some of their non-compliant behavior in the interest of > compatibility with the web. Thus, pages written for the previous > specification (HTML5) will be rendered incompatible with later HTML > versions (HTML6 and so on) even though they were fully compliant with > the spec when it reached Recommendation status. > > So a |version| attribute is both next to useless for Microsoft and > harmful for existing pages that try to remain true to the HTML5 spec. > > Enter |bugmode|. It works very similar to a |version| attribute, but > rather than specifying the version of HTML, it specifies the version of > a specific user agent that the page was designed to be bug-compatible > with. Example: > > | <!DOCTYPE html> > | <html bugmode="IE7"> > > Note that this solution allows Microsoft to make multiple releases > between HTML version, because they'll never run out of potential > |bugmode| values. Also, the feature can also be used for pages that > depend on bugs in other user agents: > > | <!DOCTYPE html> > | <html bugmode="Gecko 1.9"> > > And if the page is designed to render without dependencies on the > bugs of any particular user agent, you just leave it off: > > | <!DOCTYPE html> > | <html> > > When a user agent fixes a bug, they're also fixing existing > standards-compliant pages without those pages having to change their > code. However, if the page depends on specific bugs from a particular > user agent, |bugmode| can be specified preemptively so that the next > version of the browser in question doesn't break the page. Also, user > agents can implement bug compatibility modes for other user agents. > > To top it off, it's clear from the name that it indicates a > dependency on characteristics and behaviors of a particular user agent > that are not standards compliant. This makes developers aware that they > are targeting a specific user agent rather than simply exploiting a > quirk of the language. > > End of line. > >
Received on Wednesday, 18 April 2007 06:29:34 UTC