Why Standards Matter: Part 1 of a quasi-treatise rant on web standards.
Standards are set of rules, or guidelines that dictate what everyone who they affect should comply with to provide the most uniform quality product available. Every industry has standards, including the internet. The only difference is the repercussions caused by ignoring these guidelines. In most industries if a company doesn’t follow a standard typically a regulating body will fine or even shut down the location. Or, even worse, the customers may stop purchasing the company’s products, granted that the consumer is intelligent enough to carry out such actions. Many industries are pressured to follow the guidelines approved by the International Standards Organization, that’s where the ISO 9001 comes from, or .ISO for disk images. For the internet, there is the World Wide Web Consortium.
The W3C writes and maintains the specifications for HTML, xHTML, CSS, DOM, XML and a variety of others. Standards for the web are needed due to the mammoth number of individuals (some intellectuals, others may as well live in a zoo) that write code that interacts with an end user through the web. This includes everyone that writes a webpage, to those working on Mozilla Firefox. Because no two individuals are alike, typically people will have different opinions and ideas on how a particular object should be represented. In web browsers this resulted in Microsoft Internet Explorer rendering a HTML document differently than Mozilla Firefox, or KDE Konqueror. Instead of coding a website once, and displaying correctly on every web browser, the developer has to test on several and work out any ‘bugs’ due to rendering discrepancies. As humans are inherently lazy creatures, many individuals met and formed the W3C to alleviate this situation by laying a common framework for everyone to work off of. Standards are great, when everyone follows them to the ‘t’. Otherwise, once egos, or other forces cause one individual to stray from the standards unforeseen consequences may result.
Picture little Jimmy, he’s enthusiastic about learning how to create his own web page, but doesn’t know how. As no one he knows, or would ask, knows about web programming, he’s never heard of the W3C. Now Jimmy isn’t by any means nerdy, and doesn’t have the time to search Google for a good tutorial (and read it) on web programming. So what does Jimmy do? He views the source code of his favorite web site. What happens if this site doesn’t adhere strictly to the standards laid out by the W3C? Instead of only one non-compliant webpage, there are now two, and if Jimmy likes web programming there could be many more until he learns better. Jimmy may never learn, and that’s because the rendering of his pages only matters for his favorite browser (most likely Internet Explorer). From now on one will refer to this as the ‘Jimmy dilemma’.
The ‘Jimmy dilemma’ gets worse, as even with complete compliance with web standards, Jimmy may still end up mimicking a website incorrectly, creating invalid code. As for every educated web programmer in the world, there are 10 Jimmies. Only one practical solution exists to alleviate this situation. Some may see this solution as a bit harsh, but its better than the alternatives. Ultimately what needs to happen is browsers must refuse to display a non-standards compliant webpage. Practicalities may render this difficult as Microsoft has in the past implemented features into Internet Explorer with no regard to established standards. If implemented correctly by all parties, a more practical approach than enforcing the other methods, this method is 100% effective. How so? Observe the ‘Jimmy dilemma’ once more. If Jimmy were to produce invalid code, the result would be a blank page. Even by ‘hacking’ his way through the creation of the page, for it to display at all it must be valid code. Jimmy will either become fluent in a standards compliant web language (xHTML 1.1) or will give up, leaving others to take his place. Remember that everyone was once in Jimmy shoes, and therefore comprehensive, and easy to understand tutorials should be made available by the web browser’s publisher. These tutorials should be in the spirit of the Creative Commons licenses. What one means by this is the W3C guidelines taken straight from their web site are difficult and time consuming to comprehend fully, akin to what the Creative Commons calls “Legal Code” (It used to be something like “Lawyer Speak” but that’s since changed.)
[end of transmission, stay tuned]