« Previous | Main | Next »

Microformats and accessibility - a request for help

Post categories:

Michael Smethurst Michael Smethurst | 15:01 UK time, Thursday, 15 May 2008

Microformats logo

The web is a wonderful place for humans but it's a less friendly place for machines. When we read a web page we bring along our own learning, mental models and opinions. The combination of what we read and what we know brings meaning. Machines are less bright.

Given a typical TV schedule page we can easily understand that Eastenders is on at 7:30 on the 15th May 2008. But computers can't parse text the way we can. If we want machines to be able to understand the web (and there are many reasons we might want to) we have to be more explicit about our meaning.

Which is where microformats come in. They're a relatively new technology that allow publishers to add semantic meaning to web pages. These might be events, contact details, personal relationships, geographic locations etc. With this additional machine friendly data you can add events from a web page directly to your calendar, contacts to your address book etc. In theory it's a great combination of a web for people and a web for machines. But it has some potential problems.

One potential problem is microformat's use of something called the abbreviation design pattern. The abbreviation design pattern uses the HTML abbreviation element to add machine friendly data to pages. Here the human friendly data is enclosed in abbreviation tags and the machine friendly data is added to the abbreviation title attribute. So we see markup like:

<abbr class="dtstart" title="2008-05-15T19:30:00+01:00">19:30</abbr>

The question is what happens if you're using a screen reader. We've looked at quite a few screen readers out of the box and by default they don't expand abbreviation elements so the user still hears 19:30 not 2008-05-15T19:30:00+01:00.

But screen readers allow users to configure them to turn on abbreviation expansion. For any user who switches this on they'll hear 2008-05-15T19:30:00+01:00. Which isn't pleasant...

So we're looking for help. Do you use a screen reader? Know someone who does? If so do you / they have abbreviation expansion turned on? When you visit bbc.co.uk/bbcone/programmes/schedules/london/2008/05/15 what do you hear? If you can help we'd love to hear from you...


  • Comment number 1.

    It's not just screen readers that might have problems, in Firefox, and some other browsers, you get the expanded abbr title as a tool tip if your cursor rests on the abbr for a second or so. Only a minor annoyance maybe, but it underlines the fact that abbr title values (and all title attributes) are meant to be for humans, not computers!

    One alternative may be to use a span with a dtstart class, and then put the ISO date directly in the html. Then hide it from humans and screen readers with CSS:

    <span class="dtstart" style="display:none;">20071003T12:37</span>

    I'm not entirely sure, but I *think* that most screen readers ignore content that has been hidden with display: none (hence the reason why skip-to-content links should be hidden by moving them off the page with left: -1000px;).

    It does mean that the ISO dates appear if CSS is turned off however, and is a bit ugly from a semantic point of view, but it may be a better practical solution, until HTML5 comes along with its baked-in <time> element.

  • Comment number 2.

    P.S Your comment system has a bug: if you try to post a comment with an invalid tag, it fails but doesn't give an error message. I had to escape the tags in the above comment with &lt; and &gt;.

  • Comment number 3.

    Hi Frankie
    You're right. The title will show up as a tool tip in firefox. Which might be a minor annoyance or might make the page an accessibility disaster zone for those with cognitive disabilities.
    There have been numerous attempts to champion accessible alternatives to the abbreviation design pattern (many of them documented here: https://www.webstandards.org/2007/04/27/haccessibility/%29.
    The trouble is none of them have been accepted by the microformats community. The BBC can't just choose to reinvent microformats. We either use them as is, help to bring about a change or stop using them...
    To make this decision we need to know how users use screen readers in the wild.

  • Comment number 4.

    I suppport JAWS in the UK for the UK distributor.

    Jaws 9.0.2152 (current public release) can be made to speak the Mcroformat text but this feature is not on by default. In order to do this one must change the verbosity settings thus:
    1) Press insert+V whilst in your browser.
    2) Press letter A until you reach "abbreviations Expand" option.
    3) Press spacebar to toggle it on and press enter to set the changes.

    Note that this is not the default setting for JAWS and only very few users would ever think of turning this one on. Unless a user did turn this on they will not hear the extranious text. If they had abbreviations on they would probably be able to turn it off quite easily.

  • Comment number 5.

    This argument has been circling around for a while (see the link from fantastic-life).

    The question of how screen reader users deal with it is useful, but should be balanced by how the HTML is supposed to be used (i.e. to spec).

    For example, VoiceOver on OSX has a simple key command to read out the title elements (termed 'help text'). That applied to any HTML element so that the person can find out more.

    The title attribute (especially on an abbr) should be human readable, and unfortunately in many case it is not.

    Personally, I would rather add an HTML5 compatible attribute that breaks current validation but doesn't interfere with the intended use of the title, e.g:

  • Comment number 6.

    @alastc If you want to go down the HTML5 route, there's no need to use CustomData, datetime data is built in: https://www.whatwg.org/specs/web-apps/current-work/

  • Comment number 7.

    @Tris-l. Your comment seems to imply that very few users would ever go to the trouble of turning on abbreviation expansion. The trouble is we really need hard data about how often this happens (or as @alastc points out how many users have 'read all title attributes' option switched on)

    @alastc. Thanks for the VoiceOver tip - new to me

    In general we're not looking for alternative technology solutions. We know about html 5 date markup and suggested alternatives to the ADP and rdf-a. We just want to know how users configure their screenreaders in the wild and how this plays with current microformats implementation.

  • Comment number 8.

    I'm using the free screen reader, NVDA (Non-Visual Desktop Access), which doesn't have a setting for abbreviation expansion, as far as I know. It is certainly not explicit in the user settings. It does have a setting to turn on and off the reading of 'tool-tips'. Any Alt-text or title attribute shows as a 'tooltip' if this setting is turned on (by default it is not).

    I'm not a typical screen reader user, as I have some residual sight, and occasionally use the mouse as well as the keyboard. On the programme schedule page, the screen reader will read slavishly from top to bottom of the page, usually not stopping to read title attributes. However, if I point the mouse to a programme time, the title appears and is read, e.g., '2008-05-23TT19:30'. This sounds almightlily confusing when all you want to know is that something is on at half past 7. However, in practice, I wouldn't have pointed to the programme time unless I knew you wanted feedback on how it works. I agree with other contributors that as these titles are used for humans, it's a good idea to put computer-friendly information somewhere else.


Copyright © 2015 BBC. The BBC is not responsible for the content of external sites. Read more.

This page is best viewed in an up-to-date web browser with style sheets (CSS) enabled. While you will be able to view the content of this page in your current browser, you will not be able to get the full visual experience. Please consider upgrading your browser software or enabling style sheets (CSS) if you are able to do so.