One of the biggest challenges for a software developer implementing the RSS 2.0 specification is the issue of enclosures in a feed item. The specification is infamously unclear on whether an item allows one enclosure or multiple enclosures.

The RSS Advisory Board worked on the RSS Best Practices Profile for nearly two years, investigating a lot of RSS readers and feed producers to see how they handled issues like this. We ultimately made the following recommendation for enclosure:

Support for the enclosure element in RSS software varies significantly because of disagreement over whether the specification permits more than one enclosure per item. Although the author intended to permit no more than one enclosure in each item, this limit is not explicit in the specification.

Blogware, Movable Type and WordPress enable publishers to include multiple enclosures in each item of their RSS documents. This works successfully in some aggregators, including BottomFeeder, FeederReader, NewsGator and Safari.

Other software does not support multiple enclosures, including Bloglines, FeedDemon, Google Reader and Microsoft Internet Explorer 7. The first enclosure is downloaded automatically, an aspect of enclosure support relied on in podcasting, and the additional enclosures are either ignored or must be requested manually.

For best support in the widest number of aggregators, an item SHOULD NOT contain more than one enclosure.

Because the profile was completed in 2007, it would be useful to see how current software handles RSS enclosures to evaluate whether any recommendations should be reconsidered. To start this effort the current WordPress was tested, since that massively successful platform publishes 60 million RSS feeds. WordPress enables audio files to be added to a blog post using the Audio icon in the block editor:

Screen capture of the dialog used to add an Audio block to a blog post in WordPress

When three audio files were added to a blog post in WordPress, the item in the RSS feed contained three enclosure elements:

<enclosure url="http://example.com/Fanfare60.wav" length="2646044" type="audio/wav" />
<enclosure url="http://example.com/CantinaBand60.wav" length="2646044" type="audio/wav" />
<enclosure url="http://example.com/ImperialMarch60.wav" length="2646044" type="audio/wav" />

Follow this blog for more updates on enclosure usage in feeds and feed readers.

As you probably guessed, we have an RSS feed.

The RSS Advisory Board has published the RSS 2.0 Specification for 20 years, releasing 10 revisions over that time. The current version of the specification can always be found at this URL:

https://www.rssboard.org/rss-specification

The revisions have mostly been minor, aside from one clarification that namespaces can be used to extend RSS by adding elements and attributes, not just elements.

The best way to learn how to implement RSS as a software developer is to read the RSS Best Practices Profile created by the board. It includes all the rules of the specification along with our recommendations for how to handle issues that have arisen among implementers.

For example, the enclosure section describes how to deal with the biggest ambiguity in RSS: Can an item contain more than one enclosure?

The RSS specification is available under a Creative Commons Attribution/Share Alike license, so it can be republished on websites and software related to RSS and syndication under those terms.

Feedly dialog to confirm marking all feed items as read

Brent Simmons, the developer of the NetNewsWire RSS reader, is questioning his decision to put an unread count next to each feed, reasoning that it encourages people to be too obsessive about reading every item:

Instead of a dozen bookmarks, people had a hundred feeds. Or two hundred. Or two thousand.

And there was a tyranny behind keeping track of unread items and showing an unread count. People reacted in different ways, but many people felt like they always had to go through everything.

Including me. To this day.

I did not know this was going to happen. That was not the idea: it was a side effect of reasonable (at the time) choices.

I like seeing these counts on feeds where I need to read all items that are posted, but that's only a small percentage of the 100-120 feeds I follow. It would be nice to turn that off for others I read more casually.

Feedly presents unread counts on each feed and folder of feeds. There's a Mark As Read button to clear a count, but when you click it, the confirmation dialog acts like it's an extremely consequential decision: "Are you sure you want to mark this entire source as read? This operation cannot be undone."

I've posed a question on the RSS-Public mailing list: Do you think feed readers should count unread items?

The RSS feeds of the RSS-Public and RSS-Board mailing lists are no longer available. Yahoo Groups used to offer feeds for each of its public lists, but Yahoo dropped support last year. A member of the service's product team said the feature was retired in July 2013.

To read the lists and subscribe to receive them in email, visit the Yahoo Groups pages for RSS-Public and RSS-Board.

We may move the lists to Google Groups, which does offer RSS feeds for each group.

Cartoony graphic of man reading RSS as a paperIn 2007, the RSS Advisory Board published the RSS Best Practices Profile, our advice for how to produce RSS feeds that work best in the wide variety of feed readers, web browsers and other software that consumes feeds. The RSS specification is poorly written in several areas, leading to disagreement over the correct way to do things. We wanted to help programmers and web publishers avoid these hassles.

The programs tested as we drafted the profile were Bloglines, BottomFeeder 4.4, Feed Demon 2.5 (2.5.0.10), Google Reader, Microsoft Internet Explorer 7, Mozilla Firefox 2.0 (2.0.9), My Yahoo, NewsGator Online and Opera 9.

Since then, Google Reader and NewsGator Online shut down, Bloglines moved to a new software platform and FeedDemon is up to version 4.5. Web browsers all have significant upgrades and Google Chrome has sprung into existence.

I thought it was time to look at whether all of the profile's advice is appropriate with current feed reading software. As the first step, I posed this question today on the RSS-Public mailing list:

What software do you currently use to read RSS feeds?

For years, I read feeds primarily with Bloglines. I moved to Google Reader and when it was killed (sigh), I switched to Feedly after a few months where I didn't read feeds at all. For podcasts, I use Apple iTunes.

Popular Pages on This Site