It’s been a while since I’ve done a debugging post, and I thought it was about time I came back and did one again.
As some of you may have figured out, I travel now and then. (I am at just over 195,000 BIS – butt in seat – miles so far in 2012.) And, if you travel as well, you know how damaging this can be to your waistline. So, I decided to nip this little gain in the bud and join WeightWatchers. Now, shortly after I joined, they updated their mobile website, and warned that “Windows Mobile” (apparently they didn’t get the re-branding memo) might not work.
That’s a challenge if I ever heard one.
So, I went to the site, and sure enough, it really didn’t work. I just saw this:
So, they were right. But – there really is no reason why we shouldn’t run an HTML app with our latest and greatest IE10 browser unless they took a hard dependency on some unstable spec which we hadn’t implemented yet.
So, first stop – the developer tools. This one turned out to be pretty easy, as the console went ahead and spat this out:
HTML1200: weightwatchers.com is on the Internet Explorer Compatibility View List (‘C:\Users\cjacks\AppData\Local\Microsoft\Internet Explorer\IECompatData\iecompatdata.xml’).
Aha! Another example of developers not wrapping their heads around the confusing world of Internet Explorer’s compatibility infrastructure and our rabid desire to keep all of your sites working. Only this time, it appears we actually broke the site with the compatibility view list!
To find out, I switched out the document mode using the F12 developer tools, and voila:
So, what can they do to get around this, rather than having to tell all of their Windows Phone customers to just use the junky old site (and then pay to continue maintaining it)?
First, they could immediately fix their site by adding X-UA-Compatible to the headers, and overrule our compat view setting for this part of the site.
Second, they could make sure that everything works, and then get themselves removed from the compat view list by sending mail to iepo at microsoft.com.
But this illustrates the conundrum we face in app compat. By keeping old sites working, we inadvertently broke a new site, and unaware of the compatibility infrastructure that was hindering rather than helping them, they just threw up their arms and decided to keep the old site around. Compatibility adds complexity and confusion, but when it works it makes customers very happy.