On 6/25/06, Chad Perrin <perrin(a)apotheon.com> wrote:
Unnecessary repetition leads to unmaintainability,
because when you need
to change one thing you often end up having to run around changing it in
numerous places, and sometimes people miss things.
But in this case, <poem> adds a class that styles the enclosed text as
a poem. Among other things, this class includes stuff that would be
useful for cooking recipes as well, but that's not all it includes.
What if it turns out people decide, six months down the road, that
poems should all be blockquoted? Then you could just add
"left-margin: 2em;" or whatever to the CSS definition for .class, and
voila, all poems are instantly blockquoted. If people have used it
for hundreds of cooking recipes in the meantime, all of them are going
to be screwed up, unless coincidentally people also want the cooking
recipes to be indented. Users can also provide custom stylesheets, to
which similar reasoning applies. And non-visual Web readers will also
be screwed over.
Anyway, as far as Web standards are concerned, presentation is "indent
this two ems and don't break lines". Semantics is "this is a poem, so
check if the end-user has set any display preferences for poems, and
if not, indent it two ems and don't break lines".