Levels of HTML knowledge

Inspired by Emil Stenström’s Levels of CSS knowledge, I started thinking about the extreme difference in HTML knowledge among people working in the web industry. It spans all the way from people who know next to nothing about it to those who know it well enough to write the actual HTML specifications.

I thought I’d describe a few different levels of HTML knowledge. For some people, these levels are stages that they pass while learning more and more about HTML, gradually understanding concepts such as web standards, semantics, and accessibility. Others are at a certain level because it matches their attitude towards HTML and coding in general. Many people never advance beyond the first few levels. For some that is just fine, while for others it is not.

This is all written in a tongue-in-cheek way and is just my personal opinion. Please don’t over-react if you don’t agree or think some of the descriptions are a bit harsh. Try laughing instead.

The levels then:

HTML Level 0

People at this level have never seen HTML except by mistake, like when accidentally opening an HTML email in text mode. These people do not work in the web industry and never will, so they have no wish or reason to move beyond Level 0. They are included in this article to provide a kind of bottom line.

Typical quote:

Age-tee-em-what?

HTML Level 1

These people use the web enough to know that some kind computer programming magic is going on behind the scenes of the websites they use. When trying to publish anything on the Web, they are helpless without a WYSIWYG editor of some kind. It could be Photoshop, Dreamweaver, Frontpage, or the editor built into the CMS they have been told to use.

People keeping a website’s content up to date can often be found at this skill level, and some argue that there should be no need for them to move to a higher level. A lot of visually oriented designers are firmly stuck here by choice, often defending that choice by saying that “Nobody in the print world edits PostScript code by hand, so why should the web be any different?” Many web project managers unfortunately fail to progress beyond Level 1.

Typical quote:

HTML? It’s those tags you use to make text bold or italic.

HTML Level 2

This level contains people who know enough about HTML to be able to find their way around an HTML document as long as they stick to the few tags (everything is called a tag at this level) they recognise. They don’t really want to touch the HTML though.

Many Level 2 people are back-end programmers who prefer the safety of Visual Studio or whatever IDE they are using. They think HTML is too simple for them to bother with and that applications should be smart enough to handle it all for them. Level 2 developers seem very popular with CMS vendors.

Typical quote:

The controls I drag and drop in my IDE work fine in Internet Explorer, so why should I have to even look at the HTML?

HTML Level 3

A lot of old school web developers who have been in the business since the late nineties can be found at this level. Up until the end of last century these people coded HTML by hand, so they know all about nested tables and spacer GIFs. Since then, WYSIWYG editors like GoLive and Dreamweaver have improved to the point where Level 3 people see no reason to learn more about HTML. These days most of their HTML-related work is done in their editor’s design view anyway, so they would rather spend their time learning a specific application instead of finding out more about what is going on behind the scenes.

Typical quote:

Yeah yeah, I’ve heard about those fancy new ul and h1 tags, but I’m doing just fine with my trusty old table , img , and br tags.

HTML Level 4

This level is where people start intentionally using doctypes. The first step is almost always a transitional doctype, often XHTML 1.0 Transitional. XHTML is more recent than HTML after all, so it’s got to be better, right? People at this level are also the biggest fans of XHTML 1.1, since they think a higher version number has to be better.

After hearing from someone that you shouldn’t use tables for layout, a lot of Level 4 people use div elements to recreate a table-like structure. This of course leads to tag soup being replaced by div mania, and a lot of presentational markup, classitis, and inline CSS are produced by people at this level.

Most web developers who have reached Level 4 are willing to keep learning, and they understand that there are advantages to the methods being promoted by web standards oriented blogs and books. But they haven’t yet grasped why those methods are better.

Typical quote:

How can I create a data table with divs and spans instead of tables?

HTML Level 5

Most standards aware web professionals can be found here. These people tend to think about structure and semantics first and presentation later. Strict doctypes are generally used at this level to encourage the separation of semantic and presentational markup. Whether the markup language is HTML 4.01 or XHTML 1.0 is less important to many. In fact, some people at Level 5 are questioning the use of XHTML. Level 5 people tend to get into endless discussions about tiny markup details. They can waste hours thinking about class names or reorganising their HTML and CSS files to make their code look pretty.

If you have reached this level I think you’re doing extremely well. For most people there is no compelling reason to move beyond this Level 5.

Typical quote:

Hmm. I wonder which type of list is the most semantic way to mark up this part of my document.

HTML Level 6

These people are the thinkers of the industry. They spend a lot of time contemplating what will be useful in the future instead of right here and now. The results of much of their work will probably not be of any practical use to the average web professional for at least another five years.

At Level 6 you may have moved beyond actually building websites for a living. Instead you may be concentrating on writing future specifications or interpreting existing ones for browser vendors.

Typical quote:

I think the HTML 4.01 and XHTML 2 specs are too semantically limited, so I am working on a new markup language.

Finding the right level

It isn’t necessary for everybody to reach HTML Level 6. I consider myself a Level 5 person, and I’m quite happy reading the specs instead of writing them so I don’t really feel like I need to reach Level 6. People whose task is to keep a website’s content up-to-date can even get by at Level 1, provided that their CMS is good enough. It all depends on your needs.

What does not, however, is your attitude towards HTML. Even if you don’t need or want to learn all there is about HTML, you have to acknowledge that it is the most important language on the web.

What level of HTML knowledge are you at, and what level are you aiming for?