ie8 not defaulting to ie8 rendering after all

A while back, Microsoft stunned the standards world by responding to developer objections and agreeing to have IE8 render like IE8 by default (and yes there are many things in that sentence that should be wrong, but aren't).

Nobody could quite believe that Microsoft would really do something that genuinely supported web standards, especially when they were reluctant to do it.

Sadly the disbelief was justified - Microsoft have now done a backflip on their backflip. IE8 won't always default to rendering in standards mode after all, interoperability principles notwithstanding.

The latest idea is that IE8 will render in IE8/standards mode by default for general web pages; put a "broken page" icon on the toolbar when in IE8/standards mode; default to IE7 mode for intranets; and let the user change the defaults if they want to.

Because that's so much simpler than having IE8 render like IE8 unless explicitly told to do otherwise.

A couple of links if you hadn't heard:

broken page icon?

OK, so technically the broken page icon means "go into compatibility view". It replaces the more accurately-named "Emulate IE7" button from the previous beta. But that's not really what it looks like:

Screenshot of the Compatibility View icon

That looks like "broken page" to me. Which is particularly annoying as it will only be shown when the page is being rendered in standards mode; and it will be placed in the address bar rather than somewhere like the "Tools" menu.

it's all about the intranets

Obviously I am not surprised by this development in the saga. I said last time around that X-UA-Compatible is all about 'not breaking bad web apps' and this just confirms my suspicions.

The only sites that will render in IE7 mode by default are those accessed by local URLs like http://intranet/. Of course if you can access your intranet using both http://intranet/ and http://www.intranet.real.domain/ then you're going to see it in two different rendering modes.

So I guess you're going to have to forward one to the other or set the meta tag/HTTP header with the correct rendering mode. Which begs the question why this change was useful in the first place, if intranet developers still end up having to modify settings somewhere along the line. Why not leave things as they were - get intranet developers to just set X-UA-Compatible and be done with it?

But instead Microsoft decided to modify IE8's rendering mode selection process again.

Ok, so it's just intranets. This isn't so bad, right?

Not quite.

the defaults aren't

The nasty little rider in this latest announcement is the fact that users can now 'apply compatibility view' for all websites:

Screenshot of IE8 beta compatibility view settings panel

That user choice (and display of the broken page icon) can be overridden by developers using the meta tag or HTTP header. That makes sense, since the developer should know for sure if their site will work in IE8 or not.

But... think that through for a moment, and you'll realise we're back to square one. We now have to modify all our sites, all the time, since users can override our chosen rendering mode if we chose the default rendering (that is, we wanted IE8 to render as IE8 like Microsoft promised last time around).

If we build a site that works in IE8 and then leave things to the default, IE8 users with 'display all websites in Compatibility View' selected will see the site rendered like IE7.

Awesome, isn't it?

confusing for users

I really do wonder what the average user is going to make of this.

I can't fathom why Microsoft thinks the average user is going to know when to click the busted browser button. It's essentially asking the user to understand the finer points of standards compliance and rendering modes, when most users still seem barely aware that the blue e icon on their desktop is not actually "the internet".

Average users shouldn't need to select rendering modes! They should be able to just browse, letting developers and browser makers sort out the details.

But if the user is presented with the option at some point I can them going for the "safe" sounding option of enabling "compability view" for all websites. After all... it sounds kind of like a good thing, right? Compatibility is good, yeah?

so where does this leave developers?

Well, we have two options if we want to build sites that work in IE8, in IE8 rendering mode:

  1. Leave things to the defaults, and ignore users who've set IE7 mode to be on all the time.
  2. Explicitly set our sites to render in IE8 mode, even though we did the right thing and shouldn't have to fart around with X-UA-Compatible.

Logically I think most of us will go with Option 2, since you don't want a user to think your site is broken because they're seeing the "broken site" icon; or worse still have the page actually break because the user is applying the wrong rendering mode.

no real surprises

We are back to what Microsoft wanted to do in the first place. We have to specifically choose a rendering mode for IE8, since there's no reliable default under this new model.

But Microsoft can still say that by default an internet page will render in IE8 mode. They can still pay lip service to interoperability, even if they're not really getting into the spirit of the thing.

It's not a hard equation really: Microsoft makes money off intranets, but doesn't make money off web standards. So, they're always going to protect their intranet interests over web standards considerations.

It's a little sad, since for a while there it looked like Microsoft was actually responding to developer feedback. But it's not surprising to find out that you can't trust a multinational corporation to keep a promise it didn't want to make in the first place.

Labels: , ,

Comments

  1. Blogger yogomozilla, September 02, 2008 1:39 pm: 

    [quote]
    The only sites that will render in IE7 mode by default are those accessed by local URLs like http://intranet/. Of course if you can access your intranet using both http://intranet/ and http://www.intranet.real.domain/ then you're going to see it in two different rendering modes.
    [/quote]

    So... for those of us who use local domain names for development such as http://client.dev/, we're classified as an "intranet" and our development will render in poo mode unless we put in the magic meta ?

  2. Blogger 200ok, September 02, 2008 2:36 pm: 

    @yogomozilla: If I'm reading their document correctly, by default yes. Their example is "If you navigate to sites on your local intranet like http://myPortal and http://sharepoint/sites/mySite"

    So for local development you'll need to set the meta or manually adjust IE8's settings. Deselecting the 'display all intranet sites in compatibility view' option may be enough, but you'll have to test it yourself to see what works in your dev environment.

  3. OpenID Dmitry Baranovskiy, September 02, 2008 3:42 pm: 

    Is there any way to boycott IE in general?

  4. Blogger 200ok, September 03, 2008 12:18 am: 

    @dmitry: Well I wonder how many people are going to just set X-UA-Compatible to IE7 and ignore IE8 entirely. Microsoft is basically inviting that approach, I can see a lot of busy developers making use of it.

  5. Blogger RobC, October 11, 2008 4:19 pm: 

    It may be nothing to do with the copmpatibility feature (if so forgive me).
    I notice that attempts to save web pages as mht, often fail completely. Presumabley because there is a minor problem on the page.
    The mht extension in Firefox, does save those pages (with a 'heads up' saying there was a minor problem).
    Can IE8 be set to be similarly tolerant ?

  6. Blogger 200ok, October 11, 2008 5:50 pm: 

    @robc: I assume you've tried saving as MHT using both rendering modes? I'm wondering where the problem is the rendering (ie. the source) or the MHT feature (ie. the output).

    Either way I'd suggest reporting it as an IE8b bug so the IE team can look into it.

  7. Anonymous Billigflug, November 18, 2008 3:52 am: 

    ^^lol Dimitri, this would be the easiest way. I must admit that today I thought of a google boycott but this isn't very likely, is it? We could use the chinese plagiat for example soso.com:D Anyway, we all have to deal with it, all the new browsers are just making me crazy. without blogs like this I'd give up!

  8. Anonymous Alleinunterhalter Köln, November 30, 2009 10:25 pm: 

    lol xtcommerce. i am boykotting ms ie for a long time now.
    this browser isnt good at all. if you think about security on your pc
    you just have to boykott it :P

  9. Anonymous Anonymous, September 24, 2010 1:48 am: 

    @Alleinunterhalter Köln

    Yeah, you can boycott is all you want, but can you force your entire user base to do the same?

    Meanwhile, back in the real world, some of us are producing web sites to W3C standards that get screwed up because IE8 *thinks* is should use some ancient compat view.

    Great.

    I don't want to hack clues into my code and onto my web server just so IE8 can work out that my page is standard!

    Read the DOCTYPE, that's what it's there for!

    xhtml strict is, guess what, xhtml strict, I don't need any help intended for amateurs who have hacked their company intranet together in FrontPage!

  10. Anonymous Kostenlos, October 15, 2010 7:53 pm: 

    Is there any way to boycott IE in general?

about

Web development and standards, as seen by Ben Buchanan.