Copyright © 2014 W3C® (MIT, ERCIM, Keio, Beihang), All Rights Reserved. W3C liability, trademark and document use rules apply.
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.
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:
longdesc
value is valid, User agents must
make the link available to all users through the regular user
interface(s).longdesc
value is valid, User agents must
expose the link to relevant APIs, especially accessibility-oriented
APIs.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.
A set of tests are used to test the following requirements for User Agents (in section 3.03):
longdesc
value is valid, User agents must
make the link available to all users through the regular user
interface(s).The tests The results of these tests are shown in table 1. There are a number of user agents that pass these tests.
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
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.
The test that longdesc
is reflected in the DOM primarily
shows that the requirement
longdesc
IDL attribute must
reflect
the HTML content attribute longdesc
.(section 3.1.1) is met by multiple browsers, as per Table 3.
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
.
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.
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.
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.
Test | Yandex 1.7 + longdesc extension, 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 + "longdesc" extension (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
longdesc
bug).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
Test | Yandex browser 1.7 + Longdesc extension, 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 | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |