Standards and CSS in IE

IEBlog The Windows Internet Explorer Weblog

Standards and CSS in IE

I’m very happy that we’ve shipped IE 7 beta 1. I wanted to make it clear that we know Beta 1 makes little progress for web developers in improving our standards support, particularly in our CSS implementation. I feel badly about this, but we have been focused on how to get the most done overall for IE7, so due to our lead time for locking down beta releases and ramping up our team, we could not get a whole lot done in the platform in beta 1. However, I know this will be better in Beta 2 – and I want to share how we are placing our priorities in IE.

In the web platform team that I lead, our top priority is (and will likely always be) security – not just mechanical “fix buffer overruns” type stuff, but innovative stuff like the anti-phishing work and low-rights IE. For IE7 in particular, our next major priority is removing the biggest causes of difficulty for web developers. To that end, we’ve dug through a lot of sites detailing IE bugs that cause pain for web developers, like PositionIsEverything and Quirksmode, and categorized and investigated those issues; we’ve taken feedback from you directly (yes, we do read the responses to our blog posts) on what bugs affect you the most and what features you’d most like to see, and we’ve planned out what we can and can’t do in IE7.

In IE7, we will fix as many of the worst bugs that web developers hit as we can, and we will add the critical most-requested features from the standards as well. Though you won’t see (most of) these until Beta 2, we have already fixed the following bugs from PositionIsEverything and Quirksmode:

  • Peekaboo bug
  • Guillotine bug
  • Duplicate Character bug
  • Border Chaos
  • No Scroll bug
  • 3 Pixel Text Jog
  • Magic Creeping Text bug
  • Bottom Margin bug on Hover
  • Losing the ability to highlight text under the top border
  • IE/Win Line-height bug
  • Double Float Margin Bug
  • Quirky Percentages in IE
  • Duplicate indent
  • Moving viewport scrollbar outside HTML borders
  • 1 px border style
  • Disappearing List-background
  • Fix width:auto

In addition we’ve added support for the following

  • HTML 4.01 ABBR tag
  • Improved (though not yet perfect) <object> fallback
  • CSS 2.1 Selector support (child, adjacent, attribute, first-child etc.)
  • CSS 2.1 Fixed positioning
  • Alpha channel in PNG images
  • Fix :hover on all elements
  • Background-attachment: fixed on all elements not just body

I want to be clear that our intent is to build a platform that fully complies with the appropriate web standards, in particular CSS 2 ( 2.1, once it’s been Recommended). I think we will make a lot of progress against that in IE7 through our goal of removing the worst painful bugs that make our platform difficult to use for web developers.

In that vein, I’ve seen a lot of comments asking if we will pass the Acid2 browser test published by the Web Standards Project when IE7 ships. I’ll go ahead and relieve the suspense by saying we will not pass this test when IE7 ships. The original Acid Test tested only the CSS 1 box model, and actually became part of the W3C CSS1 Test Suite since it was a fairly narrow test – but the Acid 2 Test covers a wide set of functionality and standards, not just from CSS2.1 and HTML 4.01, selected by the authors as a “wish list” of features they’d like to have. It’s pointedly not a compliance test (from the Test Guide: “Acid2 does not guarantee conformance with any specification”). As a wish list, it is really important and useful to my team, but it isn’t even intended, in my understanding, as our priority list for IE7.

We fully recognize that IE is behind the game today in CSS support. We’ve dug through the Acid 2 Test and analyzed IE’s problems with the test in some great detail, and we’ve made sure the bugs and features are on our list - however, there are some fairly large and difficult features to implement, and they will not all sort to the top of the stack in IE7. I believe we are doing a much better service to web developers out there in IE7 by fixing our known bang-your-head-on-the-desk bugs and usability problems first, and prioritizing the most commonly-requested features based on all the feedback we've had.

I do want to be clear that I believe the Web Standards Project and my team has a common goal of making the lives of web developers better by improving standards support, and I’m excited that we’re working together to that end.

- Chris Wilson

  • I hope that you'll retain font embedding even if you're shooting for CSS 2.1 compliance.
  • Sounds great!
  • Out of curiosity (since I'm not familiar with the bug names you list), is something going to be done about the layering of DHTML popups over combo controls and the like. I'm sure you've seen it -- the controls in question live permanently in a layer above the pop-up, making for poor co-existance between DHTML menus and forms.
  • That's *fantastic* Chris! This is exactly the sort of post I've been hoping for ever since the IE Blog first started. Thank you!

    The selection of further support you have chosen seems reasonable enough, you've certainly covered the extremely annoying and incomprehensible bugs that tend to completely screw up a website.

    The major style thing that is currently lacking that is extremely useful and widely implemented is CSS tables. Would it be possible to implement those too? The major scripting thing would be the DOM event model. One extremely simple thing to add (i.e. a five minute job) would be the new media types for ECMAScript.

    > Background-attachment: fixed on all elements not just body

    This completes your support for CSS 1.0, doesn't it?

    > We’ve dug through the Acid 2 Test and analyzed IE’s problems with the test in some great detail, and we’ve made sure the bugs and features are on our list

    Would it be possible to make this list public?

    Please keep posting like this. It doesn't matter if it's merely to say "we definitely won't be implementing [x]", so long as we know one way or the other.
  • Just to add to my previous comment, if you implement the new ECMAScript media types, that means we can hide scripts from Internet Explorer 6 and below without any browser checking or non-standard hacks.
  • @Jim

    Yes, background-attachement: fixed was the last thing we were aware of. If you guys know of anything else missing form CSS1 please post it here.

    Thanks
    -- Markus
  • Markus,

    Just remembered a few things:

    Specificity is screwed up somewhere when dealing with lists. I never bothered to debug it fully, because I can usually work around it by cramming a load of specificity into the selectors I use. Are you aware of this issue?

    The forward-compatible parsing of CSS 1 requires you to ignore certain things in error conditions that you do not (or was this fixed in 6.0?).

    Stylesheets served as something other than text/css still get processed - although this is an HTTP bug, not a CSS bug per se. If you fix this, it would let us serve stylesheets to Internet Explorer 6.0 and below, but not Internet Explorer 7+.
  • Very encouraging.
  • Actually, Jim, I don't think I've ever seen a specificity problem with lists. If you can find an example, we can take a look.
  • I like those lists. No, I *really* like those lists. I hope they get bigger before beta 2.

    "In that vein, I’ve seen a lot of comments asking if we will pass the Acid2 browser test published by the Web Standards Project when IE7 ships. [....] As a wish list, it is really important and useful to my team, but it isn’t even intended, in my understanding, as our priority list for IE7."

    I think most, if not all, web developers won't have a problem with this. Recent Firefox nightlies don't render it right, so I don't honestly expect IE 7 to render it completely correct.
  • > Improved (though not yet perfect) <object> fallback

    One thing that the <object> element type doesn't really address is how to signal to the user that a fallback has been used.

    In some cases, an author would want to have a "silent" fallback, for example, where a video is available in Ogg Theora and MPEG formats.

    In other cases, an author would want some kind of "you aren't getting the best experience" notification, for example where a Flash presentation is available with a PNG screenshot fallback.

    Would it be possible to include some mechanism to allow authors to say which is more suitable? For example:

    <meta name="object-fallback" content="silent">

    In the cases where notification is suitable, you can put the notice in the yellow bar, and in the other cases, you can just silently use the fallback.

    Please do this in a way that doesn't conflict with valid code though, traditionally, you tend to do it in such a way as to make it impossible to use it in valid pages, e.g. invalid attributes.

    Exposing to scripts whether a fallback was used would also be useful.

    This is a wishlist item though, further HTML, CSS, DOM and HTTP improvements are far more welcome.
  • I would like to note, that I would like to see this in IE. The autoscroll image http://tinypic.com/9kxw83.png looks terrible, do you really think that looks like a final product? Also maybe some form of a download manager, or more than 2 downloads at once implemented? Some users live in a broadband world where you can handle more than 2 downloads!
  • Next time I run across the list specificity problem, I'll whip up a test case.
  • What about HTML q element? It should be very easy to support that.
  • Thank you. This is what I wanted to hear. Many of what I consider necessities are not mentioned on your list, but I'm much happier now that you're actually making progress.

    I do want to remind you guys, though, that IE won't be forgiven so easily. Many web developers think of Microsoft as a company who will do the bare minimum just to make their customers content enough to stay with them. So even if you do make considerable progress and bring IE near where other browsers are at, many of us will still question your long-term commitment. I would ask that you promise us that you won't let IE's standards support development ever fall stagnant like IE6 again, but I understand that, as a business, you aren't in much of a position to make such long-term promises. Instead, I just want you to keep it in mind: web developers don't trust Microsoft's commitment anymore, and unless you work your butt off to please them, they maybe never will. Doing a minimal job will not work this time.

    That said, I really hope to get a pleasant surprize come IE7. I'm personally sticking with Firefox, but as long as the majority population is using something that reasonably complies with standards, I'll be happy.
Page 1 of 47 (705 items) 12345»