- From: Tab Atkins Jr. <jackalmage@gmail.com>
- Date: Fri, 14 Nov 2008 08:41:59 -0600
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.htm>
Received on Friday, 14 November 2008 06:41:59 UTC