Since /programmes first went live we've been working to ensure that programme data was accessible to people and machines alike. The API design was baked in at the application design stage. Similarly we've worked on adding microformats to HTML pages as a lightweight API. All broadcasts use the hCalendar microformat to add start times, end times, broadcast channels etc.

Unfortunately there have been a number of concerns over hCalendar's use of the abbreviation design pattern. This uses the HTML abbreviation element to add machine data to pages. Our concerns were:

the effect on blind users using screen readers with abbreviation expansion turned on where abbreviations designed for machines would be read out

the effect on partially sighted users using screen readers where tool tips of abbreviations designed for machines would be read out

the effect of incomprehensible tooltips on users with cognitive disabilities

the potential fencing off of abbreviations to domains that need them (travel - airport codes, finance - ticker symbols etc)

Until these issues are resolved the BBC semantic markup standards have been updated to prevent the use of non-human-readable text in abbreviations. As I type the revised standard has not been published - I'll update this post with a link when that happens. Updated standard is here. For this reason we've taken the decision to remove the hCalendar microformat from /programmes until:

either the BBC accessibility group does further testing and declares the abbreviation design pattern to be safe to use

or the microformats community settles on an accessible alternative to the abbreviation design pattern. The conversation about this has already been started by Frances Berriman.

hCalendar will be gone from /programmes by the next deploy (probably this Thursday).

In the meantime we'll be looking at the possible use of RDFa (a slightly bigger S semantic web technology similar to microformats but without some of the more unexpected side-effects).

Apologies to anyone who's been using hCalendar to help with screen-scraping of /programmes. We know we've been promising a full API for a while now and the /programmes development team will be campaigning to bring this up the product backlog. In the meantime schedules are already available as json and xml. Leave a comment if there are specific views / formats you'd like to see next.

Probably best to note that this only affects microformats using the abbreviation design pattern. Any rel based and hCard microformats will remain (at least until/if we fully embrace RDF-a). And probably also best to note that this is not a decision that has come down from on high by the BBC equivalent of suits. The /programmes team has been concerned about this issue for a few months now and it's good to get some clarity here.

Stay tuned to radiolabs and we'll keep you updated if / as things change.