August 5, 2014

Mobile Internet Explorer's New User Agent

I've bought a Nokia Lumia 520 a few months ago to try Windows Phone and it turned out to be a pretty good phone. Windows Phone shines on low-end hardware and Nokia's hardware is great for a phone that costs about $100. There are many issues with Windows Phone and some of them have to do with its late release (2010) and low market share (about 3%). Many companies, including Google, continue to ignore Windows Phone, many sites aren't optimized for Mobile IE.

If you use Google services and products like Gmail, Google Maps, Google+, Google Drive, Chrome, it's hard to switch to Windows Phone. There are some third-party apps for Google services, but they're far from Google's apps for Android and iOS. Google doesn't want to make Windows Phone more popular, so it doesn't release apps for Windows Phone. Google also serves inferior versions of its mobile apps in Internet Explorer Mobile. Gmail's mobile site for Windows Phone has a lot in common with Gmail's site for feature phones.

The entire thing reminds me of Opera's early days. Opera struggled with its low market share and had to spoof its user agent to identify itself as Internet Explorer. The sites that required Internet Explorer worked in Opera, but developers continued to ignore Opera.

The latest Windows Phone 8.1 update changed mobile IE's user agent to mimic mobile Safari. Microsoft added "like iPhone OS 7_0_3 Mac OS X AppleWebKit/537 (KHTML. like Gecko) Mobile Safari/537", but also "Android 4.0". The sites that check the user agent for strings like "iPhone", "Android" or "Mobile Safari" are supposed to work well in the latest Internet Explorer for Mobile. While the browser still has the same Trident rendering engine, Microsoft used some workarounds that improve WebKit compatibility.


WebKit is the most used rendering engine for mobile browsers. Apple used it in Safari for iPhone and iPad, Google used it in the mobile browser for Android and later in Chrome for Android. Google forked WebKit and now uses Blink. Since WebKit dominates the mobile space, many developers optimize their sites for WebKit and use non-standard WebKit features. Firefox and Internet Explorer don't have a lot of mobile users, so developers don't bother optimizing their sites for these browsers.

"Unlike the mostly standards-based desktop web, many modern mobile web pages were designed and built for iOS and the iPhone. This results in users of other devices often receiving a degraded experience. Many sites use features via a legacy vendor specific prefix without supporting the un-prefixed standard version or only support vendor prefixes for certain devices. Other sites use non-standard proprietary APIs that only work with Safari or Chrome. Of course there were also bugs or missing features in IE that became particularly apparent on mobile sites designed specifically for our competitors' browsers," informs the IE blog.

It's ironic to see Microsoft complaining that sites use non-standard features and aren't compatible with Internet Explorer. I still remember the sites that required Internet Explorer 6 and didn't work well in other browsers.

The good news is that many sites now works properly in Windows Phone's browsers. Microsoft "tested more than 500 of the top mobile web sites and found that the IE11 update improves the experience on more than 40% of them." Here's a screenshots for Gmail in the new IE version:


... and a Gmail screenshot in UC Browser, which still uses the old IE user agent:


User agents are a mess and developers should use feature detection instead of relying on a meaningless string. Chrome's user agent includes "Mozilla", "Gecko", "AppleWebKit" and "Safari" for backward compatibility. Now mobile IE's user agent includes "Android", "iPhone", "AppleWebKit", "Mobile Safari", "Gecko".

No comments:

Post a Comment

Note: Only a member of this blog may post a comment.