Can we please get back to Web standards?

It is the 1990s and the Internet Explorer browser wars of that decade all over again…

On July 31, 2014, Microsoft announced that in their forthcoming Windows Phone 8.1 Update, they were updating Internet Explorer 11 to shim commonly used vendor-prefixed CSS properties and a few JavaScript events. Stating “The Mobile Web should just work for everyone”, Microsoft is working in cooperation with Mozilla to identify and contact owners of mobile sites that cater to a single browser rendering engine (primarily WebKit), but also is, almost regrettably, updating IE 11 on WP to support these non-standards compliant code and styles.

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.

Microsoft does not plan on supporting all the -webkit- vendor prefixed properties, many of them unique to WebKit, and they do rightly so. According to MDN, there is a whole list of WebKit-only prefixes that may never end up on a standards track.

Citing multiple areas these WebKit-only sites worsen the experience, Internet Explorer 11 Update will reportedly improve the browsing experience in 40% of the top 500 sites tested, all in the name of compatibility. “[W]e pursued a web experience for IE users consistent with what is available on iOS and Android devices – even where this meant we would be adding non-standard web platform features” Despite this shimming, Microsoft is urging developers to use HTML5 and CSS3 standards and not rely solely on WebKit-only technologies. They urge developers to check their sites for coding issues using their scanner tool and for users and responsible developers to report uncompliment sites at webcompat.com.

However, Internet Explorer is not the only browser that suffers from these poorly designed sites. Firefox and Firefox OS experience the same fate. Jack Schofield, who wrote about this news on ZDNet, gave an interesting comment on the whole situation.

Obviously, it would be better if mobile web developers could actually follow web standards. However, there’s nothing new about that sort of failure: the same thing was happening with “looks best in Netscape” in the 1990s. Today’s “looks best on iOS” or “only works in webkit” is just a repeat of the same sort of stupidity. Short-term gain: long-term pain.

This comment reveals an ironic twist of fate from the browser wars from the 1990s. Where as then Web developers hounded Microsoft to conform to the Web standards of the day and not use proprietary, IE-only technology, it is Microsoft that is now telling the developers to wise up and use the modern-day standards. Now the roles have been reversed, and it up to the developers to get off the unstandardized train. Internet Explorer has received drastic HTML5 compatibility in the last two versions, and IE 12 should improve the situation even more, so developers do not have near as many excuses to criticize IE like they used to. I will admit Internet Explorer 11 is still playing catch up to WebKit and Firefox, but it is much better than what it used to be. However, in this day and age it seems developers are simply catering to the most popular browser engine and not even caring to support others, even if it is really simple to do (like the mobile GameStop site has done).

In the midst of this news, there are those who are saying every web browser should simply “switch to WebKit” and everything will be good. Now, if they are saying this with good intentions, ignorance, in a provoking manner, or are trying to simply excuse themselves for tailoring to a single browser engine is unknown to me, but there is a danger in such ever happening.

  1. There are people who do not like WebKit. Personally, as a developer, I use Firefox as my primary browser, and thus develop and test anything in it first. Upon starting cross-browser testing, I begin with Internet Explorer, where I might have to make minor changes, then move to Chromium. I never know what I will find when testing WebKit compatibility. Text is always rendered oddly, alignments may be off, and I resist the urge to add -webkit- prefixed CSS animations (something every browser except WebKit has already unprefixed) until I have finalized the keyframes so I do not have to edit the values multiple times. I have talked to other developers who also dislike WebKit for one reason or another. I read how another developer dislikes Chrome because, according to him, something breaks with every release and is not fixed for a long time. A response to that was “Well if something breaks at least at breaks for everyone.” (Wow, what an attitude.) Basically, it comes down to the fact you cannot force people into developing and using one single browser, and if you attempt to, you soon end up with…
  2. Monopolies produce competition. The web browser market is almost like a monopolistic competition market. While there are barriers to entering, once you overcome them it is more or less easy entrance easy exit. While there are and will always be monopolies, these monopolies are what fuel the creation of competitor browsers. To those who think everybody should use WebKit, do you recall the browser wars of the 1990s? That war was all about a big monopoly, Microsoft, trying to make their web browser, Internet Explorer, the only browser people (both users and developers) could use. If you do, then you probably still hate Microsoft for that. However, in your attempts to convince everyone to use WebKit, you are doing exactly what you criticize Microsoft for! Hypocrites! Do you not realize that war is what stated Mozilla and the creation of Firefox and from that sparked the creation of your beloved WebKit? If WebKit did ever become such a dominate web browser monopoly, do you not think Firefox or even IE may begin to challenge the crown and start gaining popularity with users and developers who are fed up with WebKit, the New IE? Yes, this is rather harsh, but it has already been proven in the web browser market and in many other markets that monopolies do not last and eventually face stiff competition. As aggravating as it may be, the Web will always have diverse web browsers engines and no single engine that all but a few hermits use. That is why it is important to always write good, cross-browser code and not always cater to one particular engine (I am not saying a “Works best in” message is out of line unless it is an excuse to cater. Then it is the same deal as already explained).

Tying this all together, this is why I applaud Microsoft for attempting to improve the mobile Web experience by shimming some non-standard WebKit technologies and encouraging developers to produce good, cross-browser code. It means WebKit, as popular as it is, is not the only thing out there, and there are plenty of people who use other browsers. Responsible developers write good, cross-platform, and standard code, and those who do not only cause trouble for everyone else. There is nothing wrong with preferring one over the other. As I said already, I use Firefox as my primary browser. It is when your preference begins to cloud your reasoning and sense of a responsible developer are you in the danger zone.

I, as a fellow Web developer, deeply urge you to write good, cross-platform, and standard code for all web browsers. Put aside your preference, understand your responsibilities as a Web developer, and be a developer that works to better the situation for everyone. When we all well together, the issues we face with compatibility begins to fade, and monopolies, while will still exists, will not be such a big force to reckon with. To me, working in harmony despite diversity (in web browsers) is more desirable that all the pro/con browser monopoly war arguments and fights, and hopefully it is the same for you.

-le717

Advertisements

2 thoughts on “Can we please get back to Web standards?

  1. You’re forgetting a lot of things.

    First of all, the prefixes are a vicious cycle. WebKit is usually at the forefront, so they add prefixes to their engine-specific features. People utilize these prefixed features so much that they cannot remove them by the time the standard comes to other layout engines without breaking millions of pages.

    Secondly, monopoly is actually good when it comes to layout engines. Ideally, there should be one layout engine that all browsers use. Microsoft is kind of hypocritical because they use their own proprietary engine that is generally (in the past) been very far behind most other browsers and their newer layout engines. Firefox also uses Gecko, their own engine… Whereas, WebKit is used in Safari, while the new fork of WebKit is also used in Opera and Chrome. Can you imagine if there were a million web browsers out there with a million different layout engines? Monopoly = standard anyway…

    You say you dislike WebKit, but that’s kind of silly. Just because you dislike Google Chrome (for some reason) doesn’t mean you should dislike the layout engine, which is completely different. WebKit (and the new fork) is a really good layout engine with many bleeding-edge features.

Triangular Reactions

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s