Exploring Better Standards Support
Published 19 years, 8 months pastWhile I was preparing for SXSW, Chris Wilson—and there’s a name that takes me back a few years—posted an entry on IEblog about standards. I’m not going to excerpt any of it here because most of you have already read it. For the rest of you, go read it. As long as you don’t continue into the comments, it won’t take very long.
First off, let me say that I’ve known Chris for many years, and we get along great together. I have a lot of respect for him, and I firmly believe the feeling is mutual. He did incredible work in the very early years of CSS, and while some of that work may seem lacking when viewed in light of later implementations, it was that all-important first step on the journey of a thousand miles. If I ever make it to Seattle with a couple of days to spare, he’s right near the top of a pretty short list of people I’d do my utmost to find time to see while I was there. (I just added another person to that list a couple of days ago, actually, but that’s a story for another time.)
With a paragraph like that, you probably think I’m going to tear into him now. Nope.
I’m posting my thoughts on this for three reasons.
- Chris was nice enough to name-check meyerweb as a site that’s helped “[harvest] the collective knowledge of the web development community” with regard to standards. If nominations were being taken, I’d point to the css-discuss wiki before I would meyerweb, but nevertheless I’d like to think I’ve earned a place on that list—and I’m glad that Chris thinks so too.
- Some of my writing from the post “Unbreaking the Web” was quoted in a comment by Thomas Tallyce.
- The 800-pound gorilla is stirring. It’s hard not to share a few observations.
So as Chris points out, the IE team faces an enormous challenge. This is compounded by the enormous loss of IE developers over the past few years. Think about it. Would you work on a project that was the legal and administrative equivalent of a toxic cloud? Internet Explorer is the focal point of dozens of lawsuits, antitrust litigation, and more. It’s a project straitjacketed by its own success (however rightly or wrongly that success was achieved). I don’t have any direct knowledge of this, but the IE team has probably become the Marie Celeste of Microsoft, a doomed wanderer of the bureaucratic seas, staffed by a few trapped souls and the subject of whispered tales of horror among the engineers.
( “And there… dangling from the door handle… was a scripting hook!” )
Despite this recent legacy of pariahship, it would seem that resources are gathering behind Explorer, and not just on the security front. Chris says, and I have no reason to doubt him, that plans are afoot to add standards support to Explorer. My concern is over the fate of those plans, because the best-laid plans… you know. No matter how much the engineering team might want something, if their irresistible geek force encounters an immovable administrative object, well, my money’s on the object. The only hope is to interpret the object as damage and route around it, which is usually a lot harder to accomplish in a bureaucracy than it is in a network topology.
Chris’ post makes it very clear that backwards compatibility will not be sacrificed, at least in quirks mode. I wrote some thoughts along those lines in “Unbreaking the Web“, so I won’t repeat them here. In summary: improving standards support will not break the Web. It won’t even break the vast majority of sites, and any sites that do break will get sorted out in short order. With a public beta, those problems could be identified and solved well before the browser went final. Backwards compatibility is no longer a reasonable excuse for avoiding standards support.
And then there are the resource limitations. It’s hard to think of anything Microsoft does as lacking in resources, but just as there are hungry people in America, there are starving programs within Microsoft. I believe that, for some time now, the IE project has been living on a sub-subsistence diet. It will probably be hard to attract people to help feed it. The staffing requirements for regression testing alone would be daunting. I don’t envy the IE managers their task—all the more so because no matter what they do, it won’t be enough for some people. They’re going to get slammed. Their only real choice is in trying to pick the things for which they’ll be slammed less. If improving standards support in IE isn’t a corporate (or divisional) priority, they’re in for a world of hurt. Which is why I sincerely hope they’re a priority.
But neither is that a complete excuse. Working for a firm like Microsoft means taking on massive challenges, doing more than you thought possible with less than you should have available, pulling long hours and pounding your head against a wall in order to do the apparently impossible. That’s part of the job description, and being there is pretty much a matter of choice. I say this isn’t a complete excuse because, obviously, any given team can only accomplish so much. It just isn’t a “get out of jail free” card. If you’re going to tell us that standards are important and that support will be improved, it has to be a notable degree. There has to be evidence that a lot of work went into adding a lot of useful things, and fixing a lot of old problems. Again, this is because the promise was freely made, not because it’s what the Web Gods demand.
We all, and by that I mean “us Web designers and developers”, need to stay involved in this conversation. It’s easy to post a few thoughts, assume that they’ve been ignored, and let things drift. It’s also easy to assume that the entire IE team read your ideas and immediately agreed to every single last one of them because they’re so blindingly obviously critical, and then get completely enraged when they don’t show up in the final product. I for one plan to keep an eye on this situation, and to think about ways I could help the IE team.
Because if I truly care about standards—and I do—then I owe the IE team as much as I’ve given to the teams working on Firefox, Safari, Opera, and all the rest. We all do. Whatever we would have done for the least of these our browsers in the name of advancing standards support, we owe the Explorer team no less.
Chris did ask for specific requests, so here are my top ten CSS requests in priority order:
- Support all selectors—including CSS3 selectors, which I believe are stable enough to be implemented
- Clean up positioning and add fixed positioning
- Clean up floating/clearing
- min-/max-width/height (got that?)
- Fix problems with inline layout, especially the handling of top and bottom padding and margins on inline elements
- Arbitrary-element hover
- Focus styling for form elements
- Better printing support, including better page-break control and page orientation
- Support CSS table styling, including the table-centered
display
values - Support generated content
…plus the unranked but still very important “fix bugs! fix bugs! fix bugs!”.
Did I miss anything important, or under- or over-value anything, on that CSS list? Let us know.
Comments (44)
I belive that if they do go and fix alot of the bugs, they should also go fix some of the hacks, so the “sites” will still look good in older versions of IE, but IE7 will ignore those hacks, I use the “* html” hack quite a bit in my adventures and I am afraid that quite a bit of work might have to be done if IE7 fixes the padding/margin issues but does not fix the * html hack.
I can’t tell whether #9 refers to display: table-cell or not, but that should definitely be in there so we don’t have to hack floats or use positioning to get side-by-side columns.
Can’t you sum the list up by saying “CSS 2.1 compliance + CSS 3 selectors”?
Eric, your list makes comprehensive and succinct reading — I can’t think of anything that takes equal or higher priority than the 10 items (OK, 11 ;) points you’ve made.
Having been guilty of “IE Hate” in the past, I really want IE 7 to succeed — from a slefish stand-point it will ease the daily testing grind, but it will also better enable and further enhance so many people’s online experience.
And that’s an aspect that should appeal to any developer who cares about his audience, isn’t it?
I think that it is admirable that you’ve written this defence of individual Microsoft employees. However, they are being paid by Microsoft. I would imagine that their salaries are far more that your average reader could ever hope to earn. If you take the money you gotta take the flak too. It’s a tough old world. ;-)
Your wish list is pretty good. It is one of hundreds however. Perhaps some standards luminaries (such as yourelf) should collarborate on a prioritised master-list and publish it on webstandards.org.
I’m not sure if you missed anything on the CSS list, but unless the HTML rec is fully supported, it will continue to negatively effect CSS (ie, there’s no Q element support in IE).
As duff is, I’m really worried about the bugs/hack balance. I think one of the worse thing that could happen would be implementing * html or !important but not correcting the rendering flaws we address using these hacks.
Why are we having to choose the best bits of a five year old specification? Isn’t it blatently obvious what web developers want? Isn’t it the same as we’ve been asking for years? Isn’t it the same as what every other browser manufacturer has managed to implement in the last few years?
We want full CSS 2.1 support. Complete, and correct CSS 2.1 support. Nothing more, nothing less. It’s really not that difficult a choice to make – you look at what standards are current, how the vast majority of your competition comply with the vast majority of the specification, then you comply with the specification to a higher and more correct degree (if possible).
I don’t want to choose a couple of toppings for my cake when every other cake in the shop has all of the toppings!
Also, I agree with Dean. Despite the fact that complete, correct and full support for CSS 2.1 is the obvious choice, I can imagain that’s not what we’ll get. The fragmentation of the ‘pick of the bunch’ CSS we’d like isn’t a good thing. A centeralised and somewhat more authoratative list would possibly be a better solution than every web designer and his dog publishing their own list on their own blog.
I think before even CSS3 selectors, proper PNG support would be huge. Granted, this isn’t a CSS issue, but lacking PNG support limits what we can accomplish with CSS.
Excellent discussion. It almost makes me feel bad for the frustration I have for IE (underfunded development).
As for a centralized list, isn’t that what the Acid Test 2 is for?
Excellent discussion, Eric.
Mark Kawakami took the words out of my fingers, however. While not a CSS issue per se, PNG alpha transparency issues with IE greatly limit what we, as designers/developers can accomplish with IE through correct, standards-based implementation of CSS.
Also, I think Dean Edwards hit the nail on the head: with Microsoft, you’re going to get what you’re going to get.
<skepticism>
If you don’t mind, I’ll not hold my breath until IE7 makes its way to my laptop at work, when I can actually see and feel what is under the hood. If it does all of the above, I’ll stand up and cheer with the rest of you; if not, like the rest of you, I’m going to hunker down and learn what it’s gonna take to get my job done — all over again.</skepticism>
<my_nightmare>
a fully standards-compliant IE7, which, when you create properly-formed XHTML with CSS that displays properly across all browsers, will break in prior versions of IE, thus requiring vast CSS hacks or — worse yet — javascript redirects for older versions…</my_nightmare>
@Will: although I share your nightmare, conditional comments are your friend here. Way more secure than any CSS filter available, and a trully standard compliant IE7 won’t see those, as they are just that, comments.
And yes, I’m more than a litlle skeptical about the ability, or the desire, of MS to improve their aging rendering engine in any significant way.
I’d like to add “application/xhtml+xml MIME type support” to the list.
Security is high profile. Every single time I recommend Firefox to someone, it’s in response to malware (not CSS rendering errors), and I don’t think I’m alone in that. Spyware/Ads make the news, float-clearing bugs don’t even get a nod.
Also, if they fix every major security flaw but one, it still leaves IE wide open to attack. Fix all but one CSS layout bug, and web developers will suck it up and work around it with only minor grumbling.
I’m sure Chris is sincere in his desire to add true standards support to IE, but a complete redesign of the layout engine would take an enormous amount of time and money, and no rational development plan would divert those resources away from the security team.
Very good point Joel, but take a look at the reasons why Firefox, Opera, etc. are popular at all on Windows machines…they are detached from the operating system they are running on. Just because IE comes from the same facility that the operating system it runs on is produced does not automatically require it to hook into core OS objects.
That is the primary problem with IE, they found it easier to produce a product (who wouldn’t?) where they could tap into already created resources rather than creating an completely stand-alone product.
The only way web developers can get what they want with IE7 (standarsd support, etc…) and at the same time create a product which satisifies the securitiy concerns of the general Internet population is to create a stand-alone IE.
On a list of reasons why Firefox is popular, “degree of OS integration” would be pretty close to the bottom of the list with stuff like “has a cool looking icon”. Web geeks might consider it a valuable feature (I don’t), but they’ve all been running alternate browsers for years.
IE isn’t running in the kernel or anything, it’s a regular program just like Firefox. The only “integration” is that it’s preinstalled on a new system, and it exposes its rendering engine as a reusable component for other programs (including Windows Explorer).
Neither of these poses a security risk, nor are either really unique. I can slipstream Firefox into a Windows install pretty easily, and if I toss in the Gecko ActiveX control, I can meet both criteria.
Safari does both right off the bat on any Mac made in the last year and a half, but it renders pages properly and doesn’t allow bad software in, so who the heck cares?
Really Joel? Are you saying IE is not any more integrated into the OS than a browser like Firefox, Opera or Netscape? Last time I checked, you can attach any application you want to load with IE which is just one problem. Why do you think the a derivative of the popular program “HijackThis” became an integral part to the Microsoft Anti-Spyware tool? That is but one example.
I have yet to see this problem with any other browser.
Making a Mozilla browser behave like IE by running ActiveX controls would be like running a firewall but configuring it to allow all traffic to pass through it…insane, but I could see the lure to install such an extension (at first glance).
All I’m saying is that software developers for browsers like Mozilla do not need to spend so much attention to security (in regards to allowing virii, spyware, etc. onto the computer) because the protection comes inherent in their architecture. This leaves the software developers more time to focus on meeting standards reqiurments, and hence making the “web geeks” happy.
I can’t think of any other CSS/XHTML support I’d like more than those you have listed – the only additional request I would add is greater support for the PNG image format, particularly alpha transparencies. After all, the W3 spec for that was initially released in 1996!
Hrm… I sent a trackback, but it hasn’t shown up here. Anyhow, here’s my entry on the subject.
Oh, I agree that ActiveX is a huge security problem, and should be among the first things dealt with. If IE7 supports .net controls natively, there will be little reason to keep ActiveX support around.
I’m a web designer; I appreciate web standards and would love to have them fully supported. However, I am not the primary market for IE7, and they should not pander solely to my whims if it means half-assing security features that everybody needs.
As a peon who’s opinion doesn’t matter, I’m just happy to hear that the voices that do matter aren’t allowing for excuses.
And I think all of us peons would be best served with Dean’s suggestion – the experts building a consensus and presenting it to to the media with a single voice.
It may have no effect on Microsoft’s stance – as it appears there’s a never-ending slew of hack “journalists” willing to heartily endorse whatever product Microsoft wishes to present…
And, of course, as the market leader, Microsoft will do whatever they can to “break” the competition browsers – as we’re all forced to code primarily for the lemmings…
So I don’t hold out MUCH hope – but it’s good to see that our boys are willing to take up the cause.
Let’s just hope Dean can come up with an IE8 fix sooner than later :)
I can understand the frustration of designers whose expections of the IEBlog aren’t being met, but I don’t understand why they are choosing to vent in the comments, as this doesn’t seem to be a productive approach. I hope more people follow your lead and try to do what they can to help facilitate future web design, no matter what browser is being used.
To everyone who says that 100% compliance to (choose your web standard here) is required: I work for a large telecommunications company who often has to deal with standards compliance questions. It is almost always impossible to meet 100% compliance because some requirements are unclear, and because our resources are finite. Thus we always work with our customers to determine the priority level of each requirement. I agree that relying solely on the IEBlog to gather requirements is unwise, and I hope Microsoft is using other avenues as well, but I think it is entirely reasonable for Microsoft to prioritize the work to be done.
The situation with IE reminds me a lot of the situation with Visual C++ 6.0, which had stagnated with respect to its support of the C++ standard for a number of years. Microsoft solved the public relations part of this problem in one brillant stroke by hiring the chair of the ISO C++ committee, Herb Sutter, as their “C++ community liaison”. A highly respected member of the C++ development community, Herb’s first public act was to affirm Microsoft’s committment to standards and pledged to make Visual C++ 7.0 as compliant as necessary (he explicitly did not promise 100% compliance; Herb recognized there are features in the spec whose utility did not warrant the effort to implement them). Today, the current version of Visual C++ is one of the most complaint compilers around. Microsoft could gain a lot of good faith by hiring one of the leading lights in the web design community to lend the same credibility to the IE development plans that Herb has done for Visual C++ (your name actually came to the top of my mind, but others like Jeffrey Zeldman would also be excellent choices).
IE 7 certainly should support the full CSS 2.1 spec, but currently, both IE and Firefox fail to support perhaps the most useful part of the spec: {display: inline-block} applied to a div. This display value works in IE when it is applied to a span tag, but since an obvious application for inline-block is to make multi-column layouts without tables, floats or absolute positioning, using span with inline-block can lead to invalid HTML (block tags, like p, within a span tag). This bug in Gecko has been around quite a while and is a rather large gap in its CSS 2.1 support.
Don’t get me wrong: I like and use Firefox, but I do think inline-block (on a div) should be part of the Acid 2 challenge and a goal for both IE 7 (it’s so close to having it already) and Firefox. Its wide implementation would make multi-column layouts a simple exercise and would encourage wider adoption of CSS for layout purposes.
I mean, if Microsoft is going to improve any aspect of its CSS 2.1 support, it will be inline-block, if only to embarrass Firefox supporters. It’s also pretty alarming that the Gecko folks are having such a hard time getting it to work.
James,
Multicolumn layouts are simple with CSS 2 – display: table-cell does what you want.
Gecko, Opera and KHTML all implement it without any major issues, so that just leaves Internet Explorer dragging its heels, as per usual.
Why even bother to discuss standards? Why quibble about the litany of CSS specifications, HTML specifications, bugs and quirks? That’s taken for granted–we need a working web browser.
But what IE 7.0 should do is innovate. Include new ways to nagivate the web, something better than tabs, visual history and link future, better integrated search. Those are the interesting things about IE 7–what it will do that we don’t expect.
According to insiders, IE 7 won’t be CSS 2 compliant and that they’re only fixing a few CSS bugs….the majority of the focus is going to be security.
http://www.microsoft-watch.com/article2/0,1995,1776935,00.asp
I think your 10 CSS requests cover a lot of great ground, but I think another huge request would be:
Make at least the CSS compliance fixes available in IE6.
I’m fine with MS wanting to use the new features of IE7 to push XP sales, but CSS fixes aren’t going to mean much to the user, and IE6 is going to be around for a long time.
Microsoft management has stated quite forcefully that their priorities have nothing whatsoever to do with the perspective that lies behind Eric’s list. Honest souls like Chris W. on the IE dev team will have to wheedle and cajole just to get major bug fixes on the timeline.
The political reality is that lists such as Eric’s play an important role in keeping the pressure on management and supporting developers who want to take IE to the next stage. This is very good.
I’ve been recently tasked with the chore of implementing a RazorFish nested table design on the company server. Since I have not dealt with tables for layout since 1997, this is a real eye-opener. We need to keep the pressure on ALL those who find Web coding standards to be an inconvenience.
Also, I don’t understand this question I’m supposed to answer “What color is an orange?” I gave the correct answer (living next to an orange grove) and I was not able to submit.
The question should be changed to “What color is an American orange after it is chemically treated and coated with polymer resin?”
Oh, yes, I forgot to mention… I used to work at a chemical factory on Neville Island near Pittsburgh that produced the petroleum-based product that coats oranges.
Dirtiest plant I ever worked at…
dotted = dotted, not dashed.
Please, oh please.
I would add updated MIME type recognition and support for XML prologues in standards mode, and better support for things like XSLT, XLinks, XPointers, and XInclude.
Out of curiousity, what does microsoft get from maintaining it’s own rendering engine? I think the past few years have proven that an enormous amount of ill-will can be generated from a poorly implemented one. While, they must be looking at their future, which consists of never-ending bug-fixes and updates. All for an app that doesn’t generate a dime as a standalone product.
Apple piggy-backed on KHTML…why wouldn’t Microsoft piggy-back on Gecko?
An embedded platform for ActiveX, .NET Controls, and Xaml, which is basically the same thing they get for maintaining a browser at all.
They’re Microsoft; the ill-will is hardly going to go away just because they implement some 5 year old standards. In fact, other than a couple of whiny web developers like us (who even now don’t dare drop IE support in any major project), nobody gives two craps if IE meets W3C standards.
The general public does care, however, that IE6 is wide open to malware attacks even after SP2.
Since the color “orange” is defined as “the color that oranges are” (just like “violet” and “periwinkle” are the colors violets and periwinkles are, respectively), oranges are orange, no matter what color they are .
Eric, isn’t point 6 already included in point 1? Am I wrong or you just wanted to emphasize it a bit?
Point 1 (and 6) is my main wish too.
If Firefox, Opera and others can get most of css to work why the hell can’t Microsoft (the RICHEST, LARGEST company in the WORLD). There’s NO excuse. Are they too proud to ask the Mozilla team or the Opera team for some help? Just fix it. I’m sure they pay their employees very well so is it management who’s not getting their employees to work or what? Microsoft is just a bunch of money hungry, greedy slackers. Fix the damn browser, this is ridiculous..Like I said, if others like Firefox can get css to work then so can Microsoft..end of story…period.
1. Microsoft is not the biggest corporation in the world, and is arguably not the richest.
2. Despite being offered for free, Internet Explorer is not (and never was) an altruistic endeavor. Internet Explorer is part of the Windows platform, and serves as a base for Microsoft technologies.
3. Firefox, Opera, and Safari operate on different business models than IE.
4. Designing and writing a fully CSS2.1-compliant browser is an extremely complicated and expensive project (and may be impossible, since no standard that complex is without contradiction and ambiguity), even if restricted to perfectly-formed XHTML.
5. The only people who even notice CSS errors are web developers. Normal users can’t tell the difference between a webpage that looks bad in IE because of a box model error and a webpage that was designed for IE and so looks bad in Firefox.
6. Microsoft and the IE Team have plenty of other things to be doing right now. (Longhorn and IE Security, respectively)
I just thought of six, off the top of my head. Want me to try for seven?
…as opposed to the feature-hungry, greedy slackers like us, who whine in blog comments?
This isn’t really the place for moral outrage…
Joel, I don’t agree that “The general public does care, however, that IE6 is wide open to malware attacks even after SP2.”.
In my experience most neither know nor care about security; those that do know (because they’ve had to take their PCs back to the shop/call in “a guy who advertises in the newsagent’s window”) still don’t care. They carry on without virus/malware/spyware protection. The best that most of them can manage is that they install whatever AV the shop/the guy sold them then they forget about it; updates? what are they?.
I like the idea of having a similar priorties list featured at WaSP. WaSP represents designers and developers at a very high level (one step below the W3C, in my opinion) and a list similar to Erics would send a very real message about what we want. Mr. Wilson did ask for specifics and a unified message coming from the WaSP would be most powerful.
I think cleaning up what’s already “implemented” is needed more then implementing “new” things. Don’t get me wrong, I want to see CSS3 selectors and I especially want to see .png transparency, but I think getting what they have wrong on track with the rest of the browsers is more important for our collective sanity.
But why would they do that? If a page “breaks” in everything but IE because it’s coded using standards, it looks bad on the designer’s part to everyone but other designers. I hope I’m wrong, but I don’t see this as a being a negative in M$’s eyes.
-adam
One big thing that we need to have, which I don’t see anyone mentioning, is the ability to run IE 5, 5.5, 6, and 7 on the same Windows computer for testing purposes.
We can do this now with 5 thru 6 thanks to the efforts of some community members. If IE 7 insists on crowding out all previous versions, however, testing becomes much harder. The problem is, I can also see a very good security-based argument for not allowing older versions to run.
A quick comment for my first ever post here. As a small time web developer all I care about is being able to write code and know that it looks the same in all browsers. I think the main things I have to do are the clearfix on floating divs and the box model hacks for IE. Maybe just get developers working on the different browsers to sit down together, look at all these hacks people have to put in and sort themselves out. But that’s never going to happen is it :)
Oddly enough, Internet Explorer 6 does handle the flow of images with "display: inline-block" fairly well.
How about an inline-block bounty for Mozilla developers? Perhaps what it will take to get it working is cold, hard cash. Should we post a site and take up a collection? I would throw a few bills into the pot for that one.
I’m very excited about IE7 new CSS improvements as I just finished a design theme for csszengarden.com
You can have a look at Zen Garden Sample Theme Design