Skip to Main Content

Windows Internet Explorer 9Microsoft is trying very hard to bring Internet Explorer back into favor with Web developers. On their official IE blog, which mainly targets technical audiences, they've been making long post after long post talking about all of the neat stuff under the hood of the upcoming Internet Explorer 9 Web browser. However, with all of the nitty gritty technical details they're discussing, I've been amazed at the sheer number of blatant errors in their descriptions of those features.

For instance, take their "same markup" campaign. Microsoft is trying to address the very real problem Web developers face where one set of code works in all browsers except Internet Explorer, so you need a second set of code just for IE (and often additional sets of code for each version of IE). Microsoft has been using the phrase "same markup" to say that IE 9 will finally have close enough feature parity with other browsers that we will no longer need different code for different browsers.

That's all great, and it sounds like they might deliver on it. But, what examples does Microsoft choose to demonstrate this concept? Well, in one of their recent blog posts, under the heading "Testing 'Same Markup' across Browsers" and calling it a "sample of same markup running across different browsers", they point to a Flickr Postcards demo, which enlarges and rotates the images as you hover over them. The demonstration is actually about an upcoming CSS feature, so it technically isn't "markup," but we can let that slide ("same CSS" is an important part of the story, after all). And this demonstrates same CSS by... using different CSS for each browser. Yeah, I'm not kidding. If you're using Firefox, they give you the "-moz-transform" property to apply the zooming and rotation behavior. If you're using Internet Explorer, they give you the "-ms-transform" property instead. WebKit (Safari and Chrome) and Opera also get their own respective properties.

To be fair, there's good reason for this: The CSS 3 2D Transforms specification, which introduces these features, is not yet a finished standard, so each browser implements those properties using vendor-specific prefixes ("-ms-" for Microsoft, "-moz-" for Mozilla, etc.) until the specification is considered stable. That's fine; that's the way experimental features are supposed to be implemented. But, how on Earth does this make for a good example to demonstrate the "same markup" concept? Heck, the page even tries to detect which browser you're running in order to tell you which browser-specific code they're giving you.

Snapshot of the Internet Explorer Test Drive Web page.The other two examples weren't much better. The second example tried to detect which browser I was using and redirected me to an error page telling me to upgrade (despite that I'm using the latest fully-updated version of Firefox) or switch to an Internet Explorer beta version. The third example was another CSS 3 demonstration which also used vendor-specific prefixes, and it looked significantly different in each browser I tested. The blog post then follows this with the sentence, "Our investments in standards and interoperability are all about enabling the same markup to just work across different browsers." And this, students, is what "irony" means.

So, maybe Microsoft just made a bad call in taking browser-discriminating demos that were designed to show off bleeding-edge, not-yet-standard features, and using them to demonstrate how interoperable and standards-compliant they are. But this isn't all they get wrong. In their blog posts, Microsoft regularly misuses a number of technical terms. I already mentioned "markup," which they seem to think includes CSS. In fact, at one point in the blog post, they list, "HTML, script, and markup," as if HTML (HyperText Markup Language) doesn't count as markup. But more commonly, and perhaps more problematically, Microsoft has been abusing the term "HTML 5" to apply it to seemingly any emerging Web technology.

For example, the release notes for the latest Internet Explorer 9 beta contains this sentence: "The HTML5 features include CSS 3 2D Transforms, which provide a simple, declarative way to translate, rotate and scale elements in two-dimensional space." CSS 3 2D Transforms is in no way an HTML 5 feature. It's part of the CSS 3 family of specifications, which isn't even developed by the same group that develops the HTML 5 specifications (although both groups work under the World Wide Web Consortium umbrella). CSS 3 is about as much an HTML 5 feature as a fish is a human feature.

I understand that marketers may find it effective to lump a bunch of technologies under the same name for the sake of simplicity or familiarity, and "HTML 5" is the trendy name these days. But, when the target audience is technical folks, such as in the IE blog or in the beta release notes, and especially when it comes to Web developers who will be expected to know these technologies inside and out, this basic misrepresentation of technical terms and concepts just makes it seem like they're misundestanding the technology. Microsoft is trying to convince us that Internet Explorer's poor reputation among developers is no longer deserved, but that poor reputation comes mainly from how frequently the product has misunderstood the technology. How does Microsoft expect to win us back if this is the image they continue to project?<>