I generally advocate standards compliant code, but sometimes things can go too far. And too far is when it harms the user experience. There’s been a lot of fuss lately over what code to use when embedding flash in a web page and when I read most of it I find myself wondering “what is best for the user”. As a developer, this is sometimes an uncomfortable thought since it usually means more work and like most people I’m inherently lazy. But I try to fight against the laziness and put the user first.
Users just want a web site to work. They don’t care if it validates. Developers want it to validate. Validation is an important tool both for finding errors and future proofing the site and whenever we can make a page that validates we should, but if the only way to do that is to harm the user experience than we shouldn’t. If it’s not possible to produce the ideal user experience and be standards compliant then I’ll always put the user experience first.
So, to answer the question I started with. Web standards are important for the future of the web. They are important for browser developers, for tools developers, and for site developers. But I’m not going to make a standards compliant site that provides a sub-standard user experience just because I have the mistaken opinion that by doing so I would encourage Microsoft et al to produce browsers that implement the standards or because I hope that future browsers will implement the standards and when they do I won’t have to change the site to work with them. That would be a poor service to provide to my clients and my users.