But in the comments it became clear that some of you have discovered non-trivial problems in working with conditional comments — for instance, they don’t work in a one-PC, multiple-IE testing environment, and XSL doesn’t peacefully co-exist with them. So when I heard certain WaSP members would be meeting with the IE team, I compiled a few direct questions for them to pose. Without further commentary of my own, here are replies from Chris Wilson and Brian Goldfarb of Microsoft, as transcribed by Molly Holzschlag.

How do you propose we test sites relying on conditional comments across multiple versions of IE on a single PC? The current method we have of installing multiple versions of IE does not work with
conditional comments.

Chris Wilson replies:

“This is a tough one. Best way of testing IE with multiple installs is using Virtual PC. There is a way on Windows itself, but IE installs its components into system directories. You can cheat the system - add the DLLs in a separate directory named .local rather than going to the windows system. However, this is not actually replacing all of IE, it doesn’t maintain a separate set of registry info, and you might end up pulling that information from the new install.

With VPC, you install multiple versions of Windows installs as you have disk space. It’s basically best way to do testing on one machine, have a massive machine run VPC with multiple windows installs … Need a lot of disk
space, and may find some oddities because it’s running as a separate virtual
machine.

I’ve done it, used it, but am not an expert.”

Why not implement conditional comments in CSS syntax, so we can move our filtering into external files and keep our markup clean?

Chris replies:

“I think it would be great if we provided a mechanism like conditional comments inside CSS. We’ve [Microsoft] thought about it, we’re not going to do it in IE7 because we want to do it in a sane, rational way. You’ll want conditional comments to be backward and forward compatible. Tough to design that into CSS so that it will actually work.”

How do you propose we use XSL to transform documents that use conditional comments?

Molly says that Chris would like more background about this. So a few solid examples/test cases where the conflict is clearly outlined would be handy right about now. A further question from Chris:

“Not sure what the input is in the initial comments. Are you concerned with input or output? And what are you trying to use the comments to switch?”

Unrelated, but prompted by this discussion: why did it take years and someone outside of Microsoft to discover that it’s possible to install multiple versions of IE? Can you confirm we will be able to continue using this method in IE7 and onwards?

Chris responds:

“It didn’t take someone outside of MS to discover it. We knew about it a long time, we’d used it in development. We don’t do that much anymore. Two big reasons we do not publicize this as a good idea First, unless you copy ALL the DLLs that IE uses, you don’t necessarily know which version you’re really going to. It kinda works, and if really all you want to do is load some HTML and see how it works, it’ll work. If you use JavaScript or
networking libraries, timing could get weird and so on.

The other reason is because we get in a lot of trouble in the support side
if we tell people to do this - your computer breaks, the Web doesn’t work,
you call up your computer manufacturer, spend an hour on the phone with them before you tell them about the multiple installs, the tech’s don’t know what you’re talking about, and it causes a customer service nightmare.

You have to know what you’re doing, and back it out after testing. We are
not to my knowledge disabling anything that would change this for IE7
currently, but can’t guarantee it’ll work on Vista.”

Brian Goldfarb went onto say that they got really strong feedback that they shouldn’t push people to do this because of the customer service problems. It’s an unsupported process: “Non-supported scenario. This causes damage to support scenarios.” It is therefore a practical business decision.

Big thanks to Chris and Brian for their answers, and to Molly for posing them.

(FYI: although I’m still a member of WaSP, consider me more as an Advisory Committee member these days. I’m not currently working with any of the various task forces, including the Microsoft TF.)

Virtual PC? So in order to test in IE 5, 5.5, 6, and 7, we should have four VPC virtual machines? With, presumably, four fully licenced and not free extra copies of Windows installed in those VMs? Ouch.

“But in the comments it became clear that some of you have discovered non-trivial problems in working with conditional comments — for instance, they don’t work in a one-PC, multiple-IE testing environment”

It is possible to use standalone IE versions and test conditional comments. All it takes is a fairly trivial resgistry alteration. The site below explains how (it’s covered about halfway down the page under the heading ‘Repairing Conditional Comments’):

“How do you propose we use XSL to transform documents that use conditional comments?”

Chris’ response to this is dissapointing. It suggests that they aren’t testing these comments in an XSL environment at all.

You don’t need test cases or examples any more solid than this: IE conditional comment syntax is not valid XML, and so cannot be used in XSLT output documents. (Wouldn’t it be kind of pointless to put these in input documents?)

It would be nice to have a test version of IE, were you would have multiple versions of IE in one app. Just like multiple tabs, one for each version.
That would be like a dream…..
And will never happen.

While reading this I asked myself why I had no problems with multiple IE installations on a single machine and using conditional comments. Special styles for IE 5 worked, IE 5.5, IE 6 worked the way I intended.

Well, now I know how I´ve done it:

So I am able to target any of those broken browsers as a whole. In ie.css I am using several css hacks to give each IE < 7 the styles it needs.

Working this way seems to be a practicable way to use several IEs on one machine, individualize the styles and for being forwards compatible - even if IE7 does not support any hacks ;-)

Stuart: Who says you have to buy each of those windows versions? :: evil look :: - I mean hey, if Microsoft can’t provide a reasonable testing alternative, then I surely don’t feel guilty finding, erm, workarounds to have multiple win versions running under VPC. Not that I ever said any of this in public, of course. ;-)

Paul D: As Ken points out, IE is so tied to the OS that the multiple install scenario is nightmarish at best.

That said, and given the complexity of the issue, I entirely agree with Microsoft’s decision to not promote multiple IE installs as to support it is very difficult. It’s not just Microsoft that would be hit with the support questions, but every PC manufacturer out there. That causes a real problem, and I can see the business rationale behind the decision.

Andrew: I’m going to ask you to have some patience on that one. The question was not glossed over by Chris, rather, the way I presented it simply wasn’t detailed enough. With more information about an actual scenario, Chris has promised to answer the question as best as he can. So that’s where we left it, and that lack of clarity might well be down to me, not Chris.

I’m sorry, but all the answers they gave for all these questions, was: “we don’t know.” (and we dont care). When I read this, I just realize, MS+IE doesn’t give a flying f*** about us.

Why can’t they just let IE die? Replace the engine with Gecko? Stop inventing “great” new features into the DOM and HTML? It will make so many people happy. Doesn’t MS won’t everybody to be happy??? No. they want their own thing. I’m sorry, but for high level internet applications, Internet Explorer is the worst browser today. I know I’m grinding here, but I’m getting so angry listening to these answers.

I don’t have a blog. I don’t have time. I don’t have a community of people arriving everyday and shamelessly drool over every word I say. On the contrary, there are so many powerful blogs out there, that get hit thousands of times a day.

I would think THIS community will have more power than Microsoft, honestly, I do think so. But what? This community is no more than a (huge) herd of nerds. Can we actually change the world of OUR internet or just keep on photoshopping our slick pixel corners and keep on talking about every new gimmick that pops-up, or we can actually do something.

Every herd has it leaders, and people listen to them. Why not do something drastic and get the controls..

Rafi, your sentiments are not unshared. But if the U.S. Department of Justice can’t get Microsoft to change its practices (their lawsuit disappeared quietly after George W. Bush entered the scene) how on earth can a group of standardistas do it? We don’t have any of the resources the US government has, and the US government has tried repeatedly to go up against MS and historically loses, time and again.

Seems like they are trying to make IE better, however the IE team and MS seem to be stuck with their backs to the wall since they can’t/won’t make IE a standalone app like all other browsers. By developing IE as an integrated app into the system there will never be a good way for us developers to test multiple versions of the browser, and until they fully support CSS and W3C standards I’m afraid conditional comments will be something we’ll need to live with for a long time ahead.

Like others here I have little confidence after reading Chris’ answers in IE7’s ability to make our lives easier. We all want a standards compliant browser from MS, but considering the info on their Blog and this brief interview I don’t see that goal within our grasp with this release.

While multiple IEs definitely isn’t an optimal scenario, I’ve used it for a long time testing interface code and it has worked like a charm. Just like rich mentioned in comment no 5, it’s an easy operation to get it to work.

Only thing I don’t know about is using XSLT (I believe you mean XSLT when you use the broader term XSL?). However, I use XSLT transformations almost daily in my work, but never whole pages, only parts of them. However, Nick Fitz is a smart guy, so I feel confident that his suggestion will hold.

> Why can’t they just let IE die? Replace the engine with Gecko? Stop inventing “great” new features into the DOM and HTML?

Because Microsoft (and specifically IE) is the 800-pound gorilla in web browsing.

I, for one, am glad to hear these discussions are at least taking place. Sure we’d all love conditionals built directly into the CSS syntax – and would love not to have to license several different versions of Windows for VPC (what kind of a solution is VPC anyway?!) – but at least we’re gaining ground.

“Why is it harmful to use * html ? As others have pointed out above, this should only be seen by IE5/6, whereas 7 will behave correctly. So surely we should be *encouraged* to use that as a means to move towards compliance.”

In other words, if people are (correctly) using documented hacks to work around documented IE bugs (rather than to hide bits of styles from IE arbitrarily) then hiding these behind * html which IE7 doesn’t understand, will mean that the site works fine in IE7 because the only thing it will see is what the likes of Firefox and other standards browsers see: only what is actually needed for the site.

After four years of waiting, I’m with you. Rushing to implement a bunch of features that end up buggy and incomplete brings us two steps further, but one step back. I’d rather not spend another 4 years dealing with an IE7 equivalent of IE6’s float bugs.

Dave S : “I’d rather not spend another 4 years dealing with an IE7 equivalent of IE6’s float bugs.”

I have a bad feeling that something else will bug the rest of us after IE7 is released. As Molly has enlighten us on IE team developments, we know they are chained to MS business plans and strategies. Hence logically we all know IE7 will in some form be chained to Vista. I think IE7 will be a great improvement but it will never go far enough.

My personal feelings, I think it would be cool if someone could use some weird Javascript, or whatever, trickery and make Gecko or KHTML able to emulate IE’s problems. It would allow us to test in our native environment; if you can emulate one version you can probably emulate more than one, so our problems would be solved. Granted it wouldn’t be THAT simple, but it would (theoretically) work in my mind. Maybe I’m crazy, maybe I’m just wishful, but I think it could happen, and quite honestly I can see a few devoted open source people doing it more quickly than Microsoft thoroughly supporting anything like multiple IE versions…

Thanks for the post Dave and follow up. I was at the meeting and should note that it’s impressive Molly got all that transribed. Lively, raucous, and we saw some very promising applications. Then got down to the business of asking hard questions

Conditional comments in CSS is an exceptionally bad idea and I’m glad they’re not being implemented in IE7. I just hope they don’t get implemented in IE8 or any other future version.

Using conditional comments promotes a form of browser sniffing and, while it is more reliable than checking the UA string, it’s not something we should be encouraging along side standards compliant coding techniques.

Rather than encouraging browser vendors to legitimise hacks and encouraging authors to use them, we should encourage the vendors to fix their bugs and authors to accept graceful degradation as a result of those bugs until they are fixed.

Molly said:
> Who says you have to buy each of those windows versions?
> :: evil look :: - I mean hey, if Microsoft can’t provide
> a reasonable testing alternative, then I surely don’t
> feel guilty finding, erm, workarounds to have multiple
> win versions running under VPC. Not that I ever said
> any of this in public, of course. ;-)

See, I think that Microsoft demanding that is shooting themselves in the foot. In companies you are lobbied *all the time* about being fully licenced and whatnot. More to the point, the more MS say “to support our browsers, you’ll need to pay loads of extra money”, the less people will support their browsers, or the more they’ll rip off code. Paradoxically, because I use free software, I’m more attuned to licence violation than I would be otherwise, I think!

Interesting to read about XSL and conditional statements. What I’m currently doing is sniffing the browser serverside and wrapping the browser agent in an XML tag. I then just test the value and branch in the normal XSL way.

Practically, you CAN install multiple VPCs and run them simultaneously without licencing, because you don’t need to activate them. You simply create a base install image, and work from there - that’s how all us MSDN folk do it… Sure, if you’re going to test over a prolonged period (ie more than a month or two) it could become a problem, but practically the setup works just fine.

Also, although this might be slightly off-topic, but I fully agree with not supporting multiple installs from MS’s point-of-view. Anyone who’s run a business selling software understands the nightmares technically-possible-but-quirky hacks can cause if they’re officially endorsed. It’s just plain business sense.

“After four years of waiting, I’m with you. Rushing to implement a bunch of features that end up buggy and incomplete brings us two steps further, but one step back. I’d rather not spend another 4 years dealing with an IE7 equivalent of IE6’s float bugs.”

It is my opinion at this point that no matter what we do, how we advocate for change, we will for the entirety of our careers be battling for a level playing field in user agents. Let’s imagine for a moment that IE7 came out of beta fully compliant (which we know it won’t, but hey, this is a fantasy here) - there’s going to be the Next Big Battle, which from the standards side is what to do with SVG. With XAML around, we’ll once again be battling for standards compliance versus proprietary technology.

And how about Internationalization? I’ve called it the “sleeping giant” for many years, and it’s just starting to wake up. When more companies want multilingual sites, whoo boy, the battle for better browser compliance in Internationalization is going to heat up big-time.

Take it off the desktop, it gets even worse. Anyone doing wireless development knows all too well that the browser woes we have today are nothing, nothing compared to the nightmarish tangle of user agents on PDAs and cellphones and so on.

I think we have to just be realistic here and learn to enjoy the ride. That doesn’t mean give up advocacy for open standards (and Stuart, I agree with you - my preference will always be open technologies - but very obviously not everyone has the luxury of staying in open source / open standards development) but it does mean getting a little Zen (if you’ll allow me a bad pun, Dave ;-)) on the whole frustration side of things.

I’ve long said the accomplished Web designer and Web developer is a “Control-Freak / Zen Master.” Seek to control everything we can - which means learning an awful lot (more than I know, that’s for sure) and when you reach the limits of control, let it go.

Otherwise, we’ll lose the passion and the enjoyment of what we do. The difficulties have to be seen as challenges over which to triumph, but thinking that one day in our careers everything will settle down is a pipe dream.

Comment #2.0
It is funny that when putting non valid CSS in comments they start validating. If I would take the ie.css out of the IE conditional comments (brain surgery) and validated that one in the jigsaw CSS browser. Errors would start raining after inserting the css into the validator. Conditional Comments only help to seperate IE hacks that might brake future versions of any browsers including IE. I even heard someone telling that it caused extra band-width? Really!

I second #c024229 on the answers being vague.
Not only vague, but the feeling I get is they are treating you for a fool. You ask technical questions, and get generic, “tech support” answers. I also get this feeling on the IE blog, like the community’s questions are not interesting. They want to talk, and that’s a *huge* step forward, but they should learn to listen.

I’ma’ bit lost on the topic as I am not that advanced a css coder yet… but I just wanted to say; Damn Molly, by your responses here and some post I have read on your own site, I am surprised MS even let you in the building, might blow it up or something to get your swingline stapler back ;) lol. You go girl.

Some time ago i found some zipped folders to download where everything is inside to run several old versions of the internet explorer at the same time. The site i got it from isn’t online anymore.
Anyway… I don’t actually optimize for those old browsers since the websites look like crap whatever you do. It’s like Netscape 4.0… Better disabling the stylesheet!

I’m not asking for anything too hard for the Microsoft IE team. Just fix the damn CSS problems and complete the CSS2 framework. Give us PNG support. Fix the javascript engine so it would not be so slow on heavy scripted pages, and START peaking at the W3C specifications for DOM and XML.

Standalone versions? Conditional commens in CSS?

I dont care about it. As long as they produce something that can justify their power and control over us, I’ll be happy. I’ll forget about IE6 and below, who cares? if everybody follows a simple extermination plan we’ll throw the older versions to hell. Microsoft has the interest to LEAVE IE as an internal app in Windows because that’s how they crushed Microsoft, with money and control. So why would they separate the two if nobody is threatning them except few angry nerds? :)

Molly - I’m sorry you say it’s all about the money, because you know it isn’t. “If you get the money, you get the power”. Whoever said that didn’t say “ONLY if you get the..”. Ahh. I’m just frustrated that’s all. As a spectator ONLY in the last few years on this scene I’ve seen radical people come up with radical awesome, but sadly, looking at it from a higher perspective, nothing has really changed.

Whoever does not want to use Virtual PC (or other similar emulators) for a multi IE environment might still want to create a multi boot environment on an old PC. Three partitions with Windows 98, one for IE 5, one for IE 5.5, and one for IE 6 would be okay. Perhaps one for Windows XP SP2 with the improved IE 6.

(Of course, with Longwait^WVista and IE 7 you need a new partition, but you then certainly will need a new fast PC.)

You do not need another screen if you use VNC. The partioning thing and hiding the partitions from each other OS is not easy, but there are instructions on the Web. After a few hours of setup it works; for years in my case without need to change.

On the other hand: just write clean, standard conformant code (HTML and CSS). Do not care about browser bugs and stupid old IE too much. The browsers needs to get fixed, not your code. We cannot test everything with every browser on earth. We only can hold on to the published standards.

When it comes to mobile browsers, on phones or PDAs, as one poster here noted, we are lost with thousands of different devices and browsers. Just sticking to the standards is the only thing we can do.

“I think we have to just be realistic here and learn to enjoy the ride.”

Molly, thank you for your insight. I as well tend to get very negative and join the IE bashing team, but I agree. Sometime I feel people just let it get to them just a little too much. I know it’s frustrating because it makes all our jobs so much harder, but in the end, it’s just the way things are right now. So like you said, it doesn’t mean give up, but don’t let it get to us too much.

The real thing here is that MS no longer care about the browser, since they are about to “bypass” the web. Avalon (Windows Presentation Foundation now) is a very real threat to the “open” web. I doubt very much the endlessly downsized moz guys ‘n gals have much to offer in the face of Avalon - and the shocking thing is No One Seems To Have Noticed!

Where I work at the moment, we design for pure W3C compliance, testing primarily with Mozilla, Firefox and Safari. Once the site is up and running without problems in those browsers we have a look in IE, and if it works it works.

I gave up on IE a long time ago, if they want to be a respected force in the browser market then they should start implementing things properly and stop all the [if lt IE 7] rubbish.

Get with the game Microsoft; follow a standard and stick with it, do you know how many billions of $ have been wasted trying to make all the websites in the world cross-browser friendly…it’s time to have a “write once, browse anywhere” policy.

After reading all the posts I can see the bigger picture of what is happening here. Microsoft is the Holy Deity and we are mere followers. They are trying to teach us patience, humility and loyalty among other virtues.
Their non-compliance with w3c (the devil - lol) is simple prayer practice. You know it is because all of you are on your knees wishing and hoping and waiting for compliance. The thing is while ever you are on your knees praying for compliance, you forget that you support their non-compliance by adjusting your attitude to accept the fact that your compliance for w3c needs attention and therefore you end up adopting non-compliance hacks to your css code.
Why should they change?? I doubt anybody at microsoft knows what it is they need to comply with. But why not put the headache back on them by providing microsoft contact details on your website if it does not display properly in ie 5,6,7. Waste microsoft’s resources not yours. (lordy knows they can afford it) On every website you build make sure you have Firefox, Safari, Opera etc preferred icons with download links. Let the people know that IE SUX. (actually it would be more of a repetitive reminder) I could wag on forever….

Not to be facetious, I’d like to put forth a very straightforward solution to all this IE mess.

-Simply quit catering to IE, at all, in any fashion.

If it’s more obviously common that IE is buggy, people will ditch it, as a popular movement.

Although it’s not an easy path to follow, and would doubtlessly see much hardship in the beginning, my reasoning is this; the single most motivating situation to convince a viewer to switch to a better browser is for them to encounter a page they want to see, and see it displayed incorrectly, or not at all.

All it takes is that first time, and then a single download to Firefox or Opera, and it’s done. Band-aid off. A very quick fix.

Once the average user sees that the web is broken when viewed through the eye of IE, the alternatives will stand out.

As for clients of web-dev contracts requiring extended compatibility, try to argue the point. Offer reduced dev costs. If arguing doesn’t work, then go ahead and “IE hack” if it’s a must. (Bread, then principles, natural order of course).

The point I’m trying to make is that IE may be the easy first choice, and that might put it at the front of the “popular browser que”, but we don’t need to let that cloud the truth of the situation; as with any technology, IE will only be used as long as it works well on the average. Tip the average, and down it will go. If people have to use an alternative, they will.

WE write the code. Always, the power to change this is always in the developers hands. Now that the platform is in transition (PC to web), expanding more to web-based services, this is the time to push it.

Now, I’m probably missing out on some big reason why this won’t work, however, just an idea.

While I am definitely in the boat of MS-haters and wished that we really could just forget about IE and code for standards, as B. Mason said, I know there’s no way (currently) it could work in getting rid of IE.

Take for example my grandma: She has no idea what a browser even is, let alone that there are different browsers which would display a broken site properly. Even if I placed a link on my site for Firefox, she wouldn’t know how to download and install it.

Maybe I could go download and install it for her, but what about the people who don’t know those things, and don’t have someone to do it for them? MS has so much more of a hold on the browser market than you give them credit for.

Please don’t take me the wrong way, I would have windows thrown down (and unix or OSX to become the standard), but it’s just really not going to happen anytime soon.

Paying extra for Virtual PC or Vmware is an expensive solution although technically perhaps the best one (Until we can get a Open Source Virtual machine to run Windows on Linux anyway) but is it really the way most people are going to do it? It seems like the comment was for 1 of 3 reasons;
Thats the company line
He was thinking in terms of companies where purchasing software to improve the end product is reasonable enough (and would poss be preffered so it can be supported)
or … well I’m not sure but its not a useful answer to the majority of us.
I’ve seen the Virtual Pc answer a lot lately especially with the IE7 Beta 2 not supporting side-by-side install :( and I was wondering about how this fitted with that seperation lawsuit “(their lawsuit disappeared quietly after George W. Bush entered the scene)” but I guess that explains it, but so much for “We are not to my knowledge disabling anything that would change this for IE7 currently”