W3C

Implementation Report

W3C HTML5 Image Description Extension (longdesc), 4 September 2014

This version:
http://w3c.github.io/test-results/html-longdesc/cr-report.html
Editors:
Charles (McCathie) Nevile, ЯндексYandex
Liam R. E. Quin, W3C

Abstract

This document is a collection of test results that show the longdesc attribute as described in the HTML Image Description Extension (longdesc) specification is implementable, and that independent implementations are highly interoperable, as required for a W3C specification to proceed beyond Candidate Recommendation.

Table of Contents

Introduction

A number of independent implementations demonstrate interoperability in each of the specification's requirements, for a variety of real-world scenarios.

A set of tests was developed by the HTML Accessibility Task Force covering the requirements of the specification in a variety of different scenarios, for example whether the longdesc refers to a description on the same page as or a different page from the image, where there is a base element used on the page, where a data: URI is used as the value of the longdesc, etc. Test results for various User Agents were generated by various members of the HTML Accessibility Task Force.

The specification explicitly defines 3 requirements for User Agents in section 3.03, plus a requirement on how the attribute is treated in the DOM in section 3.1.1, which in practice applies to User Agents:

  1. If the longdesc value is valid, User agents must make the link available to all users through the regular user interface(s).
  2. If the longdesc value is valid, User agents must expose the link to relevant APIs, especially accessibility-oriented APIs.
  3. User agents should enable users to discover when images in a page contain a long description.
  4. The longdesc IDL attribute must reflect the HTML content attribute longdesc.

The User Agents tested are all publicly available software.

A more extensive list of software that supports longdesc is also available.

Discovery and access to descriptions

A set of tests are used to test the following requirements for User Agents (in section 3.03):

  1. If the longdesc value is valid, User agents must make the link available to all users through the regular user interface(s).
  2. User agents should enable users to discover when images in a page contain a long description.

The tests The results of these tests are shown in table 1. There are a number of user agents that pass these tests.

Exposure through Accessibility API

The same set of tests were used to demonstrate that user agents make the relevant information available through the MSAA accessibility interface, as shown in Table 2, as per the requirement

  1. If the longdesc value is valid, User agents must expose the link to relevant APIs, especially accessibility-oriented APIs.

In addition, the DOM is used as an accessibility API by many systems (e.g. screenreaders interacting with Internet Explorer, such as NVDA). The test showing that longdesc is reflected in the DOM by multiple independent browsers (table 3) is further evidence that this requirement is met.

In practice, the fact that nearly all screenreaders except VoiceOver provide native access to longdesc demonstrates that this requirement is effectively met in the real world. For example in order to get data from Firefox, NVDA uses the IAccessible2 (IA2) accessibility API. Although there are no formal results testing the API directly, the fact that NVDA on Windows and Orca on Linux each successfully implement the specification with Firefox shows that in practice Firefox exposes correct data to both IA2 on Windows and AT-SPI/ATK on Linux.

Reflecting the attribute

The test that longdesc is reflected in the DOM primarily shows that the requirement

  1. The longdesc IDL attribute must reflect the HTML content attribute longdesc.

(section 3.1.1) is met by multiple browsers, as per Table 3.

Reported implementation Experience

Extensions

There are a number of independently developed extensions for different browsers that make longdesc more readily available to users. These demonstrate a variety of approaches to enabling discoverability, whether by adding elements to the rendered webpage itself (as is also typical of screenreaders, which do not have a visible browser UI) or leaving the rendering intact and providing relevant indicators through the visible browser UI.

Dirk Ginader ports his extension from Chrome to Firefox as part of a one-hour presentation. Jim Thatcher's "favelet" is designed as a cross-browser 'extension'. An experimental (but not release-quality) port of the TellMeMore extension from Opera/Presto to Blink took a few hours. Whle the major bug (support for longdesc in frame and iframe) was not fixed in this experimental effort, the difficulties are not relevant to longdesc, but the complications of interacting with frame and iframe.

Opera

The Opera browser implemented support for longdesc in version 10.1. The implementation took about a week to develop, including time to debug and fix.

NVDA

During the Last Call for the specification, it was implemented in the NVDA screenreader. The developers had stated that they thought it made more sense to implement directly in the browser, but eventually decided that it was more important to provide the functionality to their users than wait for Firefox to implement longdesc natively. As the test results show, NVDA managed to successfully implement for at least two browsers. The developers clarified in mail that they are using different accessibility APIs on the same platform.

Orca

During the CR period, Orca (the most popular Linux screenreader) did an implementation from the specification without assistance from members of the Task Force. It reportedly took a few hours, and as Tables 1 and 2 shows, is a highly interoperable implementation.

Table 1: Multi-function tests - discovery, availability to the user

Test Yandex 1.7 + long­desc exten­sion, MacOS FF 23, MacOS 10.7.5 FF 23+ JAWS 15, Win IE10, JAWS 15, Win FF 27 Aviewer, Win FF23 + NVDA 2013.2, Win IE10 + NVDA 2013.2, Win Opera 12.15, MacOS 10.7.5 iCab 5.1, MacOS 10.7.5 Orca, FF 32, Linux
Disc. Acc. Acc. Disc. Acc. Disc. Acc. Disc. Acc. Disc. Acc. Disc. Acc. Disc. Acc. Disc. Acc. Disc. Acc.
Comments [1] [2]




[3] [4] [5]
ext img - data:URI desc
empty img - external desc
N/A
ext img - ext desc
ext img - internal desc
ext img - ext desc fragment with spaces


ext img - ext desc fragment


ext img - ext desc with absolute base
ext img - ext desc with relative base


img in <iframe>


Comments [1] [2]




[3] [4] [5]
Test Yandex 1.7 + "long­desc" exten­sion (made for Chrome),  MacOS FF 23, MacOS 10.7.5 FF 23, JAWS 15 IE10, JAWS 15 FF 27 Aviewer NVDA 2013.2, FF23 NVDA 2013.2, IE10 Opera 12.15, MacOS 10.7.5 iCab 5.1, MacOS 10.7.5 Orca, FF 32, Linux

Notes

Table 2: Multi-function tests - API exposure

Accessibility API / User Agent Windows - MSAA Linux - AT-SPI/ATK
IE 11.09,MSAA, Aviewer,WIN FF 27.0a1,MSAA,Aviewer,WIN FF 32, Orca, GNU/Linux
Test Results
ext img - data:URI desc [1] [6] [7]
empty img - external desc [2] [6] [6] [8] [6]
ext img - ext desc [2] [6] [7]
ext img - internal desc [3] [6] [7]
ext img - ext desc fragment with spaces [4] [6] [7]
ext img - ext desc fragment [4] [6] [7]
ext img - ext desc with absolute base [5] [6] [7]
ext img - ext desc with relative base [5] [6] [7]
img in <iframe> [2] [6] [7]

Notes


Table 3: DOM reflection

Test Yandex browser 1.7 + Long­desc ext­ension, MacOS FF 23 + JAWS 15, Win IE10 + JAWS 15, Win FF23 + NVDA 2013.2, Win IE 10 + NVDA 2013.2, Win Opera 12.15, MacOS 10.7.5
longdesc updated by javascript