This is my entry in to a long and continuing series of rants about standards compliance and best practices.
The fact that Chrome, which prides itself on its adherence to standards, is having problems displaying web pages is unsettling. This is not a fault of Chrome’s ability to display pages. It is a problem with the way web design is approached in general.
The real trouble is that, despite all of our technological progress, the internet is still trapped in the ugly quagmire of the “just get it to work in the quickest and easiest way possible” mindset. The reason you see so many glitches moving from IE to Chrome/Firefox (or vice versa) is that, with the dominant market share, IE is still the browser to design for, even though it treats standards like some sort of highly contagious disease. If people were to sit down and design their websites according to the standards set down in the HTML 4.01 Strict and CSS 2 specifications, with a little attention paid to web design best practices, the problem would all but go away.
For instance, when I sat down to revamp my website I decided to follow a best practices approach to it. I was inclined to do that anyway, just to keep up on things, but the additional rewards have been numerous. By moving to a standards compliant and best practices influenced design I was able to rework the entire look and feel of my website without touching the HTML code (aside from moving a bit of remnant design code I had overlooked in to the CSS file, and fixing a few bugs that had lain hidden to that point), which saved me a lot of time. The look and feel update from the first to second version of this site took months. The code update to be standards compliant took a few weeks. The last look and feel update took a few days, and the next should be even smoother.
I have also been able to add new pages in record time, spending all of my time simply filling in the content while having the design already set up for me. Now, just looking at the way the code is set up I can see that it would be quite easy to move the site from a statically coded page to a dynamically populated site, since all of my HTML pages resemble simple templates to which my CSS is applied. Most importantly, my site runs runs cleanly and quickly, and displays perfectly in all of the major browsers (only required the one small mathematical tweak to display in IE perfectly). It even displays perfectly on the iPhone, zooming smoothly by the pinch gesture, or zooming in to specific elements via the double tap gesture. It always settles on the right element and nothing appears out of place.
The trade off for this was a good deal of time spent honing my skills in complying to the updated standards, which I was not overly familiar with. I had to spend time researching the standards and best practices instead of making forward progress, which was a day or two of education. Then I had to apply these unfamiliar approaches, which naturally took much more time than doing things the way I was comfortable with.
My personal experience aside, at the end of the day, the guiding force behind web design practices is the industry, who, more often then not, are flying by the 80-20 principle. Unfortunately best practices and standards compliance usually end up being the 20% that gets abandoned, while the developer focuses on “making it work in IE as soon as possible.” In the industry it’s all about solving the vast majority of problems as quickly as possible to keep the bottom line down and profit margins high. No need to do things right, so long as they get done and work. Time is money, and learning how to do things right takes too much time with no immediate return on value. (Naturally the value comes later when the site breaks in a new browser or for a new customer, and the developer has to spend time fixing a bad design. This value is slowly being realized, but the industry knee jerk reaction is still “get it done and out and making money and we’ll fix it later”.)
And so the blame for a misbehaving website is really two-fold. On one hand you have web developers choosing, or being required by their companies, to ignore standards to get the job done quickly and easily, and not bothering to learn what is right or how specifications or best practices have evolved. On the other hand you have Microsoft dominating the majority market share with a product that treats standards like Somebody Else’s Problem.
If IE obeyed standards, even only to the extent Firefox does (asking for the kind of standards support available in Chrome to be moved to IE is akin to wishing for a cure for the common cold), developers would finally be able to balance standards compliance with creating websites quickly to satisfy corporate time lines, and it wouldn’t end up mattering which browser you were using.
Will this ever change? I think it’s doubtful at least in the short run. So long as Microsoft maintains the dominant market share, they’ll be hard pressed to spend a lot of time focusing on standards compliance or speeding up their browser in the way Firefox and Chrome have been doign. They’ll do just enough to maintain their position, but will probably focus on adding more features or more tie-ins to their other products that will make moving from IE far too difficult for most.
If Chrome and Firefox continue to chip away at that market share, and eventually cause all three to balance out, I think it’s anybody’s call as to what Microsoft will do with IE. Naturally, in an evenly held market, it becomes anybodies game and the industry and consumers will dictate how to move forward. My worry here is that if standards remain as they are perceived today by developers (an inconvenience for most and the holy grail for a few), then nothing at all will change. There’s always the hope, I suppose, that with the inability or reluctance of the industry to change the way it approaches web design, they may simply to switch from designing for IE to designing for Firefox or Chrome, with adherence to standards becoming an unintentional side-effect.
My personal hope is that people will see all of the benefits that designing by standards and best practices provides for a developer and end user, and will start using them gladly and thoroughly.