Archive for the 'Microsoft' Category

The great Internet Explorer 8 controversy

So, the Internet Explorer team has proposed that as of IE8, if you want the latest and greatest features you’ll have to opt-in. (Note: Microsoft have changed their mind.) You can do this by way of an http-header, or using a meta-tag:

<meta http-equiv="X-UA-Compatible" content="IE=8" />

I can see under­stand why they’ve chosen this direc­tion. IE6 was absolutely chock-full of bugs, but was left to stagnate for so long that web-developers began to rely on it’s quirks in order to make pages render correctly. Eventually IE7 came along and fixed many of those bugs. Consequently, many pages that were reliant on IE6 bugs broke in IE7. Microsoft don’t want to see that happen again.

The rest of the world doesn’t seem so keen on the idea. The web has gone wild, shout­ing about the myriad technical problems. Representatives from Mozilla (Firefox/Gecko), Apple (Safari/Webkit) and Opera have all said they don’t like the idea (and won’t be imple­ment­ing it in their browsers). The big issue that stands out for me isn’t technical at all though. It’s education.

Getting the word out

Somehow, Microsoft need to get the word out to exist­ing web design­ers and developers. They need to tell newcomers to the industry. They need to let educat­ors know. I’m strug­gling to see how they’re going to do that. Why?

A quick look around the SitePoint forums reveals that people are still tripping up on using the doctype element to switch between quirks and stand­ards modes (the last attempt at provid­ing backwards compat­ib­il­ity to legacy web pages). They were first intro­duced with Internet Explorer 5 for Mac the best part of a decade ago. Over the years, every major browser has taken up the techno­logy, count­less people have blogged about it, written tutori­als on it, put it into knowledge bases, included it in web design books, podcas­ted it, and people are still strug­gling to get their heads around it.

I reckon Andy Budd hit the nail on the head:

No matter what great leaps forward the Internet Explorer team make from now on, the major­ity of developers won’t use them and the major­ity of users won’t see them. By doing this the Internet Explorer team may have created their own backwa­ter, shot themselves in the foot and left themselves for dead.

Things move quickly on the web

Of course, while I was writing that, the story developed a bit further.

It turns out that using the new HTML5 doctype will trigger the new super-standards-mode in Internet Explorer 8. What’s more, Ian Hickson thinks he knows a way to make an HTML5 compat­ib­il­ity layer for IE7 (see the last paragraph).

My inter­pret­a­tion? Microsoft are trying to make HTML4 and XHTML1 legacy formats (unless you specify other­wise with the X-UA-Compatible header) and push HTML5 as the stand­ard for content going forward. I’ll be very inter­ested to see how all of this plays out.


Katemonkey has gone and rendered everything I’ve written here irrel­ev­ant: The “X-UA-Compatible” Controversy — As portrayed by toy lemurs.

Some time later…

Microsoft have decided to do the right thing: IE8 now will use standards-mode by default.

Internet Explorer combination float bug

So, I’m creat­ing a layout that looks something like this:

Picture of a three-column web-page.

It’s a fairly simple three-column layout. The thing is, I’ve used some funky negat­ive margin trick­ery to swap the first and second columns (so that the HTML is displayed in the correct order for non-CSS user agents).

Unfortunately, IE6 renders this:

Picture of IE getting a three-column web-page wrong.

…except in some hard-to-reproduce circum­stances when it gets it right.

It turned out to be a combin­a­tion of bugs, which made it ever so slightly diffi­cult to track down. First up was The IE Doubled Float-Margin Bug. Adding display: inline; to the CSS for the floated columns appeared to just make the problem worse, but was in fact needed to correct the issue.

Once that was in place, the page was only correctly rendered once I’d moused over certain links. It took me quite some time to figure out what was going on: IE was incor­rectly calcu­lat­ing the funky margins: Instead of basing them on the width of the floated column’s parent element, it was working them out from the body element. I figured that out because the render­ing was slightly differ­ent depend­ent on the width of the window.

The solution was to wrap yet another element around the outside, and set the width there too.

I’ve created a simple test-case that explains the solution for the anybody else that runs into the issue.

Heads Up: Internet Explorer 7 is here

Just a quickie to note that Microsoft have released Internet Explorer 7 for Windows XP. Get it while it’s hot!

This will be pushed out via Windows Update in the next few weeks, though it’ll be a non-crititcal as a high-priority update for now. IE7 will not install without asking first. More inform­a­tion on the IE Blog.

[Thanks to Andrew Disley for the tip-off]