Windows Phone 8.1 Update will be more compatible with the mobile Web.

The mobile browsing experience on Windows Phone has steadily improved, taking a big leap forward in Windows Phone 8.1 with its Internet Explorer 11 browser. However, it's still not as good as that of the iPhone. A big part of that isn't because of Internet Explorer—it's because of mobile sites either not recognizing that Internet Explorer on Windows Phone is a mobile browser or using coding that's specific to Mobile Safari.

The forthcoming Windows Phone 8.1 Update, as well as adding Cortana support for China and the UK, support for new form factors and accessories, and other minor improvements, aims to make Internet Explorer a much better mobile browser.

To do this, the Internet Explorer team has looked at the 500 most popular mobile sites to check their behavior on Windows Phone, and, if they behave poorly, figure out what the problem is. The company says that the work it has done for the Update improves the browser's behavior in more than 40 percent of these sites.

A range of different issues was found. Some situations were simply that the sites didn't detect Internet Explorer on the phone as being a mobile browser and so served up the desktop version of their site.

Others were more troublesome. Mobile Safari on iOS has a number of non-standard features that aren't on any standards track and hence are likely to remain non-standard indefinitely. Sites that use these features will obviously have problems on browsers that don't support them.

Standardization isn't a cure-all, however. During the standardization process, many browsers implement features with some kind of vendor-specific prefix, such as "-webkit" in Safari or "-ms" in Internet Explorer. The way this is meant to work is that once the standard has stabilized, the browsers should include the equivalent feature without the special prefix, and developers should update their sites to use the non-prefix version.

Of course, this doesn't actually happen in practice, because if a site appears to work, why bother changing it? Many sites have stuck with the -webkit version of these features and haven't bothered to use the standard equivalent.

If this all feels familiar to Web developers, it should. This is a problem the Web has had before, though that time, Microsoft was the beneficiary, not the victim. Back when Internet Explorer 6 ruled the world with a near-100 percent share of the browser market, Web content was, as often as not, written not for the idealized, abstract world of standards but specifically for Internet Explorer 6. This presented a huge challenge for the fledgling Firefox browser, as people who tried the browser would discover that, for one reason or another, the sites they wanted to visit didn't work properly in that browser.

On the mobile Web, Mobile Safari has become the new Internet Explorer 6. Many mobile sites aren't written for standards; they're written for Safari. Internet Explorer loses out, though it's not the only one; Microsoft points out a number of sites where Firefox OS, Mozilla's smartphone and tablet platform, suffers in the same way as Windows Phone.

The long-term solution is for mobile Web developers to experience*the same burst of enlightenment as non-mobile ones did back in the 2000s: write to specs and test cross-platform. Microsoft has been advocating this for quite some time, though apparently with little effect.

The short-term solution is for Internet Explorer to support some of these nonstandard or pre-standard features. With the Update, a bunch of -webkit prefixed features will be mapped to their corresponding standard version (if that exists), and some non-standard -webkit features will also be supported. The user agent string that scripts examine to check if the browser is mobile or not is also being changed to increase the chance that it will be properly distinguished from the desktop browser.

This is sure to be contentious. Both Mozilla and Microsoft have considered doing this in the past, and generally, there has been strong push back from conscientious Web developers. The big and obvious problem is that by adding the nonstandard feature, it becomes legitimized, further diminishing developer incentives to stop supporting it.

This is particularly acute, because Apple has shown no obvious intention to remove its support for the prefixed features. If other browsers commit to supporting them, too, they'll have to be supported in perpetuity.

Nonetheless, the practical necessity of making their browsers work with the Web as it actually exists has led Mozilla and Microsoft to support these -webkit features in the past. Opera, too, went this route prior to switching to WebKit.

It's an ugly and awkward solution, but with Microsoft in no position to dictate developer behavior on the Web, the company feels it has no alternative.