Unbreaking the Web
Published 20 years, 2 weeks pastWhile I was in Florida with my family visiting both sets of parents, Tristan Nitot published an article titled “How Microsoft can support CSS2 without breaking the Web“. In it, Tristan points to a comment made by Gary Schare, Director of Windows Product Management at Microsoft, which was:
We could change the CSS support and many other standards elements within the browser rendering platform. But in doing so, we would also potentially break a lot of things.
(from Microsoft Windows Exec Talks IE, Firefox)
Tristan then goes on to refute this line of thinking. Generally speaking, I’m entirely in agreement with him. (As a disclaimer, Tristan and I worked together as members of the Netscape Standards Evangelism Team, and Tristan asked me for feedback on his article before it was published.)
Here’s the thing: in the Windows world, Explorer already significantly upgraded its standards support four different times. The most recent such upgrade was called IE6. That was the version that first added DOCTYPE switching to IE/Win. At that time, there were a great many changes made to the standards support, nearly every one for the better. For example, in standards mode, you could no longer throw around unitless numbers and have them interpreted as pixels, because that violated the CSS specification. You couldn’t set a height or width for an inline non-replaced element, because that too was incorrect. The interpretation of font-size
keywords was changed to reflect the CSS specification instead of the HTML font-sizing regime. The box model was altered to follow CSS instead of the old IE way. In short, there was all kinds of stuff in there that would “break a lot of things”.
The Web rather steadfastly declined to be broken. Oh, sure, there were pages whose layout was altered—not many, thanks to the way DOCTYPE switching was implemented, but they were out there. Anyone who was relying on the IE/Win way of doing things but used a DOCTYPE that triggered standards mode (say, for example, a HTML 4.01 Transitional DOCTYPE with URI) ended up with a “broken” page. These problems were fixed by their authors, and that was that. I remember a number of forum posts about how “IE6 broke my design”, and the posts that helped those authors address the problem. In the case of old, unmaintained pages, they stayed broken, but odds are that next to nobody cared. Regardless, it isn’t exactly a point of major concern on any radars I’ve seen in the last three years.
Furthermore, IE6 fixed a number of parsing bugs that existed in previous versions. One of those was the bug on which Tantek Çelik’s “Box Model Hack” depended. However, the parsing bug was fixed in both quirks and standards modes, so the BMH utterly failed to work in IE6 no matter what DOCTYPE you used. That actually did break quite a few layouts, if I remember correctly. I also remember the day I discovered that they’d fixed the parsing bug in both standards and quirks modes. I swore at my monitor for a moment, and then actually thought about it. I realized that the inconvenience of removing a few CSS hacks, or at worst changing to different hacks, was a pittance to pay in comparison to the advances IE6 had made in terms of increased standards support.
So I fixed a few style sheets, tossed a hack out of my mental toolbox, and got on with my life. I contend that exactly the same thing would happen if a service pack were to add increased standards support to IE.
This is particularly true given that most of what IE should add would be, well, additions. As in, things that IE doesn’t even try to support now, and so almost nobody uses them. Think generated content. Think attribute selectors. Think fixed positioning. These are all things that, if they were added to IE, would break almost no pages at all. In fact, they’d make a small number of pages work better in IE.
For that incredibly small number of pages that would break (for whatever value of “break” you care to name) with improved standards support in IE6, I’m willing to bet that nearly all of them would get fixed right away. Why? Because they would be pages maintained by authors who actually want to use standards and care about doing things right.
Now, there is one area where I think the IE team would have to be careful about adding support, and that’s selectors. A lot of hide-from-IE CSS hacks these days are based on its failure to support the child selector; in fact, I use these a few places in the S5 style sheets. It is possible that adding support for child selectors to IE6 would be more harmful than beneficial. I say it’s possible because I don’t know. Nobody does—but Microsoft of all organizations has the ability to find out, and to act accordingly. They have the funding, the personnel, the skills, and the customer base. As Tristan said:
In its short, 2 1/2 year life, the Netscape Evangelism team helped literally thousands of authors and administrators of web sites around the world to improve their support for the W3C DOM and CSS Standards. If such a small group with limited resources can help change the web, imagine what Microsoft could do with its resources if it only tried.
Indeed.
Granted, the net stands still for no one, not even Microsoft. There have already been, and continue to be, efforts to graft better standards support onto IE despite itself: projects like PNG transparency fixes, whatever:hover, and IE7 take Microsoft’s proprietary behaviors and use them to make it easier to use open standards. (I adore the poetry of that.) The people behind those projects are already doing what Microsoft is apparently afraid to do, and they demonstrate why improving standards does not mean breaking the Web.
There’s one other point to consider. If IE/Win improved its standards support in any meaningful way, believe me when I say that the news would be shouted from the Web site of every standards advocate in the known universe. Nobody responsible for standards-oriented pages could avoid hearing about it. Any problems would be quickly explained, and adjustments made. Life would not only go on, but be better for developers and designers.
To sum up: the “more standards will break stuff” argument just doesn’t fly any more. Microsoft can figure out what to do that won’t break pages, and there’s a ton of things that are new-to-IE, the implementation of which will no more break pages than did the image toolbar. In cases that might cause breakage, Microsoft can determine—with community help, if they were to ask for it—how to minimize breakage while maximizing benefit. To claim that possible Web page breakage prevents Microsoft from increasing standards support makes about as much sense as to claim that possible program breakage prevents them from ever changing or improving their operating system.
Despite this, I don’t have much hope that we’ll see any improvements before Longhorn debuts. I think that’s a shame, because I remember when the IE team was gung-ho about standards. There were a number of very smart people who understood why standards were important, and were committed to doing their best to support standards in IE—not just on the Macintosh, but for Windows as well.
I do hope for Microsoft’s sake that those days return. Because the Web continues to move, and if they just stand there promising that everything will be better in Longhorn, they may well find themselves left behind.
Comments (40)
Pingback ::
Markus Weimer Online » Blog Archive » Eric Meyer on standards-support in Internet Explorer
[…] Eric Meyer on standards-support in Internet Explorer Eric Meyer has a nice article on his site where he argues that adding better standards support to […]
Pingback ::
Outwardly Normal 2
[…] 02 December 2004
Unbreaking the Web [Eric Meyer]
1:24:39 PM comment(comment […]
Hi :)
Once I read that they don’t matter to work on Standards because still there are a lot of users that use old version of Internet Explorer so, in their opinion, these improvements aren’t usefull for web designers.
In my opinion is the same if we say: “well now we don’t develope Microsoft Windows Xp because there are a lot of people already using Windows 98 or earlier versions”
I hope they change their opinion about Standards.
Excuse me for my English if I made some mistakes,
bye
bogyit
My question to them is “so what?”. So what if it breaks a few sites. The web has always been about innovation and keeping up with “The Joneses”, so why is that progress halting all of the sudden? If pages break, people will fix them. That’s what they’re there for, right? And they’ve been catering specifically to IE for so long that they should be used to it. /rant.
If people choose write pages for the quirks of one particular browser they can’t complain when it doesn’t work in a different or updated version. It was their choice to code for a browser and not a standard.
Hear, hear. Code for standards, don’t code for browsers. Site developers, web authors, repeat that mantra every day please…
The bottom line is the only thing that could possibly break are hacks. Hacks were made to be broken. Every one of us who uses hacks in our CSS do so with the knowledge that one day they may be broken. In fact, we do so with the hope that one day they’ll be broken.
Hell, if Microsoft did nothing more than give me whatever:hover and alpha PNG support, I’d be jumping up and down. And that wouldn’t break a darn thing…
I only have one thing to say: Don’t get your hopes up. I’d bet every IE hack in my toolbox that the next version of IE will add dozens (if not hundreds) of proprietary, non-standard “extensions” to HTML and CSS, add support for existing standards in name only (i.e. support for generated content, but in a way that is not quite compatible with the spec), and generally make life more, and not less difficult for web developers.
This obviously isn’t what I want, but, like the man said, when you’re an 800 pound gorilla, you sit wherever the hell you want to. Microsoft could easily support web standards if they wanted to, but I see no reason for them to do so, and nothing in their track record to indicate that Microsoft management has an ounce of altruism.
Anything Microsoft does with IE has one, and only one goal: “a computer in every home… running Windows”.
Eigth paragraph down: thank should read think.
I hope they fix it… If they did the web would clearly be cooler. And be more fun to use.
Thanks Eric. Needless to say that I agree 100% with you. The “more standards will break stuff” argument just doesn’t fly any more. ‘Nuff said!
I find it somewhat curious that this attitude is considered valid by Microsoft with regard to an “open” web, yet not to their “closed” MS Office products. Since when have they cared about breaking backwards compatability with THAT software?
And that’s something which may be considered completely within Microsoft’s control, in that they are responsible for the production of authoring tools, and the specification!
This apparent contradiction is… mildly amusing, at least to me…
Funny that they are suddenly affraid of breaking the web by adding standards support. I vividly remember that in order to fix a spoofing fulnerability, a ‘security patch’ was released that removed a standard, thus breaking links and functionality. So instead of accually fixing their browser they just took functionality out. How then would they now suddenly feel uneasy at the prospect of making their product better while at the same time possibly braking a few sites, at least this time it will have a positive cause, with a mostly quite positive effect.
Trackback ::
Markus Weimer Online
Eric Meyer on standards-support in Internet Explorer
Eric Meyer has a nice article on his site where he argues that adding better standards support to Internet Explorer might break to many websites to make it worthwhile. Worth reading.
Eric,
Exquisitely articulate! Well done! I wish half — no, make that a mere 10% — of the coders (and/or great kahunas) at Microsoft would read this article and actually take it to heart; you never know… we might finally get through to them! Thank you!
Trackback ::
exclipy!
Standards Harmful Nonsense
Eric Meyer has attacked Microsoft’s notion that if they support standards properly in IE, it’ll break existing websites, and I am in full agreement. This has always been my stance: Microsoft, and I, know fully well that they are in…
Trackback ::
Erics Weblog
Wenn Microsoft nur wollte…
könnten sie Standards in ihren Browser integrieren, so Tristan Nitot, der Präsident von Mozilla Europe. Aber Microsoft will gar keine Standards unterstützen:
We could change the CSS support and many other standards elements within …
Microsoft’s arguement is ridiculous.
They’re saying – we are the old crappy browser. So many people have had to work-around our crap that by making it work right will screw things up.
What a poor position to be in.
I imagine that MS is much more concerned with big “partners” then us little guys. At my old job we had this muli-million-dollar web-based app that we purchased from a vendor. They were a “partner” with MS and they app was coded heavily towards IE6 and only worked in IE6.
This partner has sold this app to a bunch of companies. If MS fixes IE, then the partner’s app goes broken, and MS gets a phone call from someone they might actually care about it.
I’ve read both Eric’s and Tristan’s articles – and basically I agree. But I think one important point is missing, if the premise “IE can be improved in regards to css etc. without major problems for existing web sites” should hold.
An update to IE that i.e. incorporates position: fixed or css2 selectors must be separable from earlier versions. Eric states that the few pages that would break after an update, would be fixed by their web designers quickly, because they would be pages maintained by authors who actually want to use standards and care about doing things right. I agree – but if the fix isn’t supposed to break the site for those users that hasn’t upgraded IE, the webdesigner needs something to distinguish the update from its predecessor.
This might not be easy without introducing new problems. A lot of web designers use conditional comments to fix IE-specific problems. A version change – i.e. to 6.1 – would enable them to continue with that approach – but I don’t think Microsoft wants to introduce a new version if the only improvements were “hidden” for the vast majority of the users (as css improvements in the layout engine is).
Another tricky part is whether the bug in IE’s doctype switch – the one that sends IE to quirks mode for any doctype if it finds markup (either a comment or an xml-declaration) before the doctype. A lot of pages makes use of this behaviour – i.e. to trigger quirks mode in an xhtml-document. Other pages – where the designers are not aware of doctype swithing – displays awfully in modern browsers, because they trigger quirks mode on IE but trigger standard mode in all modern browsers.
I too hope that IE will be updated in regards to css – and I believe that Microsoft should do a lot more to advertise an open web. I just think we need to remember that an update wont magically solve our IE problems as web designers – it will just add another version of IE that we have to test and check our sites with.
Regards
Jens, Denmark.
And another thing: Windows XP SP2 broke a LOT of things on a lot of pages with various changes for security. Why is it that this breaking of pages is OK, but standards are not worth breaking a small minority of pages for. If web designers code for Mozilla (and many do) then IE 6.5 (or whatever they might call an interem release) should work if it supports standards.
If Microsoft ever makes IE7 and adds proper CSS2.1 support, there is not a single thing that would stay broken forever.
Jens, the solution you are looking for is conditional comments. Supported only by Win IE, they present the perfect solution for separating IE6- code from the rest of the crowd.
Inline hacks like * html XX are good, but somewhat hard to manage. They change the specificity of the selector and are applied by IE/Mac as well. With cond. comments, this does not happend. They greatly simplify the conquering of IE/Mac.
I expect MS to retain them in all future versions, so I think that any broken page can easily be ammended, no matter what they do.
Just as long they do something.
If only that was possible. Everything I code ends up being tweaked to work in the main browsers – it’s almost impossible to ignore the variety of layout bugs that can (in IE6’s case) literally make your content disappear if you just code to the standards alone. A hack can be something as simple as putting unneeded borders or 1% height on things just to force IE into “hasLayout” mode where it behaves. Firefox and Opera and Safari aren’t free from bugs that need workarounds either.
The utopia of just writing standards code and not catering to browsers would only come true if everyone was on desktop internet devices only (no mobiles or PDAs etc) running the same rendering engine. That is most unlikely to happen, sadly. Each browser uses a different engine. Even if you only had one, when it was upgraded things would still potentially change with your layout! All this is what makes designing pages so tough.
Good points. Except I don’t think Microsoft should hold back support for child selectors just because a (relatively) small number of web authors use them as hacks. That would be very silly.
Regarding having to fix would-be broken pages: If a child selector was used to apply an “effect” which only a “true” CSS-compliant hero (sorry, I mean browser) would know how to anyway, there’s nothing to fix, right? The updated parser obeys the Cascade, and applies the great stuff – leaving the crippled rule behind for good.
Problems only occur where a child selector (or other hack/filter) is used to apply proprietary stuff that will never work in said browser… (can’t even think of an example right now) and then — deep down — you already knew you had to change it someday, right? :-)
You’re absolutely right there Eric! However, the “browser wars” are over. And as long as IE has the highest market share I don’t see anything being done to add standards support to IE.
Also, all IE dev’s are assigned to the Longhorn development line which is the main reason why IE doesn’t get updated. You never know, maybe they’re implementing CSS3 support already 8O.
XP SP2 broke a lot of web sites. So they are happy to do it in the name of security, why not standards??
IE has cost me and my clients lots of money in unwarranted development trying to cater to its bad support for standards. Imagine how much in total for all the standards designers. IE is indeed holding back the web and at this point I could care less if they fix it or not. At the rate things are going Firefox will rule the web pretty soon anyway. I operate a non-tech oriented site and in the past few months the browser share for Firefox and Mozilla has shot up to 18%. It was hovering around 1% about six months ago. Those numbers are nothing to sniff at. It means that a real revolution is occuring at the level of the average user. I say to Microsoft: put up or shut up! You have already been left in the dust!
Imagine, in say, a year’s time when IE decides to release a patch supporting CSS2 and PNG. The real developers/designers as whole will probably say: “Ya, so! Who the hell cares!” The bulk of their visitors will have been surfing with Firefox for a long time by then anyway.
Adding proper CSS 2.1 support to a new or upgraded or patched version of IE would only make designing more complicated. The new bugs that would undoubtedly be introducted would call for new hacks that may foul up older IEs. Plus, only users who upgrade will receive the added benefit. If designers remove the old hacks, IE 5, 5.5, and 6 users will be greeted by the broken design that the designer was trying to avoid, but who can say whether a new version would fall to the hack or rise above it. So, although I agree with Eric in adding CSS 2.1 support to IE, Gary Schare is right that it would “break a lot of things.”
Why would you have to remove the old hacks? Are those versions going to disappear all of a sudden?
IMO, that’s not silly at all; the thing is to implement child selectors after fixing all the other bugs. :-)
I don’t think Microsoft cares about breaking sites on the Web. The reason they don’t want to fix IE is because the feel it isn’t in their own self interest to do so.
Fixing IE will do a few thing which Microsoft does care about:
If they fix IE they would be admitting the current version of IE is broken. Microsoft still won’t admit this, or at best, they downplay it.
If they fix IE they’ll also need to fix all the tools which produce broken mark-up, such as FrontPage, Word, and Visual Studio.
Finally, if they fix IE they may break some intranet sites. This Microsoft really does care about. Microsoft has downplayed Firefox’s continuously increasing market share by saying how it still has the corporate inrtanet market cornered. The funny thing is that they are starting to loose marked share here, too, but it has nothing to do with IE at all. That’s because they’re starting to loose OS market share to Linux and Linux doesn’t run IE (but it does run Firefox).
Hi Eric, I agree with most of what you say. I especially agree on the IE Development Team moving forward with standards. Once thats done, game over. In fact, I did read that the IE team did me this past summer and that its likely that IE 7 (which as I understand it, wont be released till possibly 2006 with Longhorn/Avalon) will support web standards. Who knows, though. If thye do, I expect they will still maintain some kind of “multi-level” standards support in the agent, where, depending on type of doctype, absence of, etc., the browser will display a certain way and revert to some kind of older version or mode. Im sure this will translate into support for XHTML 1.1-2, CSS 3, and then quirksmode and transitional docs supporting the old IE 6 way, and maybe a third mode. Again, who knows, but that seems like a likely scenario. Overall, I think its likely they will not drop the ball on standards though when IE 7 is released, but it is likely that IE 7, because its the FIRST MS release of a standards-based agent, may have some short-comings. (just look at Safari and Opera!). So, some problems I expect for some years ahead. We all will still have to hack for IE 6 and its problems after 2006 and IE7, as has occurred with IE 5.5, which is dying a very slow death it appears. So, again, prepare for hacks and fixes in IE for some years to come. For example, the non-support of min-height in IE 6 will be a thorn in our sides for some years to come, it appears, based on the long lag of continued browser popularity and use world-wide I would expect for that browser, even after IE 7’s release. Thats sad, but I guess reality.
Incidentally, you guys can login and post comments to the IE team at channel9.msdn.com – Microsoft’s attempt to open up development of future releases much like Linux and Mozilla have done – and leave your opinions about IE if you like to the developers.
But, I think when the move happens, it wont be for some time, and there will be some minor shuffling of site code when it does, depending on your personal hacking strategy. I started applying styles for IE 6, then hacks for Mozilla. Ive since reversed that practice, and I think as long as your hacks and fixes apply to IE 6 in your code, you will be ahead opf the game. I know for one, I do use the child selector rule to separate IE ffrom Mozilla at times, and once or if thats “fixed” in IE, if they miss a standard, so will my code. Otherwise, if the hack and property works, we are all good to go with no changes. But like you say, browsers have been evolving since the 90’s, so there really is no argument in any form about worrying about breaking web sites. Especially with the standards/quirksmode design IE now carries. They are giving us as much flexibility as possible and Im sure will build on that concept in future versions.
Lastly, I could be wrong on this Eric, but I just tested some pages with XHTML doctype-transitional, and when I remove that and revert from standard to quirks mode in IE 6, the box model is not fixed as you describe, and IE does seem to revert to the broken IE 5.5 box model. Please run a test and verify….I could be wrong on that.
Thanks for the great body of work!
-Mitchell http://www.stormdetector.com
Eric did say that
I suppose he may have been refering to a mindset shift rather than a stylesheet change though.
I’m also guessing that a new IE may be tripped up by an old hack and at the same time support the intended behavior. Admitedly a leap, but from past experience, not a large one.
Why don’t Microsoft cut there losses and come up with a partnership with Firefox or something!?
Everybody will be happy!
The real reason that Microsoft doesn’t want to fix IE is because they dropped out of the standards groups and they have other plans with IE 7 in Longhorn. The IE 6 team most likely isn’t even allowed to make updated changes to IE 6, they are only allowed to fix security bugs. They aren’t worried because they figure that they are the standard and that with the next version of IE everyone will want to switch to their standards. If you look at the dev site where Microsoft shows you videos of Longhorn you can see that they are integrating all this junk into IE 7. What they didn’t expect was Firefox and that is going to screw up their plans.
Mitchell said:
Mitchell, I think you’ve got the wrong end of the stick here. With IE6 in quirks mode, the box model deliberately remains broken compared with standards mode (it’s kind of the point of quirks mode).
What has been fixed in quirks mode is a bug which was exploited in the ‘Box Model Hack’, so-called because it was used to get around IE5’s broken box model. It is this bug to which Eric was referring – because the bug the hack depended on is now fixed, the hack no longer works.
Eric,
Firstly I’d like to thank you for being at the forefront of helping less-advanced web developers (like myself) to come to grips with standards in the real world. I had been building websites on and off since around ’96 using tables, spacer gifs and the like for layout. It was really very exciting to discover that CSS and semantic markup could finally be used to some effect. A very interesting article.
Personally I’d like to see IE clean up it’s act in regards to CSS regardless of the consequences. If I have to fix a few pages here and there to make them display the way I intended because of changes in IE’s display engine, so be it.
Finally, I am looking forward to IE7 and all it’s ‘features’/bugs.
Regards;
Poncho
If they REALLY make it standards compliant it won’t even break pages with “hacks”, it would render them as any other browser: properly.
M$ SHOULD be concerned about standards in their quest for world domination. More and more people dislike M$, authors for having to code twice (and debug 10 times too much) and users for having their systems compromized (again and again).
Trackback ::
Mika Jarvinen
Legion 88
Eric’s Archived Though…
Trackback ::
Mika Jarvinen
Legion 88
Eric’s Archived Though…