HTML - not so simple

Note: This is a repost of something I first published in December 2003. Since this site gets a lot more traffic now than it did back then, I’m hoping that more people will participate in the discussion this time around.

A while back, Patrick Griffiths at HTML Dog wrote about the need to take HTML seriously. I agree with what he is saying. It seems like many people who wouldn’t recognize an HTML document if they opened it in a text editor still think HTML is “easy”. Well, it can be. It can also be quite difficult and complex. Like so many other things, HTML is easy to learn but difficult to master.

There is a need to make those who do not work with web development and design understand that coding HTML or building websites is not something anybody can do well without spending plenty of time learning how to do it.

Actually, the majority of those who do work in the web business need to understand this as well. It’s amazing how rare it is to come across a web designer or web developer that really knows and understands how to use HTML and CSS properly. On the other hand, it’s very common to meet people who refuse to unlearn the bad coding habits from last century because this new web standards thing is too difficult and the old way still works. These people haven’t made a decision to ignore semantics and keep coding presentational HTML; they don’t know or care about semantics or structure, so they have no clue that good HTML is based on just that.

So who or what is to blame for this? I believe WYSIWYG HTML editor applications like Frontpage, Dreamweaver and Golive are one culprit. The tendency of clients, managers and graphic designers to focus only on the visible part of the web is another. What you see is what you get. Or so some want to believe.

It’s very hard for many to accept that you really need to know what you’re doing to build a good website. I find that a bit strange. After all, most people accept that you need a driver’s license before you’re allowed to drive a car, or that becoming a world class athlete requires talent and countless hours of practice and training.

So, what can we do to make people realize that it takes skill, experience, and a bit of talent to create good looking, usable, standards-compliant and accessible websites? Can anything be done? I’ve been thinking a bit about this, and I’ve come up with some ideas, all based on the fact that not everybody is up to par on web standards, semantic markup and accessibility:

  • Explain to clients/managers/co-workers that if a document is marked up with valid, semantic HTML and styled with CSS, separating content and presentation, everybody wins. Talk about the benefits of increased download and rendering speed, accessibility gains, improved search engine rankings, easier maintenance, and better portability. Then mention accessibility and search engine rankings again, since those are two things that I’ve seen make people listen a bit more carefully. And then explain that the HTML created by somebody using a WYSIWYG editor is unlikely to be either valid, semantic or accessible. Unless, of course, the person using the WYSIWYG editor knows their HTML very well.
  • Make sure to get the message through that following web standards does not mean locking out users of older or less capable browsers. That’s the old way of doing it. With valid, semantic HTML, the content will be accessible to all browsers, but ancient browsers or browsers with little or no CSS support will get an unstyled, or very basically styled, document.
  • If you’re working in a team with people who are less HTML savvy than you are, do your best to increase the overall quality of the code produced by the team. Explain to everybody in the team, including managers and others who do not work hands on with the code, why it’s important. Try to show the way, and don’t avoid certain types of markup because other team members could perceive it as “hard”. Use what should be used. If somebody finds semantic HTML difficult to understand, well, they need to learn. And you could be the one to help them learn.

Just a few ideas on how to get started. What do you think? Is this the right way to go? Do you have other, better ideas?

Posted on August 19, 2004 in Web General, Web Standards


  1. August 19, 2004 by David Rieger

    I think, this article is really great!

    Just a couple of days ago, I started working on a website with a friend (the website is for our school). I was relieved when she agreed to use “css layers”.

    I wrote XHTML code and she asked me why: “Why use XHTML instead of HTML?”

    At first, I could not answer her question very well. But now that I think about it, one good reason (for using XHTML instead of HTML) might be the interoperability. But that sounds a bit “hollow” [Bad word ;-); don’t know how to describe it properly]

    If anyone here had some good reasonable reasons and posted them, I would be very glad.

  2. August 20, 2004 by Josh Fletcher

    I think this is a great little article. You just covered something I’ve been thinking about a lot recently. I have just start doing web design freelancing and the question from the client always pops up, ‘What’s so great about this XHTML/CSS?’ I guess the main point is, unless we as standards-compliant web designers begin opening the general public’s eye (and clients of course) to the fact that ‘Internet’ does not equal ‘Internet Explorer’ and that WYSISWG editors produce sub-standard (no pun intended) code, we will have to put up IE and it’s standards-mangling ways.

  3. August 20, 2004 by Josh Fletcher

    Apologies, “put up with IE”…

  4. Well put. One problem is that most people don’t want to learn HTML or CSS. They want WYSIWYG tools that create the code for them. Unfortunately, contemporary authoring tools do not produce valid, semantic code. Unless you’re an HTML/CSS expert, but that kind of defeats the purpose.

  5. Roger, nice article. Certainly worth to be republished ;-) David, good reasons don’t exist.

  6. Tommy - you clearly haven’t looked at the XHTML output from Dreamweaver MX. Its actually pretty good. It has its problems (ISTR some problems with lists and form fields, and its ASP was still very bloated), but I’m told these went away with the 2004 update. Of course, its still easier to use it to design using tables and fonts, but its “CSS mode” is a good step forward. Its template functionality in association with this means that a designer can create a nice template and then, after a bit of training, they can let the grunts fill it with content without worrying (too much) about them fscking it up. Saying that, I don’t actually use it anymore - I’m now a 100% hand coder (Bradbury Topstyle 3.1 Pro). But don’t rule Dreamweaver out - its evolved into a pretty decent tool.

  7. Olly - I’m forced to use Dreamweaver MX 2004 at work. We use HTML 4.01 Strict rather than XHTML, see Anne’s weblog for good reasons why. :) DW isn’t all that bad, but you still have to know what you’re doing. If you click on the wrong button or happen to slip with your mouse at the wrong time, DW can spew out hundreds of invalid presentational attributes. Clicking on the Indent button for a <p> will change it into a <blockquote>. Not exactly semantic. DW is clearly better than Frontpage for standards-compliant code and accessibility, but it still has a long way to go. At this point in history, nothing beats hand-coding.

  8. August 20, 2004 by Roger (Author comment)

    Regarding Dreamweaver, XHTML and CSS: I’d say it’s almost impossible to create software that will produce semantic markup unless the person using it knows what they’re doing. I’ve seen plenty of cases where complete paragraphs are marked up as headings, because the editor “wanted the text to be bold”. How would a WYSIWYG app detect that? Valid XHTML (or HTML, Anne ;-) ), is not impossible to enforce, but semantics are much harder. Valid, well-formed, non-semantic markup is better than invalid, non-well-formed, non-semantic markup though.

  9. Right on. It took me years to learn good HTML, years to learn CSS and it took years to unlearn all the bad habits I formed in the process. I’m still working at it! This stuff takes time and effort, it’s not impossible, but to get it right you’ve got to be commited and it sure isn’t easy. Even with all I’ve learned I still come across occassions where I’m unsure of the best way to proceed with code. You really have to know, and think about what you are doing to make the best decision when it comes to your markup. Great article and good tips!

Comments are disabled for this post (read why), but if you have spotted an error or have additional info that you think should be in this post, feel free to contact me.