One of the things that I’m passionate about in my role at Microsoft is helping developers ensure that their sites provide an awesome experience in every browser. Yeah, yeah I know it seems odd that a Microsoft evangelist would say this but it’s the honest truth and anyone who’s worked with me before knows that I take great pride in this effort.

<h2>We're Not Supporting IE!</h2>
 
Today, I came across this article on HackerNews which caught me totally by surprise:

“<a href="http://news.ycombinator.com/item?id=3941799"><strong><em>We don't support Internet Explorer, and we're calling that a feature</em></strong></a>â€

When I checked out the site entry, <a href="https://paydirtapp.com/blog/we-dont-support-ie/">it directed me</a> to a startup called Paydirt which has a very slick looking time-tracking & invoicing app. In their <a href="https://paydirtapp.com/blog/we-dont-support-ie/">blog post</a>, they rattled off a couple of reasons why they’re not supporting Internet Explorer and they were pretty upfront about it:

<em>“That's why we made a key decision at Paydirt: we don't support IE - at all - and we don't pretend to. You can't even sign up for Paydirt using IE.â€</em>

They also mentioned that sensible browsers support cool features:

<em>“Sensible browsers can do amazing things (canvas, SVG animations, CSS3, web-sockets, blazingly fast JS), and limiting usage to these lets Paydirt take full advantage of these new technologies.â€</em>

So of course, I had to dig in to figure out what magical features they were using that IE9, and especially IE10, didn’t handle.

<h2>Um...it works in IE</h2>

Sure enough, when I tried to sign up, I was blocked. So I used the IE F12 tools to fake the Chrome user agent string and, bam, I was able to sign up with no issues. The signup was painless and I waded through the app with Chrome & IE side-by-side. As I went through, I didn’t notice any differences in the functionality. Buttons worked as expected, data was being saved and even panels with fading functionality worked as expected. I was stumped because I couldn’t see what was preventing a user from using Internet Explorer on this site.

<a href="http://blog.reybango.com/wp-content/uploads/2012/05/pd-chrome.png"><img src="http://blog.reybango.com/wp-content/uploads/2012/05/pd-chrome-150x150.png" alt="" title="pd-chrome" width="150" height="150" class="alignleft size-thumbnail wp-image-1874" /></a><a href="http://blog.reybango.com/wp-content/uploads/2012/05/pd-ie9.png"><img src="http://blog.reybango.com/wp-content/uploads/2012/05/pd-ie9-150x150.png" alt="" title="pd-ie9" width="150" height="150" class="alignleft size-thumbnail wp-image-1875" /></a><a href="http://blog.reybango.com/wp-content/uploads/2012/05/pd-ie10.png"><img src="http://blog.reybango.com/wp-content/uploads/2012/05/pd-ie10-150x150.png" alt="" title="pd-ie10" width="150" height="150" class="alignleft size-thumbnail wp-image-1876" /></a>
<em>Chrome, IE9 & IE10 Screenshots of Paydirt</em>

<h2>Why is there code in here for IE support?</h2>

Next, I dug into the code and again, didn’t see anything that I could pinpoint as an issue. In fact, the Paydirt team had done a nice job of laying out their site using standards-based code. This is precisely what you want to see; developers using standards. As I dug through more files, I came across their main CSS stylesheet called paydirt-e08a29afb369fe41806659f40ff86301.css. When I looked in it, two things immediately popped out:
<ul>
<li>They were using many CSS3 features supported since IE9, like transforms & border-radius, but just not adding the –ms vendor prefix entry</li>
<li>They had the “-msâ€ prefix for CSS3 gradients which was added in IE10</li>
<li>They added support for -khtml-box-shadow but not -ms-box-shadow???</li>
</ul>

This threw me off because in their blog post, their concern was the IE didn’t offer amazing feature support yet many of the features they implemented were available since IE9, a two-year old browser. And in addition, they had actually done some initial work on supporting CSS3 features that are available in IE10 (e.g.: transitions & CSS3 gradients).

At this point, I’m completely stumped because:
<ul><li>Their site works great in both IE9 & IE10</li>
<li>They’ve included support for some IE features in their CSS</li>
<li>They want sensible browsers that do amazing things and everything they’re doing is supported by IE9 & IE10. All they have to do is add the “-msâ€ vendor prefix just like they did for Webkit and Firefox. (They didn’t support Opera either unfortunately).</li></ul>

<h2>It works IE so why not just Open it Up</h2>

So we’re left to wonder if IE issues are the real reason they didn’t support the browser. And trust me, I totally get the pain developers went through. I’ve only been with Microsoft for 2 years and was a web developer WAY before I joined them (even part of <a href="http://jquery.org/team">the jQuery project team</a>). But I can honestly say that IE9, and especially IE10, have come an incredibly long way since the IE6-8 days and I’m having a hard time rationalizing Paydirt’s decision here. 

Mind you, if their only reason was that their traffic didn’t justify the support for IE6-8, I could understand it. But one of the things that Microsoft has been advocating for is the concept of “same markupâ€ and Paydirt is a great example of this. Despite them not wanting to support IE, because they used standards-based markup, the site just works in IE9 & IE10. And that totally contradicts Paydirt’s arguments about saving time and lack of feature support. Their site <strong>JUST WORKS</strong>!

Now, it’s not to say that if you really dig deep you may not find some issue. That happens actually in every browser and is not unique to IE. But seriously Paydirt, do you really want to use these arguments when your site actually does render great in Internet Explorer? Have you checked it out? Perhaps being a Mac-based company, testing may be the issue. If it is, then let’s discuss the options.

Claiming, though, that not supporting IE saves you time when your site is working just fine in IE9/10 is a tough sell. Let’s talk. I’m happy to help you work through the issues.



