IE7 Conditional Comments
By Dave Shea | November 3rd, 2005 | Filed in Browsers, CSS, Microsoft
Skip to comment formIn 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 wrote up my thoughts about 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 it was 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. Here are the 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. Cross-posted to take your comments.