RSS Autodiscovery

Can current practice on auto discovery be improved?

Why do I care? Well, the current practice is a misuse of the rel attribute and is not taking advantage of the methods defined in the HTML 4 specs (and thus in XHTML 1 etc).

Example of the current practice
<link rel="alternate" type="application/rss+xml" title="RSS" href="http://www.aurl.example/rss.xml">

Why is it a misuse of the rel attribute? See http://www.w3.org/TR/html401/types.html#type-links

Alternate
Designates substitute versions for the document in which the link occurs. When used together with the lang attribute, it implies a translated version of the document. When used together with the media attribute, it implies a version designed for a different medium (or media).

Merely having rel=”alternate” is insufficient, it is an alternate what? Determining this by (unregistered) mime types is (IMO) a mistake, limits the use of alternate for truly alternate meta data choices and is undefined by the HTML specs.

To extend the keywords available to use in the rel attribute requires the document author to specify a profile to specify these new keywords. See http://www.w3.org/TR/html401/struct/global.html#h-7.4.4 andhttp://www.w3.org/TR/html401/struct/global.html#profiles

In general, specifying meta data involves two steps:

  1. Declaring a property and a value for that property. This may be done in two ways:
    1. From within a document, via the META element.
    2. From outside a document, by linking to meta data via the LINK element (see the section on link types).
  2. Referring to a profile where the property and its legal values are defined. To designate a profile, use the profile attribute of the HEAD element.

These points specify how to reference Meta data, and the like, from within a HTML document. The current practice does not reflect HTML’s recommendations on this and should be modified to be in conformance. My proposal is the following.

The head element of the page should contain a profile element
e.g. <head profile="http://www.someurl.org/RSSMetaDataProfile/">

The link element pointing to the RSS feed should have a rel attribute, the attribute value is defined by the profile, the profile can be a single URL identifying the profile used it’s format is not specified by HTML (it could just point to an English language specification, for example the RSS 1.0 spec, which states the valid values.)

For example
<link rel="RSS" type="application/xml" title="RSS weblog" href="http://www.aurl.example/rss_weblog_channel.xml" >
<link rel="alternate RSS" type="application/xml" title="RSS articles" href="http://www.aurl.example/rss_articles_channel.xml" >

Now that the alternate value is not artificially overloaded it is possible to use it to correctly specify an alternate choice between two specified link types, rather than an indeterminate alternate choice.

Recommended RSS reading

After beginning to implement some RSS feeds on my site it feels like I’ve stumbled into a fragmented scene of competing versions. The scene is much different to working with W3 standards which are generally only published after periods of consultation etc, the development of RSS seems to be going on between competing groups of people with development decisions published on weblogs and implemented almost immediately by the relevant group, Although this is an effective method of driving traffic to certain sites I’m not convinced as to it’s merit for drafting standards which can be implemented uniformly. Without a centralised repository for the specification (or at least one that keeps up with these changes) it is difficult for someone to jump on board immediately and make full use of the exciting possibilities of RSS.

Having said that it’s not all bad news, if you are happy to keep it simple writing RSS that is interoperable between various news aggregators seems to be quite possible. An interesting article I’ve recently come across is the RSS Tutorial for Content Publishers and Webmasters, this does a good job of explaining the differences between the two main versions of RSS, 0.9x and 1.0. Another weblog, Dive into Mark, is where I read an interesting article on RSS 2.0.

Well with all this talk of RSS feeds etc I though it might be a good idea to link to the site that demonstrates some of the potential RSS offers, holovaty.com allows readers to submit queries that return a RSS feed of content that matches the keywords submitted. A nicely designed site with interesting material to boot!