Crimes against HTML: Best practise and the CMS

I’ve been evaluating some content-management systems recently. We’ve got a few requirements that rule out a lot of them straight off: It’s got to be a .net system, be able to run over SSL and be very secure, have decent versioning, document management, audit trails and so on. There aren’t many products out there quite fit our needs.

We’re currently working with one (I’m not going to name names here) which has a document management component that looks something like this:


It’s a simple tree-view that works very similarly to Windows Explorer. Believe it or not, to build that simple box they’ve used twelve nested tables, a div, a span, endless inline styles, javascript: URIs and even a made-up HTML attribute (view the full horror). Even if you don’t know HTML, you can see that it’s overkill. Apart from one on the outer-most element, it’s lacking any useful IDs or class-names for me to hook into with my style-sheet.

I know I’m a mark-up purist, but really that’s just taking the piss. Accessibility? Search-engine friendliness? Page load-time optimisation? Nope, never heard of them. It’s alright though, it does AJAX.

It’s no wonder that so many corporate web-sites have appalling mark-up when this is the state of the default output from the “enterprise level” CMS products that drive them. If web standards and best practise are going to go truly mainstream, we’re going to have to reach out to the developers of these products and nudge them in the right direction.

I’ll leave you with this exerpt from Bruce Lawson & Patrick Lauke’s talk at the multipack’s Geek in the Park event:

Legal & General… made their site accessible because they were worried about the legal risk.

And they found as side effects: 30% increase in natural search engine traffic, a significant improvement in Google rankings for all their target keywords, a 75% reduction in time for pages to load, accessible to mobile devices, their time to manage content reduced from an average of five days to half a day per job, they saved £200,000 a year on site maintenance, they got a 95% increase in visitors getting a life insurance quote (which was the purpose of that site), a 90% increase in sales online, and 100% return on investment in 12 months. And that was the side effects of making the site accessible.

14 Responses to “Crimes against HTML: Best practise and the CMS”

1. comment_author_url)) { ?> matt matt

It’s easier for the Programming geeks to add ajax to the system than for them to learn that using tables etc is utterly shite, and to be honest most of the coding will be done by programmers that only really know how to bodge together webpages in the table stylee.

I find I hand off a design to someone else, all nice and properly (kinda) tagged up and when I see it next all these funny little TDs and TR’s have appeared, usually inside more tables and assorted soup.

I know!! Let’s just to everything in JPGs :)


2. comment_author_url)) { ?> Weon Weon

Ha ha ha ha! I know I’m not as much of a standardista as you are but that makes me cringe.

That story about Legal & General is great – it’ll be dead handy when trying to convince clients of the benefits of building proper sites.

3. comment_author_url)) { ?> Olly Olly

Maybe you’re not, but at least you “get it”. These guys have no idea at all.

As if by magic, a new set of .net web controls have just been released and appear to do a much better job. They’re not perfect (e.g. the tree view has some silly alt attributes and the dreaded href="javascript:__doPostBack) but they’re a vast improvement over what we’ve got here.

Alas they’re only for net2.0. I guess you can’t have everything.

4. comment_author_url)) { ?> Weon Weon

I think Mr Coote has been using that for a while – he certainly was raving about it.

5. comment_author_url)) { ?> Simon Simon

Can you have a word with the dude who made myspace as well. I’ve done CSS for that with about 6 or 7 td’s in a row etc… its a complete mess. People are just lazy I guess.

6. comment_author_url)) { ?> Olly Olly

I think MySpace is a lost cause.

Besides, it’s not just laziness, it’s lack of knowledge. They just don’t know any better.

7. comment_author_url)) { ?> Gareth Rushgrove Gareth Rushgrove

I’m playing with a proper Gartner Enterprise CMS at the moment as well and, although the admin system has similar problems, it is a proper CMS, ie. it manages content and leaves rendering up to you.

This always winds me up about so called CMS systems, when they mix the management of the content with the rendering and end up as more of a portal builder.

8. comment_author_url)) { ?> matt matt

MySpace was bunged together and was never supposed to be all that popular.. the creators must be pinching themselves (probably with gold plated fingers)

9. comment_author_url)) { ?> Caz Mockett Caz Mockett

Gah! That’s horrible.

I get very frustrated when I’ve handed over nicely-semantic and standards-compliant templates to the developers and they go marching over them with their table-based hobnail boots.

The few folks I have managed to try to educate, seem to be “getting it” (finally!) and all of a sudden, you can see the lightbulb go on above their head – “oh, yeah, and it’s easier too!”

I’m about to get my fingers dirty with .Net Nuke – but I know this pumps out some fairly lardy tabled-up crap. Hopefully it’s configurable enough to be able to tell it to use a list instead of nested rows of a table… we’ll see.

You may well hear me ranting about it over at my blog in due course.

10. comment_author_url)) { ?> grant grant

Should I try and guess who’s site it is?

11. comment_author_url)) { ?> Olly Olly

I think you already know.

12. comment_author_url)) { ?> James Chen James Chen

I think so.

13. comment_author_url)) { ?> D D

That’s not Web500 is it? That was the first .net CMS we looked at several years ago. Promised of ‘Oh yea, this supports CSS’ turned out to actually mean ‘sure, you can change the font with an inline style on an element nested a dozen tables deep’


14. comment_author_url)) { ?> Olly Olly

No, this is altogether more advanced. This one supports CSS, but your front-end styling bleeds over into the admin interface and causes havoc back there :D