[whatwg] Deprecating <small>, <b> ?

Tab Atkins Jr. jackalmage at gmail.com
Fri Nov 14 06:41:59 PST 2008


On Fri, Nov 14, 2008 at 7:40 AM, Pentasis <pentasis at lavabit.com> wrote:

> The small element represents small print [...]
>>>
>>>  The b element represents a span of text to be stylistically offset from
>>>>
>>> the normal prose without conveying any extra importance [...]
>>>
>>> Both definitions seems rather presentational (contrasting, for example,
>>> the new semantic definition for the <i> element) and could also be
>>> realized by use of <span> elements.
>>>
>>
>> Why use <span class="smallprint">Copyright (c) 2008 ?</span> instead
>> of just <small>Copyright (c) 2008 ?</small>?  The latter possibility
>> is way more semantic.
>>
>> And why use <span class="brand">Siemens</span> instead of just
>> <b>Siemens</b>?
>>
>> To me, the small and b elements ? especially the former ? make perfect
>> sense.
>>
>> -david
>>
>
> I agree with the original poster on this.
>
> 1) Just because it makes sense to a human (it doesn't to me), does not mean
> it makes sense to a machine.
> 2) When using <small> on different text-nodes throughout the document, one
> would expect all these text-nodes to be semantically the same. But they are
> not (unless all of them are copyright notices).


Why would you expect this?  Or rather, why would you expect this level of
semantic specificity?  <small> means something fairly broad that multiple
types of specific semantics can fall under.


> 3) <small> is a styling element, it has zero semantic meaning, so it does
> not belong inside HTML.


It *had* zero semantic meaning.  Actually, though, this wasn't quite true.
The semantics that have been attached to <small> (and <i>, and <b>) are an
approximation of the common semantics that users of the elements conferred
on the contents.  Text within <small> was, quite often, used for "small
print".  Matching up theory with practice is a good thing here.

<i> and <b>, once you subtract the semantics stolen by <em> and <strong>,
are used pretty much specifically as the spec states.

4) <b>Siemens</b> also does not tell me anything about the semantics. Is it
> used as a name, a brand a foreign word ? etc. I cannot get that information
> from looking at the <b> element.


Of course not.  You're not intended to.  What you *do* get, though, is that
this is a word which is *intentionally* stylistically offset from the rest
of the text.  This conveys semantic meaning to a human - it means that the
word is special or being used in a particular context.  <b> and <i> don't
communicate *much*, but they communicate *something*.  One could, of course,
also use a <span> to mark up and style the text, thus communicating the same
intent to a person reading the styled text, but to a machine the <span>
means literally nothing, while <b> and <i> have the possibility to
communicate *something*.

In addition, the fact that these elements traditionally have a particular
preferred rendering means something.  A dumb terminal which doesn't
understand CSS won't give any indication to the user that a <span> exists at
all, while <b> and <i> have a chance of providing fallback rendering that
still accomplishes what they were designed to do.  A decent chunk of html5
concerns itself with providing fallbacks and graceful degradation (or
progressive enhancement, whichever way you want to look at it).  Having some
*nearly* semantic-free elements which have a meaningful fallback can be
useful.

Of course, it may certainly be more useful to you if you provide a class on
the <i> as well.

~TJ
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.whatwg.org/pipermail/whatwg-whatwg.org/attachments/20081114/846c39c9/attachment-0001.htm>


More information about the whatwg mailing list