longdesc in HTML5

Yesterday, In tweeted “I know it’s important, & I know this makes me evil, but if I read any more about bloody longdesc in #html5 I’m gonna set fire to my scrotum”, thereby doing a dis-service to an important debate which has exasperated me due to the traditional enmities and personality clashes.

To make amends for my flippancy, today I’m writing about it.

The latest skirmish between the Accessibility types and Young Turk HTML5 types, which has left trails of dead and scorched earth across mailing lists, involves the longdesc attribute of the <img> element.

Never heard of it? Few have.

It’s an attribute that points to a URL where a long description of the image can be found. It’s not the description itself.

The trouble is, hardly anyone uses it correctly and there is little browser support. WebAIM has an example of longdesc, and there is nothing that indicates to a user, either visually or otherwise, that a longdesc is available. Opening the context menu in Opera offers an option “long description” which, if activated, opens the URL specified, but this doesn’t exist in any other browser except iCab (and is only a year or so old in Opera).

Extensions exist that give a visual cue that longdesc exists in Opera, and an extension by Patrick Lauke brings Firefox up to Opera’s native support.

But basically, discoverability is a problem, support is low, it’s used very little “in the wild”, and when it is used it’s badly used:

No more than one in a hundred get it right, of one in a thousand that even try

so the WHATWG wants to remove longdesc from HTML5.

Cue uproar from those involved in Web accessibility. They point to the fact that assistive technologies and authoring tools support longdesc and, they argue, if only the browsers would fix discoverability, a thousand longdesc flowers would bloom.

A recent survey by the splendid WebAIM people suggests that screenreader users love longdesc (although less than two years ago the same survey found it “very unpopular”. Why the sudden surge in popularity?)

Generally, I’m not in favour of hidden metadata that is meant only for one sector of the audience. Hidden metadata, because it’s hidden, easily falls out of step with the rest of the information. On the other hand, I’m not generally in favour of chopping things out of the language because it makes it harder for people to migrate from HTML4 to HTML5 and because I’ve seen the light after the <cite> debacle. And, although it’s hardly used anywhere, people claim to love it; I’m against removing something that makes their lives easier, particularly when there are enough impediments out there to their full and equal access to the Web.

So on balance, I prefer longdesc to stay. But I’d suggest that better practice is to use the HTML5 details element or aria-describedby and point to a resource that anybody can discover.

If you want to link to an off-page resource, Steve Faulkner suggests:

<img alt="2009 results table" aria-describedby="desc">
<a href="description.html" id="desc">description of table</a>

Removed as Steve has changed his mind.

Now, where’s my lighter?

55 Responses to “ longdesc in HTML5 ”

Comment by nihalkhan

The value of the longdesc attribute is:

var x=document.getElementById(“compman”);

Leave a Reply

HTML: You can use these tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> . To display code, manually escape it.