The Debate Continues
If you look back in the archives of aMMusing as far back as 2004, you’ll find musings about Web development generally and standard-compliant coding in particular. The arguments in favour of relying on Cascading Style Sheets (CSS) are still very compelling, and I’m currently working on gradually changing all the templates of the websites I help manage to be compliant.
Yet here we are, 9 years after I read my first book on CSS and 5 years after I decided not to “go completely compliant,” and I realize that producing something as ubiquitous as a three-column layout is still a source of major headaches. Someone thinks he’s found the Holy Grail, and in no time others point out how it doesn’t work in [insert name of a common browser] or behaves one way in one browser but a totally different way in the next. A simple, lightweight HTML table just to set out the columns and otherwise being standards-compliant would not only take a mere 5 minutes to bang out, but it would also work all the time; however, if one were to dare making this suggestion to standard-compliant purists, an interminable exchange of nasty barbs is bound to follow.
In 2007. No exaggeration. I’ve seen/read it today. There’s been next to no progress.
However, a guy named Andrew Banks has dared. He argues — convincingly, I think — that using an HTML table to set the relationship among the elements of a template — banner and footer, navigation aids in the left and right columns and the main content in the larger middle column — would still achieve the goal of separating content from presentation just as well if not better than CSS, provided that we restrict the use of the reviled HTML table to that task and to otherwise real “tabular data.”
His conclusion is practical:
Am I saying we go back to lots of nested tables, spacer GIFs, and font tags? No. What I hope to do is free some web designers from being too legalistic, and even wrong, about what the table can be used for.
Even though I am a long-time believer in “the right way is often the harder way,” I also think that constant difficulty may be a sign of a bad fit. If for years you\’ve failed to jam a round peg into a square hole, while a square peg slides in ever so easily, maybe it\’s because the square peg belongs there.
I guess now I’m torn more than ever on the issue, especially when I see huge dynamic websites like cbc.ca managing to switch to full compliance. But think of the budget the Canadian Broadcasting Corporation has compared to my clients.
Like Banks, I’m wondering if the zealots of standards compliance have missed a point along the way. I’m more than prepared to respect S.C. whenever humanly possible and would certainly accept some differences among browsers. But after spending a good part of this weekend trying to make compliant a simple three-column template and realizing that we’re still not there yet — at least not without a gazillon mind-boggling hacks and fixes — I’m starting to wonder if we’ve become unable to distinguish the trees from the forest. As a Web developer, would I really deserve to be brought to the pasture and shot for suggesting that we should always favour standard-compliant code except in the odd instances when it just can’t be done?