There are many people that talk about xHTML and CSS code with a passion (myself included), and that only perfectly valid code is the way to build a website. If you want my honest opinion, the only reason my code is always valid is to shut up the critics that only base critiques on whether it passes the nice Validator Test over at W3C.
On the odd occasion, the Validator can be a good way to spot a mistake, but in no way does it guarantee cross browser compatibility or in fact make it work in future browsers. In fact, more often than not, perfectly valid code will never be cross-browser compatible, and that is the most frustrating part of what I do. What is the point then in having these standards? At the end of the day, a website user doesn’t care how a website works, so long as it works for them!
I guess it just comes down to some people’s mantra, or work ethics. When I create the code I do, I firstly ensure that it is cross-browser compatible (for the consumer), and once I have succeeded I then start to work on ensuring that the code is also valid (for my ego). Obviously the consumer comes first, but as the perfectionist I am, standards are imperative. It also shuts those small-minded critics up!
To me, what is far more important is the accessibility and usability of a website. There are people that like to think that valid code means these two things, and they couldn’t be more wrong. Semantics and logic are the key to these issues, which is something I’ll be talking about in the not too distant future!