W3C

HTML5 Image Description Extension

W3C Editors' Draft 20 September 2012

This version:
@@
Latest published version:
@@
Latest editor's draft:
@@
Editors:
Charles McCathie Nevile, Яндекс.

Abstract

This specification defines a longdesc attribute to extended descriptions to images in HTML5-based content

Status of This Document

THERE ARE EDITORIAL AND CODING ERRORS IN THIS DOCUMENT.

This section describes the status of this document at the time of its publication. Other documents may supersede this document. A list of current W3C publications and the latest revision of this technical report can be found in the W3C technical reports index at http://www.w3.org/TR/.

This document is an editors' draft proposed to the HTML Working Group Accessibility Task Force as an HTML extension. This document is intended to become a W3C Recommendation. If you wish to make comments regarding this document, please send them to public-html-a11y@w3.org (subscribe, archives). All feedback is welcome.

Publication as a Working Draft does not imply endorsement by the W3C Membership. This is a draft document and may be updated, replaced or obsoleted by other documents at any time. It is inappropriate to cite this document as other than work in progress.

This document was produced by a group operating under the 5 February 2004 W3C Patent Policy. W3C maintains a public list of any patent disclosures made in connection with the deliverables of the group; that page also includes instructions for disclosing a patent. An individual who has actual knowledge of a patent which the individual believes contains Essential Claim(s) must disclose the information in accordance with section 6 of the W3C Patent Policy.

Table of Contents

Introduction

HTML 4 provided a longdesc attribute for the img element. This enabled a machine-discoverable description of an image to be linked to the image. This extension specification defines the same functionality for HTML5-based content.



<!-- pointing to something internal to the page -->
<img src="http://example.com/image" alt="" title="photo" longdesc="#photo1">
<!-- pointing to an external resource -->
<img src="image" alt="[figure 1]" longdesc="http://example.com/desc1">

<!-- pointing to fragment within an external resource -->
<img src="image" alt="[figure 1]" longdesc="http://example.com/desc1">

1. Conformance

As well as sections marked as non-normative, all authoring guidelines, diagrams, examples, and notes in this specification are non-normative. Everything else in this specification is normative.

The key words must, should, and may in this specification are to be interpreted as described in [RFC2119].

Requirements phrased in the imperative as part of algorithms (such as "strip any leading space characters" or "return false and terminate these steps") are to be interpreted with the meaning of the key word ("must", "should", "may", etc) used in introducing the algorithm.

Conformance requirements phrased as algorithms or specific steps may be implemented in any manner, so long as the end result is equivalent. (In particular, the algorithms defined in this specification are intended to be easy to follow, and not intended to be performant.)

When a method or an attribute is said to call another method or attribute, the user agent must invoke its internal API for that attribute or method so that e.g. the author can't change the behavior by overriding attributes or methods with custom properties or functions in ECMAScript.

If an algorithm calls into another algorithm, any exception that is thrown by the latter (unless it is explicitly caught), must cause the former to terminate, and the exception to be propagated up to its caller.

1.1 Dependencies

The IDL fragments in this specification must be interpreted as required for conforming IDL fragments, as described in the Web IDL specification. [WEBIDL]

Some of the terms used in this specification are defined in [DOM4], [HTML5].

2. Use Cases and Requirements

There are many ways to ensure that users do not need to see images in order to successfully interact with content. The alt attribute is designed to ensure that for everyday work, a user has enough information to replace an image, and often this is more helpful than a detailed description of every image.

@@This needs to be completed - I have content to add (there has been a lot of discussion of this over the years).

3. The longdesc attribute

The longdesc attribute must contain a valid URL potentially surrounded by spaces. The URL is a hyperlink to a description of the image that its parent img element represents.

Authoring requirement: the link is to part of a document, the description should be contained within an element which is the target of the link.

User agents should make the link available to users, and should expose the link to relevant APIs, especially accessibility-oriented APIs.

User agents should allow users to determine when images in a page contain a long description.

If a longdesc attribute has invalid content, user agents may make that content available to the user, since a common error is to include the text of a description instead of a URL as the value of the attribute.

3.1 Extension to the HTMLImageElement interface


partial interface HTMLImageElement {
             attribute DOMString longdesc;
};

3.1.1 Attribute

longdesc of type DOMString

The longdesc IDL attribute must be a valid non-empty URL potentially surrounded by spaces. It represents a hyperlink to a detailed description of the image its parent HTMLImageElement represents.

image.longdesc [ = value ]

Returns a DOMString that represents the attribute's contents.

Can be set, to replace the contents of the attribute with the given string.

//Make the first internal longdesc reference absolute

var baseURL = document.location.origin + document.location.pathname
var someImage = document.querySelector('img[longdesc^=#]');

someImage.longdesc = baseURL + someImage.longdesc;
//Open new windows for each longdesc found

var describedImages = document.querySelectorAll('[longdesc]');

for (i in describedImages) {
if (i.longdesc) //there are a couple of extra things matched
window.open(i.longdesc);
}

A. Acknowledgements

Thanks to the HTML Working group of the late 1990s for the original specification of longdesc, and to many many people involved with the development of HTML5 for the discussion that led to this specification. I haven't named them: the list might be larger than the content of the specification.

B. References

B.1 Normative references

[RFC2119]
S. Bradner. Key words for use in RFCs to Indicate Requirement Levels. March 1997. Internet RFC 2119. URL: http://www.ietf.org/rfc/rfc2119.txt
[WEBIDL]
Cameron McCormack. Web IDL. 27 September 2011. W3C Working Draft. (Work in progress.) URL: http://www.w3.org/TR/2011/WD-WebIDL-20110927/

B.2 Informative references

[HTML5]
Robin Berjon et. al., eds. HTML5. W3C Working Draft. (Work in progress.) URL: http://www.w3.org/TR/html5