Using Semantics Correctly

We all know to avoid using the <b/> and <i/> tags. We’ve also been taught that the semantically correct versions to use are <strong/> and <em/>, respectively. But it seems like these two tags are now being used just like the previous two: when something should be bold, we use <strong/> and when something should be italic, we use <em/>. I’m guilty of this myself, and I think it’s time we web developers put a stop to this.

The <strong/> and <em/> tags are supposed to have semantic value, not just stylistic value; they should be used to indicate something additional about the data. The <strong/> tag should be used to indicate something that is important, and it just so happens that browser interpret “important” to mean “bold.” Likewise, the <em/> tag is used to indicate that something should be emphasized. The latter is the one most often abused since emphasis is such a squishy description. For instance, we’ve all been taught to italicize book titles…this is not to say that book titles should be emphasized. It would make more sense to create a style for book titles that happens to italicize the text rather than using the <em/> tag.

There is a great description of how these tags should be used over in the Web Applications 1.0 spec for both tags. Good reading for semantics junkies.