Tuesday, September 19, 2006


As I am involved in Web development a lot I have some knowledge and opinions about validation.

First, validation is logically irrational. What one does is to compare a coded page that has to run in a piece of imperfect software called a Web browser to a library of standards that may or may not be supported expressly or correctly by the software people will use to access the Web site.

The W3C is a great idea and I am all for standards but it is an organization that has no authority to impose its will upon software makers. Browser makers with ideals may well endeavor to comply, while still supporting other technologies, either too new or not within the radar screen of the almost arbitrary standards of the W3C.

Microsoft is a big player in this area and will not soon even claim to endeavor to support the W3C recommendations fully or as defined. So, using a validator is about as sensible as using an Oxford English dictionary to correct New York City mobsters on their use of English. The Oxford dictionary is a fine standard to which one can aspire in English writing and usage, though it has no authority at all to impose its will on the streets of New York City.

A site can pass a validator with flying colors and still look broken or poorly rendered when viewed by a person using a browser. Unless, of course, you refrain from using a large portion of the technology available to you and design a look-alike template with lovely little blocks, borders and padding. You will then be YAWN compliant and meet the BAH (boring as hell) standards.

The W3C misuses the word "deprecated". In a world where the company that sets the standards actually makes the product, like Sun Microsystems and Java, the word "deprecated" carries some real weight and authority. It actually means that in either the next version or a near future version of their system, some things will actually cease to work and be removed. This is never the case with W3C recommendations. They have no power to deprecate anything. While no developer worth his salt uses a "center" tag or a "font" tag anymore, these tags sure still work and will work in the next versions of the browsers, though they've been "deprecated" for over 5 years. The strict and transitional modes are so buggy and inconsistent still that I think they are the real "quirks" modes.

The point is not that CSS isn't a better way, it's just that W3C validation is a fantasy land that may come true someday. As for today? No IE does not speak XML, it just happens to be forgiving about code style enough that it allows say a "br slash" without too much complaint.

CSS is just one part of the vehicle that is a browser, and sometimes good old fashioned technology like tires and windshield wipers are still very useful.

I love to hear people who have an underinformed religious zeal for W3C standards complain that the use of tables is deprecated except for use with "tabular data". So I ask, "What defines tabular data? " The answer is usually "things that want to be displayed in neatly aligned rows". Well that's cool, so if my divs won't line up at 100% height then I can use a table instead because I want my page "to be displayed in neatly aligned rows" ? Nevermind, I'll just use CSS and then fix it with Javascript. Hey, by the way, use of your car's air bag has been deprecated except for use in wrecks.

To recap, W3C has no real authority. Browsers are imperfect and inconsistent implementations of "standards", but are themselves the only really useful validation tool that matters. Sure some rendering time improvements come with CSS, but they are far more noticeable on old 300mhz computers.

No, none of this means that you don't need to learn CSS, of course you do, however, I think "people being ignorantly vain about the W3C and the implications of validation results" is now also "deprecated". No, genius-web-hero, not "depreciated", you are reading that wrong. Now YOU are deprecated and are slated to be removed from life, eventually.