It’s a new year, and what better way to start off than with a lengthy rant. Strap yourself in.
People often ask me why I am so concerned with writing standards compliant HTML, and they have good points, mainly that it takes longer to develop something that is compliant, and the only people who really know if it is are other developers. I’ve always been in favor of standards compliant code, but to be honest, for a long time I didn’t even know why I did it, it was really just nerd lore to me, the big nerds wanted it, and I agreed blindly. You might think that a production environment with constantly encroaching deadlines would make me throw my compliance to the wind, well to a certain extent it does (although I write standards compliant XHTML out of habit, I do not have time to fix other people’s code). However, this high-pressure environment has made me appreciate standards compliance all the more.
When I think of standards compliance, I can’t help but think of the most disgusting feeling in web development: code that is generated by a WYSIWYG. Good luck validating it. It really is the least compliant code there is, and it causes me lots of headaches in development. I am the resident CSS guru where I work so I handle a lot of the styling of our sites. If it’s done with a WYSIWYG it is practically impossible to style, or at least it takes forever. And even if someone doesn’t use a WYSIWYG but is an old-school HTML coder and still uses a lot of tables, it is still difficult to style, but at least manageable if they include enough class / id tags on the tables.The bottom line remains the same–too much work for not enough styling.
With a large WYSIWYG site there is basically no recourse besides a ton of CSS hacks (ugh), and the result isn’t ever really pretty. For smaller WYSIWYG sites and for sites handcoded with tables, it’s manageable. I first replace all the tables with divs, and if I’m feeling REAL nerdy I close the breaks hehe. After that it’s no sweat, but still a big waste of time.I’d really like to develop a WYSIWYG that uses divs instead of tables.