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
b
element 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
b
element should be used as a last resort when no other element is more appropriate. In particular, headers should use theh1
toh6
elements, stress emphasis should use theem
element, importance should be denoted with thestrong
element, and text marked or highlighted should use them
element.
The
i
element 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
lang
attributes (xml:lang
in XML).The
i
element should be used as a last resort when no other element is more appropriate. In particular, citations should use thecite
element, defining instances of terms should use thedfn
element, stress emphasis should use theem
element, importance should be denoted with thestrong
element, quotes should be marked up with theq
element, and small print should use thesmall
element.
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.