Yesterday I interviewed Microsoft's Chris Wilson, the Group Program Manager for IE, to address the issue of whether Microsoft's latest web browser IE7 is - and will be - CSS and Web standards compliant. This was a controversial topic last week, when a Slashdot thread claimed that IE7 was basically non-compliant with CSS standards. I repeated those claims on my ZDNet blog - in retrospect a little hastily. Chris Wilson responded to the Slashdot thread in his blog, noting among other things that it was based on an article Paul Thurrott wrote in August 2005.
So to clarify the CSS and standards support of IE7, Chris Wilson agreed to discuss this issue with me over the phone. This post is a transcription of the main parts of our conversation.
Richard: Where is IE7 at in terms of CSS compliance - and where it is heading?
Chris: Well as you saw I got a little frustrated with the Slashdot post. But aside from the issue "Standards improvements [...] was really the largest focus of our platform work overall." of Paul Thurrott's old post getting picked up and people hadn't seen his newer ones - which have actually said in essence that he thinks we're going in the right direction. When he wrote that original post, we had just released IE7 Beta 1 and we had few of these platform changes in IE7 Beta 1. I think we did transparent PNG images, but that was really the only thing that we changed in the platform - we'd done a bunch of user experience stuff. But one of the things that pushed my buttons was that we'd done quite a bit of work in the standards improvement in our platform. In fact really our platform, other than doing security work and some supporting work for user experience (things like improving our printing support and implementing the zoom feature), we really only did standards improvements - particularly CSS and HTML improvements. That was really the largest focus of our platform work overall. And I think that not adding any proprietary features in was probably something that was a little different from our previous releases. But we certainly spent a bunch of work trying to improve our standards support.
One of the things I said in my post is that I think it's very difficult, if not impossible, to have an analysis of exactly where we are as a number with supporting or complying with CSS - given that there isn't an official test suite that exhaustively tests whether you comply with the standard or not. And any analysis you can do is going to be somewhat biased.
I think that we really have made some great improvements "There were a ton of bugs from IE6 that were causing web developers a lot of pain - and we really wanted to nail those and the most requested features upfront." in our standards support in IE7. The target for that was not just passing any one particular test. For example Paul Thurrott's old post talked about when I said on the IE Blog that in IE7 we were not going to pass the Acid2 test that The Web Standards Project did. [That] was largely because although it's a great set of things to be testing, some of the features on that list weren't going to go to the top of our list. We're trying to improve the world for web developers and when we looked at what people were saying they wanted us to do, there were a ton of bugs that were causing web developers a lot of pain, from IE6 - and we really wanted to nail those and the most requested features upfront. And I'm actually really proud and very pleased with what we've managed to get accomplished in IE7. It's actually a little more than I expected when we set out to do this. But having said that, I do have to say we've got a lot more work to do after that. We've been plotting out the next couple of releases of IE - and I certainly don't think that we're done with improving web standards support at all.
Richard: You're now at IE7 Beta 3, so in terms of CSS compliance where is IE7 Beta 3... where would you put your progress at so far? About halfway where you want it to be, or three quarters of the way there?
Chris: Tough question, in terms of stating that we really do fully support the CSS 2.1 spec, it's hard to tell because there is a bias to any analysis. We're certainly somewhere between those two... I don't think we're at 90%, I think we're above 50% though - and again, it really depends on how you end up weighing things. The problem is, if I gave any number I'd really want to support how I came up with that number - and I don't have a great way to do that today.
Richard: The goal with IE7 obviously is to fix a lot of the CSS rendering bugs that afflict IE6 and some of those earlier browsers - so I guess the question is when do you think IE7 will take over the IE6 browser as the most popular IE version - because currently web designers still have to code for IE6 (if they're after a mainstream audience).
Chris: Bear in mind that anything I say here is completely crystal ball predictions... but when The automatic updates feature will increase the adoption rate you look at past adoption of releases of IE, it's been relatively slow to take over. I think the announcement we made a month or so ago that IE7 is going to be an important update in the automatic updates feature. This means it'll actually show up for everyone's [Windows] computer. It won't automatically install behind the scenes or anything, because it is going to change your user experience of the Internet quite a bit. But my mother's machine is going to be automatically updated - it's going to pop up with a dialog that says 'hey, there's a new version of IE - do you want to install this?'. And that's different from the past. I think that's going to increase the adoption rate quite a bit. There are certainly still users out there with systems that we don't support with IE7 and that's going to be a bit of a problem. But in reality I think those segments are going to be smaller and smaller over time also.
Richard: Leading on from that question is the issue of backwards compatibility for IE7, which is obviously a big issue for Microsoft. So in terms of supporting both web standards that the W3C puts out out and also supporting the behavior of IE6 and older IE browsers... how much of a challenge is that for you and do you think you'll be able to juggle those - in some ways competing - issues?
Chris: I think backwards compatibility has always been a big challenge for us and certainly today it's a huge challenge. Particularly for IE, as we have a lot of what I'd term 'non-enthusiast users' - my mother is always my canonical example here. And for my mother, if I automatically upgrade her machine [its IE browser] and suddenly one of her sites breaks or looks a little funny, she's going to be upset about that. On the other hand if she were to install an alternative browser, and it looks different in that browser - she could probably understand why that would happen, because it's a completely different product.
Plus a lot of sites tend to break things down by different browser and give different style sheets, or have different scripts that address those. There are a lot of problems we've tried to work around. Certainly the Quirks mode vs Standards mode switch that we have (and have had since IE6) helps us a lot in that... although we're starting to see a lot more of the top sites actually are in strict standards compliance mode, they actually have a doc type and we understand it and everything. And that makes it even more challenging, because of course those are the most important sites to make sure that you're getting right.
Richard: One of the comments in the Slashdot thread said that backwards compatibility "is pretty important to Microsoft, which is why they are still using their older rendering engine instead of replacing it with something better. They can't make big changes because they are afraid they'll break things."
Is that basically the situation, that you can't create a new rendering engine because it'll break previous IE browser versions?
Chris: I don't actually think it's true that we can't create a new rendering engine. There are a couple of responses I'd make to that. One is that although it certainly "The rendering [of Trident] and the layout is something that we'll continue to iterate on." has a set of bugs in it as well, there are a lot of things that our rendering engine does quite well. In fact does extremely well. One thing that the Trident engine that underlies Internet Explorer has had for many releases is editing support. A number of products have been built on top of this editing support in the past and it's quite a strong piece of our underlying infrastructure. The rendering itself, and the layout itself, is something that we'll continue to iterate on. And it's possible that we'll replace it with a different engine even, at that level, although that's not replacing the entire dynamic HTML engine - it's replacing just a piece of it. The hard part is that the baseline for what you need to support for that rendering engine is actually quite large. It's clear just from how long it took the Mozilla guys to build up their Gecko engine - that wasn't something that they did in a year or two years. I think it took them 5 years before they actually did a first release of the Gecko engine in the key Web browsers. It's one of the things that dragged out the Netscape 4 adoption for a long time.
Richard: To clarify then, you're saying that with IE7 you're hoping to support as many of the CSS Web standards as possible, while also having that backwards compatibility. That's your vision for IE7, to definitely support Web standards?
Chris: Absolutely, in IE7 we really are trying to "In IE7 we really are trying to support Web standards. Even at the expense of more backwards compatibility..." support Web standards. Even really at the expense of more backwards compatibility than we've ever done in the past. But backwards compatibility is still pretty critical for us, because of our user base. One of the things that we've been doing for some time now has been approaching a lot of the web development community and in particular site authors directly even, and saying: we found that there's a problem with your web site when you use IE7, and it's because of a standards improvement that we've done - here are the details of it. Also here's a set of tools that you can go and analyze your site with and figure out what sort of CSS hacks, and that sort of thing, you're using to work around IE6 problems from before. And then you'll know how to fix them to work with IE7 and its better standards compliance.
That wraps up the interview in terms of CSS and standards compliance. I also discussed with Chris the future of IE and browsers in general, similar to my interview with Flock's Geoffrey Arone, but I'll post that another time.