One reason RSS/Atom feeds aren't mainstream is there is no easy one-click subscription and the first feed encounter isn't user-friendly enough. Jon Udell and David Ely described the problem.
Current solutions:
New solution:
Note that this is a draft. I am in the process of prototyping this. I'll post it when I have the complete working solution.
The solution relies on the use of the html object tag. That tag is used for embedding flash or quicktime in web pages, for example:
The object tag has very nice properties: when you don't have the required object or if you have an old browser, it offers a fall back.
The "subscriber" button should support any platform that can run a flash player in the browser.
In the case of feed subscription:
Replace the orange Feed button:
The orange feed button needs to be wrapped with an object tag:
If the ActiveX control with class ID [1] is installed, it displays a custom "subscribe" button. When you click on it, it uses the feedurl parameter [3] to subscribe.
If the control isn't installed or the browser doesn't support embedded objects, the classic orange RSS button [4] is displayed as a link to the RSS.
Change the RSS:
The RSS feed should be transformed via client-side XSL (by inserting one line of XML: <?xml-stylesheet type="text/xsl" href="/rss2.0-to-html.xslt" media="screen" version="1.0" ?>) to look like:
<button onclick="viewRawXML() [5]">View the feed</button>
<script>function viewRawXML() {
(... remove the xsl stylesheet from the DOM ...)
} </script>
This part is meant to help new users understand what feeds and aggregators are. Very few users actually need to the the raw XML of the feed. My own RSS feed implements this kind of XSL transform, and more sites are starting to adopt this technique as well.
A list apart describes how to remove/switch a stylesheet using javascript.
Pros:
Cons:
Parameters:
The component needs the url for the feed.
A parameter should specify the image that the button will display. This way the blog still has control over his layout and the button doesn't add any constraint.
It could also have a description for the feed, like "Curiosity is Bliss (RSS2.0)". This description could be used when the aggregator asks for confirmation, or maybe as a tooltip when hovering over the button.
Next steps:
I'm learning how to write a custom component for use as an embedded object. I'll write a sample for bloglines one-click subscription and will convert this blog to support this convention (the same way some blogs are currently using QuickSub).
I'd like to get feedback on whether bloggers and aggregators would be ready to support such a solution. Thanks for your comments on that and any technical aspects as well.
Update: I started the prototype and ran into an ActiveX warning issue in IE, when using parameters ("An ActiveX control on this page might be unsafe to interact with other parts of the page. Do you want to allow this interaction?"). I don't know yet how to get ride of it (signing, config, ...?).
Update: Removed warning with a registry setting (safe for initialization).
Update: The prototype is well underway. It basically works, but I still have work items:
Some of the things that I came accross so far:
For the button to work on the XSL-transformed feed page, some javascript is needed to pass in the current browser location into the button. The page should also include instructions on how to manually copy the feed url.
The Mozilla implementation will probably need a mime-type defined (for the <embed> tag, like flash)... which makes me think this turns out to be just a variant of the mime-type solution.
The difference is that instead of creating a new file type or format, the "media" (which is the feed information) is inlined in the <object> tag.
That works because a feed info is only a url, today, but this might evolve (say with WS-Eventing subscriptions). In that case we'll move toward a more complex format again, which probably will be loaded from a separate url as usual media are.
The button will be extensible to support these new/richer subscription models.
I thought about implementing the control using Flash, but that means an aggregator can't install it's own version of the "Feed Subscriber"... But still it should be possible to write Feed Subscribers for all platforms that Flash support.
Update: Fixed the mention of the feed: "protocol", as it is instead an URI scheme (thx Dare).
Update (2005-01-17): Winer brings up the one-click subscription problem again. Same solutions re-hashed in the comment thread, no single best solution stands out...
Posted by Julien on April 01, 2004. PermalinkGood work - looks like you might be onto something.
Couple of thoughts: if possible Mozilla should use the <object> tag too, to keep with the specs (some related material here).
Also it would probably be desirable to provide the alternatives of View this Feed or Subscribeto this Feed.
related material on object vs. embed:
http://www.protocol7.com/svg-wiki/ow.asp?EmbedingSvgInHTML
Cool, thanks a lot. I'll make sure to read it.
AListApart also has an object vs. embed article: http://www.alistapart.com/articles/flashsatay/ (Flash Satay: Embedding Flash While Supporting Standards).
My, what a Rube-Goldbergeque contraption to make up for what is basically an OS deficiency!
All I do, to subscribe to an RSS/Atom feed is drag the link from my Browser's window into my Aggregator's window. _Bing!_ I'm subscribed.
At least on my blog, clicking on an RSS/Atom link brings up a popup window, instructing the reader to ... _ahem!_ ... drag the link from the Browser window into their Aggregator.
Posted by: Jacques Distler at April 9, 2004 07:21 PM