Much has been made on the web recently of “semantic markup,” and many worthy people have gotten on and off the bandwagon, and agonized mightily over questions of it’s usefulness…
“Semantic markup” is also a term which has been used by many adoring WordPress fans when trying to convert bloggers to their software, and has been brandished against me (as a criticism of my html coding habits, in fact) in a few too many discussions on the WordPress IRC channel (#WordPress, on irc.freenode.net). Apparently, WordPress does semantics better … than some other software, and this is important. Of course, one element of that is my acronym plugin which helps you use semantically correct acronym tags automatically…
Now, I’m working on a replacement for that plugin that’s a bit fancier (you can see what I mean on any of the abbreviations or acronyms on this page), and I’ve had to stop and think about the difference between an acronym and an abbreviation. An acronym is a word formed from the initial letters of a name, such as WAC for Women’s Army Corps, or by combining initial letters or parts of a series of words, such as radar for RAdio Detecting And Ranging. The key here is word. It is not an acronym if it’s not a pronounceable word, (like HTML or FTP) or if its correct pronounciation is letter-by-letter (as in “IP” for Internet Protocol or Intellectual Property, both of which is pronounced eye-pea, and do not sound like “it”). These examples are abbreviations. In fact, acronyms are always abbreviations, and technically, so are contractions like “don’t” and “y’all.”
In the making of my new plugin, I wanted to differentiate between these, since HTML, and XHTML 1.1, have tags for both acronym and abbr ... but then I did a quick google search, and was abruptly remined that in the XHTML 2 recomendations, the W3C has dropped acronym in favor of using abbr for everything. In their considered opinion, too many people were misusing the acronym tag because they wanted the silly pop-up mouse-over tooltips with the deffinition. Of course, IE doesn’t support abbr, but then, it won’t support most of the rest of the new standard either, so who knows when we’ll see XHTML 2 in the wild [:P].
As I understand it, these tags aren’t for people, they’re for programs, they are really meant for two purposes: 1) to help semantically aware parsers ‘learn’ about abbreviations, and 2) to help screen readers know how to pronounce abbreviations. This is interesting, because it means that theoretically, the correct way for a visual web browser to render them is: not at all. You can see the abbreviation, and unless it’s new to you, you don’t need help pronouncing it, or even a deffinition of what it means. If you don’t know what it means, one of two rules applies:
If I use an acronym that I think is unfamiliar to my readers, I will try to explain it in the text, rather than forcing you to do a mouse-over of the term just to find out what it means. Of course, sometimes I’ll just assume you know it, as I do with regular words, and if you happen by my site and decide to read an article about semantic markup even though you don’t understand the term markup, you’re going to need a good dictionary. I don’t have a problem with that. In fact, I’ll go ahead and recommend GuruNet, for it’s ability to let you just hold alt and click on an abbreviation and get a deffinition. Alternatively, Google is pretty good with definitions (they put a little [deffinition] link), and so is Merriam Webster [;)].
So, for my this next plugin, I’m going to use the abbr tag, and wish that visual browsers would not create their own pop-ups. But I’m alsogoing to try to do something more: I’m going to give you the option of having a fancy span tag (with a class=“abbr”) and a javascript mouse-over tooltip which is kind-of fun, and even allows you to put links to more information in it … and I’m also going to give you the option of having the first occurence of an abbreviation augmented by the full deffinition in parenteses, or vice-versa (eg: HTML (Hypertext Markup Language) – or – Hypertext Markup Language (HTML)
What do you think?
Semantic markup is silly. I see the same terms commonly defined and that by logical extension is foolish. If you don’t know what RSS means, for instance, having it explained to you as Really Simply Syndiation means nothing. If you already have an RSS reader, meaning you actually care about RSS, the you don’t need it explained.
And what’s all the hoopla about defining something like HTML? Nobody who’s reading a site cares what HTML means if they don’t already know it. Letters to the Editor of a newspaper aren’t burdened by the writers lack of knowledge about pics and points and ems and ens etc….
The only way semantics would be useful is to define really uncommon words. And so far, nobody does that. There’s just too much work involved.
Roger clearly knows his stuff. Semantics are meaningless! (Oh, the irony!)