A couple of pieces on semantics have crossed my path recently:

  • mezzoblue | Who Cares about Semantics Anyway? and the very neat, tidy and useful mezzoblue | Markup Guide
  • Le blog personnel de Joe Clark | Semantics: During the night-before dinner at the @media conference by the River Thames, I handed around an official @media pad of notepaper on which I had written the following: The Latest Exercise in Shutting WCAG Up Write down your own definition of "semantics" (or "document semantics") and passed it around the table. The results are amusing and insightful with a big dash of "too damn true" (Jeremy Keith nails that one). Ahh the problems of definition. Must have been one hell of a dinner party, too.
  • What's in a word? | clagnut/blog: However apt it may be, semantic is just one of those words that sounds too technical; try putting into conversation and peoples eyes will gloss over.

Now... we All Know™ semantic markup is fundamental to creating web documents which are standards-compliant, accessible, search engine friendly and so on. In fact, we probably learned the difference between <b> and <strong> so long ago that we forget there are plenty of people that don't even know there is a difference, let alone know what that difference might be.

Joe Clark's exercise got me wondering how on earth a newbie developer would approach semantics. I was comfortable with the concept as soon as it was explained, but I can appreciate that it wouldn't come naturally to some. It must seem like a lot of very high-level theory at first, really deep, meaningful...yawn...stuff. The kind of stuff people don't really want to know about, most of the time. Which is sad, because just about anyone in modern business would benefit if they really got their head around semantics (and separation of content from presentation).

too busy cutting wood to sharpen the saw

Your average office worker probably uses Microsoft Word constantly, yet most people don't use the style dropdown to mark up their documents. They just merrily set the font size and weight and occasionally wonder what that "Normal" dropdown is all about. Some people eventually learn (usually the hard way) that long documents should be formatted according to semantics, although they probably wouldn't use those words. The cause is not helped by the fact that Word is absolutely abysmal at semantic markup. I've found myself using XHTML documents instead, out of sheer frustration at Word's inability to mark up a nested list. But I digress.

Most people are blissfully unaware that "bold" expresses style, not meaning. In fact, I'd say most people probably don't care. They probably think you're a bit weird for thinking about it at all, let alone getting emotionally involved enough to get into arguments about it. It's a lot like philosophy, that way.

ignorance is bliss

One of my university majors was philosophy, so I explored concepts like the nature of reality: how do we know we exist? I find the topic highly stimulating and well worth the time and money to study it at length. Besides, it made a nice counterpoint to the journalism major.

The science and engineering students I lived with (at college) thought somewhat differently. Dining hall conversations would be joined by people who would contend that it was useless to discuss the topic. They know they exist, they're talking right now and eating this rather ordinary meatloaf. Questioning how they know just seemed stupid. They weren't interested in the idea that maybe we take a lot of things for granted.

Still others - including some fellow philosophy students - actually found it incredibly tough and even depressing to study philosophy. The more they realised that life can be proved meaningless and ethics are relative, the more they wished they'd never asked. It made me realise that the dumb jocks who couldn't grasp even the most basic premise of existentialism lived in a kind of happy void. Their world was complete without these 'higher' thoughts.

I came to realise that on a fundamental level, for daily life ignorance is bliss. People would rather live in happy ignorance than troubled intellectualism; and I guess who can blame them?

preaching to the hostile

The majority of the cut the crap people were doing degrees like engineering, business and science. People who like rules to follow and a bottom line to justify it. Interestingly enough, people doing medicine and basically any of the humanities were quite happy to discuss philosophy. Most people studying to be a doctor eventually discuss ethics, mortality and the meaning of life. IT students were split. Some got right into philosophy, some were scathing.

In a lot of ways, the people who discussed philosophy in the dining hall are the advocacy targets in my professional life (note to self: check for premature grey hairs again). A concept like semantics is no more palatable to them now than the nature of reality was to them back then.

Frankly I don't care if nobody else wants to explore the meaning of life, but I do care if people use semantic markup. Semantic markup is important; it has real, measurable benefits; it's as practical to web developers as a spanner is to a mechanic; and it really isn't hard. So how do we sell the concept to a hostile audience?

a spoonful of sugar

We need to make the idea of semantics a little more approachable and a lot more palatable. In some ways even the word itself doesn't help - it's a pedantic-sounding word. It might be a real nuts-and-bolts kind of practical tool, but it sounds like wishy-washy crap. In the context of web development, it sounds "too hard" for a lot of people. Just like some people buy a car "that goes from A to B", many people "just want a web page that works". They don't want to expend mental energy, they're "not a zealot, they're just doing a job".

As always, we have to talk up the practical benefits and forget about anything that sounds like the moral highground. As I have said before (during presentations), the moral highground doesn't work.

Perhaps we'd be better talking about "structural" markup, or "meaningful" markup. The name you give something shapes the way people react to it, so let's avoid making it sound intellectual. If we say structural it sounds like something that an engineer would design. If we say meaningful it appeals to the "call a spade a spade" types.

Plus, we need to spend a bit more time on teaching the non-technical sides of web standards. We get so caught up in talking about >abbr< and >acronym< that we forget to tell people why it's important not to just bang in the letters with no tag at all. We have to find ways to get a small amount of theory in before we start telling people the practical stuff.

That, or we should just tell the engineering students that it's really hard and take away their beer until they learn it. Beer and testosterone, works every time. You have to know how to motivate people, after all.