First of all, I’d like to introduce myself. My name is Chris Wilson; I’m the lead program manager for the web platform in IE. (I am NOT Chris Wilson the drummer for Good Charlotte. :^) ) I joined the IE team shortly before we shipped IE 2.0 in 1995, and worked in various releases for every major release from then until IE 6.0’s release in 2001. After IE 6.0 shipped, I worked on the Avalon project until I decided to rejoin the IE team four months ago. During my tenure on the IE team, I’ve frequently been Microsoft’s representative on various standards working groups in the W3C – CSS, HTML, Document Object Model, even the XSL and Internationalization groups for a while.
Over the course of my history in IE, I’ve witnessed Microsoft being both applauded and hated for our support for web standards, often in the same release. At times we have taken a leading role in standards support – and at times we have not. When we released Internet Explorer 3.0 for Windows back in 1996, we had the first CSS implementation out there in a mass-market web browser. (I personally wrote the code for that support.) We led that charge – our only major competitor at the time was still hacking in new HTML tags. We looked at the nascent CSS effort, said “hey that looks great,” and played a key role in getting the working group together and the spec under active development. We continue to participate in that working group effort to this day.
Additionally, with every subsequent major release of IE, we have expanded and improved our implementation of web standards, particularly CSS and HTML. When we shipped IE 6.0, we finally fully supported CSS 1, and had some pieces of CSS2 implemented as well. Since IE 6.0 shipped, we have focused on one of our other key problems – enhancing the security of the Internet Explorer platform. This has taken tremendous effort on our part, and was – IS – an important place for us to focus – but it will not be our only area of improvement in our engine. We know we have a lot more work to do in addressing our consistency issues with CSS and furthering our coverage of these standards. Expect to see more detail on our plans in IE7 in the future.
In this blog and elsewhere (including Gary Schare’s BetaNews interview), we have emphasized our commitment to compatibility. I want to address a common misinterpretation of that commitment – when we say we have a difficult challenge to change behavior (even under standards mode), we are not excusing ourselves from the need to make improvements. Given the strong usage of IE in the corporate space as well as embedded in applications, we have a strong requirement for backwards compatibility with our previous behavior, compliant or not; that requirement does not mean “don’t touch anything”, it is just a recognition that keeping our engine in sync across strict and quirks modes is challenging when quirks mode has to work nearly exactly the same as it always has. We will continue to improve our compliance under strict mode even when it breaks compatibility, and under quirks mode when it’s not damaging to our backwards compatibility.
Finally, I want you all to know that specific requests and descriptions of problems in the field help us tremendously in prioritizing what we need to do. There is some great work that has been done in harvesting the collective knowledge of the web development community, such as on quirksmode [edit: fixed link], meyerweb.com, CSSVault, glish and Position Is Everything. We pay a lot of attention to this kind of thoughtful insight into the biggest problems web developers face today. We’d like to encourage those facing real-world problems with the IE platform to participate in these kinds of efforts, so we can use this to help prioritize our development. By contrast, vague demands for open-ended “standards support”, or requests for various standards that aren’t (yet, at least) standards (there is no CSS3 standard yet, nor is XUL a standard), don’t really help us drive our development very much. Microsoft does respond to customer demand; web developers are our customers.