Levels of HTML knowledge

30 Jun

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:
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?
Levels of CSS knowledge
As you might have understood by now I’m very much pro web standards. The current widely accepted standards are: (X)HTML for page structure, CSS for design, and Javascript for behaviour. HTML is pretty well known by now, it has been there since the beginning of the web and there are tutorials everywhere that gets you started. CSS is starting to get a grip, large companies are switching their sites to CSS based layouts and the webdev blogosphere reaches more and more people.
When you promote web standards, like many of us do, you get to talk to a lot of people. If you promote it in a live chat room like #CSS on EFNet it gets even clearer: there are a lot of different levels of CSS knowledge out there. This article is going to list some of those levels along a rating of how this kind of developer will affect the web. Here we go:
Level 0
“CSS? Isn’t that a multiplayer game?”
These people have probably never made a webpage in their life. If they did it was pure HTML and they barely knew what they were doing. We get some of these people in #CSS, not because they want to start learning but because they think they’ve come to another channel, often looking for CS:S. No need to worry about these people, they probably won’t do many webpages in their lives so they can’t do much harm.
Level 1
“Yeah, I use it to remove underlines on links sometimes”
Different from Level 0, the people in this level do actually know basic HTML. They probably learned it at least five years ago and have made a couple of simple sites. They use very little CSS, only when they need to do simple stuff you can’t do with HTML only, like removing underlines and setting line-height (No! don’t even think about setting line-height with HTML). While these people could present us with some badly coded sites they rarely have any large and well visited ones. This means that they won’t do much harm either.
Level 2
“No, I don’t like divs; tables are much easier to work with”
Instead of just playing with HTML, like those from Level 1, some continued their quest. They mastered HTML tables and started using it to make things look just like they wanted. Somewhere around reaching HTML mastery they stopped looking at new ways of working. They heard about other people using “divs to design their pages” and even took some time one day to try to learn what the fuss was about. After a few hours of not getting it they gave up, went back to the familiar land of tabled layouts, and stayed there. Many do know CSS syntax and sometimes even some background but they believe it’s far too hard and ill-supported to use instead of tables.
Watch it! These are dangerous people, some even webmasters of big corporate websites. Since they have been in the business for a while many are leaders for their web departments. These are the people it’s most important to reach, and if we do it means a lot for the web. Concentrate on these people all you standards advocates.
Level 3
“Yes I’ve heard it’s good, but I can’t use it because of…”
While people in this group still don’t use CSS for positioning they do know some CSS and perhaps heard good things about it. They’ve tried making simple layouts and some even liked how it felt to work with. Problem here is that something is stopping them. Perhaps they have a Level 2 boss, perhaps their website needs to cater for Netscape 4 users, there might be many different reasons but something is in the way.
These people need to know that while CSS does not work everywhere that isn’t the end of the world. Old browsers will still get all your content, just pure content. Instead of them you will reach a new audience: there may be accessibility and usability benefits, newer browsers will get a richer experience and the site might even get easier to add content to (which will lead to more content). Tell this to the people in this group. If you’re unlucky they are not be the ones making decisions but in that case their influence on Level 2 Bosses will still be worth it.
Level 4
“CSS? Oh! Yes, I use divs for all my layouts”
It’s not unusual that these people use only divs on their sites. Each part of their page gets a div, often with a carefully crafted id (#toprightredline or even #r5_c7 with r standing for row and c for column), and then they position their divs with absolute positioning by the pixel. The result looks good, hey, it even validates as XHTML 1.1(!) but what they have missed is that most of the benefits of CSS has been lost. These pages are terrible when it comes to a screen reader interpreting it. Same with older non-CSS browsers, they won’t get the content… they will get one big block of text. When using bad class names and ids you loose the possibility to change the layout: if that red line needs to be changed to black you’ll need to change all your HTML documents too (can be hundreds). Don’t fall into the trap of telling them they are stupid or make them google “css”, they know they are smart people and they did learn about CSS from google in the first place. Tell them exactly what could be improved on their sites. Tell them what the benefits are. Keep your cool and tell them why.
People of Level 4 produce sites that are rather bad. The damage is reduced though by them often being open to new ideas. After all, not to long ago they did manage to learn and start to use CSS.
Some of the reasons for people thinking this way is because of what WYSIWYG editors are doing. Most such editors produce terrible div-only code but I’m hearing that there are gradual improvements in this field. This is a good thing and hopefully this will help people move from Level 4 to the higher levels.
Level 5
“I use CSS for design, it’s better than tables because of…”
After a lot of reading, talking to people and thinking most people arrive at Level 5. This is where you both can use CSS and know why it’s better. Some people in this level have minor problems on the sites they produce but it’s nothing serious. When asked they can argue why separating structure and design is a good thing and they have worked with CSS long enough to know the common pitfalls. I’m guessing many of the readers of this article are on this level and I feel I am. But this is not the best we can do…
Level 6
“What version of CSS? Yes, I do. Did you read my book about…”
For some people knowing how and why isn’t enough. These people strive to improve how CSS is used and are publishing great articles on new ways of using it. They constantly go back to the basic needs CSS is filling and attack problems from new angles, often resulting in more great articles. Some have actually read the whole W3C specification on CSS (sic) and they certainly know which parts are supported by which browsers. They function as role models for beginners and do great things for the web with their influence. Many work with the Web Standards Project. If you ever find an error on their site there is a reason for it. Ask them and they’ll tell you why.

That’s it. I hope this article gave you some inspiration to keep pushing the web to new victories. At which level are you? Do you have examples of people in last level?
January 11th, 2006 by Emil Stenström
Posted in CSS


Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )


Connecting to %s

%d bloggers like this: