When considering web standards here are 10 things to think about:
1. There has been an old joke going around the IT industry for years, and many other industries where standards are discussed, and it goes something like this:
"The great thing about standards is that there are so many to choose from."
The point of the joke is that a standard suggests only one standard way of doing things, so having a choice of standards doesn't really make sense. This is true with the web standards out there too, do you go for a HTML standard or an XHTML standard, which of the many versions, etc.
2. However many standards there might be, they are really only two types of standards to be aware of, and to understand the differences between:
a.
de Jure standards - these are standards made by either law or committee, and in this case of web standards, these are standards, or guidelines, provided by W3C
b.
de facto standards - these are the actual standards that result from market forces and practical requirements, and in the case of web standards, these are an amalgamation of what does and doesn't work in the popular browsers out there
3. In the web world, due to different implementations of different browsers, and different interpretations of the de jure standards by different browser manufacturers, implementing a website to a simple de jure standard can turn into a very complex de facto standard implementation due to the various quirks of different web browsers. In some cases there might not be a de facto standard equivalent of some de jure standard feature, or a non standard "doing things differently for different browsers" de facto standard way of implementing a de jure standard feature (which then begs the question is it really standard at all)
4. In the web world, de facto standards will always be behind de jure standards, browser market share and browser implementations playing either the catch-up game or the backwards compatibility game dictates this situation
5. Tests like
Acid test 2 and
Acid test 3 show the difference between a de jure standard, and how standard compliant the browsers actually are. More importantly, sites like
quirksmode.org also show whether different browsers actually support different areas of standards
6. To emphasise the difference between de jure and de facto standards, it is possible to code a website to the very latest de jure W3C standards, e.g. latest version of HTML, XHTML or CSS, and for it not to work (or look broken) in the most popular browsers that are in common use today. So although a more standards compliant website sounds like it might support more browsers, it might actually mean that it supports less browsers. Sometimes making a website too standards compliant doesn't always make it more future proof either, as was noted with the
IE7 release.
7. It gets even more complicated when not just taking into account browser capabilities, but also taking into account email reader capabilities for HTML email, which are usually a lot further behind than the browsers.
8. Because of all these issues, there are many different approaches that web developers take to creating websites to work around these issues, all of these approaches might be standards compliant or not, but they may also be standard or non standard depending on what your definition of "standard" is. The only way to write one standard piece of code that presents consistently on many targets, is to use a lowest common denominator approach, using an old de jure standard which is old enough to have finally been adopted by most of the browser and HTML renderer implementations. As soon as you start doing things differently for different browsers you do not have one standard piece of code any more, so although it might be standards compliant it is isn't one standard code base. An alternative graceful degradation approach, which involves coding to a higher common denominator, can mean that the site in older browsers does not render in a consistent way, in which case you do not have a standard website presentation across different browsers.
9. With modern websites, the presentation layer, or what gets sent to the browser, the client-side code, the HTML, the XHTML, the CSS, is merely the tip of the iceberg of the total amount of code in the system, the server-side code, the PHP, ASP.net, SQL code, (even the client-side javascript AJAX code) etc, so having a W3C web standards compliant website is no indication of the overall quality of the code, or the quality of the system architecture, underneath it. In some cases it might be a good indication, in other cases it might be a warning sign that the developer has focused too much on one small area and not spent the time on other more important areas.
10. Create your website for your intended audience. If you create a site for people wanting to buy designer clothes, the people visiting your site wont be interested, and will even get confused if you have "blind them with science" icons like "W3C HTML v4.01" or "W3C CSS vX.x" on your home page. Placing links such as these on your home page can also introduce
pagerank leakage, which goes against guidelines, best practices, or the "de facto standards", of implementing search engine optimisaton (SEO) on your site.