Over on public-html (and cross posted to www-html), there is some intense
bikeshedding going on pertaining to the
use of the b and i elements
and why they should or should not be retained in HTML 5. Some have argued
that b and i are
strictly presentational elements, and that they should not be retained
in HTML5.
Others have argued that the b and i elements are
virtually synonymous with strong and em in reality, so trying
to define otherwise is pointless. The reason that i and b could
be considered synonymous with em and strong, respectively,
has to do with them being used largely interchangeably with each other in
reality, and very little to do with their actual definitions.
However, it’s reasonable to hypothesise that there would be significantly
more non-emphasis-usage of i than there would be usage for emphasis,
and so defining that all uses of i represent emphasis would be
a mistake (similarly for b and strong).
Therefore, the pragmatic approach is to specify that i and b convey
unspecified semantics, which are to be determined by the reader in the context
of their use. In other words, although they don’t convey specific semantics
by themselves, they indicate that that the content is somehow distinct from
its surroundings and leaves the interpretation of the semantics up to the
reader.
That is effectively the approach taken by the HTML5 spec. These are the current
definitions for the b and i elements.
The
belement represents a span of text to be stylistically offset from the normal prose without conveying any extra importance, such as key words in a document abstract, product names in a review, or other spans of text whose typical typographic presentation is boldened.The
belement should be used as a last resort when no other element is more appropriate. In particular, headers should use theh1toh6elements, stress emphasis should use theemelement, importance should be denoted with thestrongelement, and text marked or highlighted should use themelement.
The
ielement represents a span of text in an alternate voice or mood, or otherwise offset from the normal prose, such as a taxonomic designation, a technical term, an idiomatic phrase from another language, a thought, a ship name, or some other prose whose typical typographic presentation is italicized.Terms in languages different from the main text should be annotated with
langattributes (xml:langin XML).The
ielement should be used as a last resort when no other element is more appropriate. In particular, citations should use theciteelement, defining instances of terms should use thedfnelement, stress emphasis should use theemelement, importance should be denoted with thestrongelement, quotes should be marked up with theqelement, and small print should use thesmallelement.
Context is effectively how users distinguish between italics used for emphasis and the variety of other uses, so providing a couple of catch-all elements for the remaining cases that don’t have specific elements, isn’t all that bad.
The separation of presentation and semantics isn’t a goal in and of itself that needs to be strictly adhered to. Rather, it’s just a means to an end and if that end can be reached without a strict separation, then so be it.