In mid October, the IE Blog urged developers to stop using CSS hacks to workaround IE’s problems, and start relying on Microsoft’s proprietary conditional comments. I was mostly fine with the new syntax, and it seemed practical enough considering that IE7 is looking to address most of the reasons you’d hack in the first place.
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
.localrather 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?
“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?
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.)