Ask the browser makers — PEte LePage from the Internet Explorer team

In the first of what we hope will be a new, occa­sional series at Web Directions, we speak with PEte LePage Product Manager, Internet Explorer, Developer Division about their goals with IE8, com­pat­i­bil­ity mode, with IE7 emu­la­tion in IE8 is iden­ti­cal to IE7 and more about the browser. Thanks to PEte for his detailed responses.

1. In our recent “state of the web” sur­vey of devel­op­ers, back in December 08, while about 90% of devel­op­ers say they test their sites in IE7, and even close to 80% said IE6, only about 30% say they test their sites in IE8. With the loom­ing release of IE8, this came as some­thing of a sur­prise to us. Does it sur­prise you?

In December, Beta 2 had been out for a few months, and I think devel­op­ers still expected churn in the browser, so they didn’t feel the need to test in IE8. At that time, the vast major­ity of folks who were run­ning IE8 as their pri­mary browser were peo­ple who like to live on the cut­ting edge, so they expected any issues that hap­pened. Now that Internet Explorer 8 has been released to the web, and will soon begin dis­tri­b­u­tion via Automatic Updates and Windows Updates, we expect (and hope) that devel­op­ers will begin reg­u­larly test­ing their sites in IE8.

2. Why do you think it might be that devel­op­ers aren’t test­ing. Is it that they think “it works fine in IE7, so it will be fine in IE8”? Are there chal­lenges (or per­cep­tions of dif­fi­cul­ties) for devel­op­ers in installing and test­ing with mul­ti­ple ver­sions of IE? Or is there some other rea­son do you think?

I believe the main rea­son peo­ple weren’t test­ing was because IE8 hasn’t released its RC yet, and peo­ple wanted to be sure they were test­ing with near final bits. We’ve done a lot to try to alle­vi­ate the prob­lem of test­ing mul­ti­ple ver­sions of Internet Explorer on the same machine, for exam­ple, once you’ve installed IE8, you can test you site pretty reli­ably in IE8 mode, and IE7 mode. The Expression Web team has also just shipped a new tool called Super Preview that lets you see how a page would be ren­dered by IE6, IE7 and IE8. And of course, we still make the Virtual PC images avail­able, so you can test your pages in a true IE6, IE7 or IE8 environment.

3. What are some key areas you rec­om­mend devel­op­ers focus on when test­ing their sites in IE8 — have there been par­tic­u­lar gotchas show­ing up in your own test­ing, and reports from devel­op­ers to you? What things have you fixed that devel­op­ers have pre­vi­ously relied on being bro­ken (as part of var­i­ous hacks and so on)? If devel­op­ers have lim­ited time, and resources, where should they be focussing their com­pat­i­bil­ity efforts?

When devel­op­ers are test­ing their sites in Internet Explorer 8, they should focus their efforts on lay­out and ren­der­ing. Internet Explorer 8 ships with a new lay­out engine that we wrote from scratch, and we spent a lot of time mak­ing sure that it ren­dered accord­ing to the W3C CSS 2.1 spec. That means that in some cases, where we didn’t accu­rately fol­low the spec before, we do now, and that may cause some prob­lems. If devel­op­ers have lim­ited time, they have a cou­ple of options avail­able to them. First, they should look at their site in IE8, for the most part, sites will just work. If there are some odd­i­ties, there are a cou­ple of things that they can try. If the send dif­fer­ent CSS or HTML to Firefox vs. IE, they should try send­ing the Firefox con­tent to IE8 and see if that works. Another option that they have avail­able, if they don’t have the time to fix their site, they can use the X-​​UA-​​Compatible switch to force Internet Explorer 8 to use the IE7 ren­der­ing engine.

4. At a glance, the var­i­ous quirks and com­pat­i­bil­ity modes in IE8 (and of course other browsers) can be quite daunt­ing for devel­op­ers (out­side the “always up to date” devel­op­ers in my expe­ri­ence, the whole con­cept gets a bit of a “huh” from a lot of worka­day devel­op­ers I speak with). Is there a good one pager out there to help folks under­stand the com­pat­i­bil­ity matrix, in par­tic­u­lar, the new meta ele­ment approach to compatibility?

The best place for devel­op­ers to get infor­ma­tion about com­pat­i­bil­ity and all the dif­fer­ent modes is on the Compatibility Center at http://​msdn​.com/​i​e​c​o​m​pat For devel­op­ers, the impor­tant thing to under­stand is that Internet Explorer 8 ships with two ren­der­ing engines side by side; the IE7 engine and the new IE8, more stan­dards com­pli­ant engine, which is used by default. Developers can explic­itly choose which engine they want IE to use (quirks, IE7 or IE8) by using the X-​​UA-​​Compatible tag. If a devel­oper has a site, or set of pages that don’t ren­der well in IE8, and they either can’t or don’t have time to fix them, they can sim­ply add the IE=EmulateIE7 X-​​UA-​​Compatible switch to the page or server, and avoid mak­ing major changes.

5. There’s some con­cern being expressed by devel­op­ers that EmulateIE7 is not exactly the same as IE7’s ren­der­ing — is that so? And if so, how do they dif­fer, and how sig­nif­i­cant is this to developers?

EmulateIE7 is not truly equiv­a­lent to test­ing in IE7, but it’s pretty close. When build­ing Internet Explorer 8, we were able to ver­sion the lay­out and ren­der­ing engine, but it was imprac­ti­cal to ver­sion the entire end-​​to-​​end sys­tem; for exam­ple the net­work­ing stack, parser, secu­rity fixes, HiRes lay­out, JavaScript engine, some DOM APIs, etc… In prac­tice, though, we’ve found that IE8 Compatibility View works extremely well for most sites. For most cases, this should be enough, and for final ver­i­fi­ca­tion, we pro­vide the VPC images that you can down­load and test with a clean ver­sion of Internet Explorer 7.

6. Conditional com­ments — are these still an impor­tant tool from the per­spec­tive of the IE team for man­ag­ing com­pat­i­bil­ity, or in essence are they dep­re­cated going forward?

Conditional com­ments are the best way to sep­a­rate out tweaks and hacks for indi­vid­ual browsers or browser ver­sions. For exam­ple, if you cre­ate your site and find it works great in IE8, Firefox 3 and Safari 4, but there are a few minor tweaks you need to make for IE6 and IE7, we rec­om­mend that devel­op­ers use con­di­tional com­ments to sep­a­rate out those hacks for each ver­sion. Conditional com­ments aren’t going away and are an impor­tant part of ensur­ing that devel­op­ers have all of the tools they need to sup­port dif­fer­ent browsers and dif­fer­ent versions.

7. Since refo­cus­ing on IE with IE7, you guys seem to have been putting a lot of effort into bring­ing IE back up to speed, and help­ing make devel­op­ers lives eas­ier when it comes to tar­get­ing all web browsers — can we expect to see that going for­ward? Can you talk pub­licly about any areas of commitment?

I think with Internet Explorer 7, we showed our com­mit­ment to Internet Explorer, and build­ing a great browser. With Internet Explorer 8, we’ve cemented that by build­ing a great browser that includes a strong com­mit­ment to ensur­ing great stan­dards sup­port and inter­op­er­abil­ity. We have just started our plan­ning for the next release of Internet Explorer, but I think that the last two releases have laid out an excel­lent ground work for what we do in the future and our com­mit­ment to build­ing a fast, inter­op­er­a­ble, stan­dards com­pli­ant and inno­v­a­tive web browser.

Thanks PEte for your time.

Got any fol­low up ques­tions for PEte? I’m sure he’ll keep an eye on the com­ments here.

Your opinion:

XHTML: You're allowed to use these tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>