2002-11-25 22:32 UTC Why semantic markup is so important
On the one hand we have shaver finally breaking down and providing an RSS feed, while on the other we have Tantek describing the start of a rebellion against RSS. You see, people are finally catching on than XHTML has actual semantics (sound familiar?), and thus software could be doing a lot of the content aggregation work for us.
Some pointers for aggregator implementers then, if we're going to go with this XHTML-instead-of-RSS idea (which I think we should, despite my having two RSS feeds):
- Use
rel="bookmark"
like Tantek suggests. (I have that set up here now, by the way.) - Treat the XHTML document as an outline, instead of a list of posts. I've seen many Web logs that are not simply post-post-post, but have much more hierarchical structures, like person-day-post-topic.
- Don't use
class
attributes, unless the XHTML working group define a set of normative classes (which wouldn't be a bad idea, actually). A key aspect ofclass
attributes is that they are totally semantic-free: they mean nothing. A "rose main" class in a document could mean that the element is the most important aspect of the document as well as being one which has risen above the rest, or it could mean that it is the central part of Rose's speech, or it could mean that it is the part of the document representing the pink hand. All that you can assume is that it is a space separated list of author-defined tokens. - Don't require content authors to constrain their markup habits — I am going to use relative links and other such features that require aggregator implementors to actually think before writing code. There is an XHTML specification, so XHTML UAs, and that includes these aggregators, are going to have to implement it.
- Do require valid content. Intelligence in UAs can be taken a long way, but as we have found with the tag soup mess that is
text/html
on the web today, the line should be drawn at coping with invalid markup.
It will be very interesting to see if this takes off.
Pingbacks: 1