CARVIEW |
Implementation Report
W3C HTML5 Image Description Extension (longdesc), 4 September 2014
- This version:
- https://w3c.github.io/test-results/html-longdesc/cr-report.html
- Editors:
- Charles (McCathie) Nevile, Яндекс—Yandex
- Liam R. E. Quin, W3C
Copyright © 2014 W3C® (MIT, ERCIM, Keio, Beihang), All Rights Reserved. W3C liability, trademark and document use rules apply.
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:
- If the
longdesc
value is valid, User agents must make the link available to all users through the regular user interface(s). - If the
longdesc
value is valid, User agents must expose the link to relevant APIs, especially accessibility-oriented APIs. - User agents should enable users to discover when images in a page contain a long description.
- The
longdesc
IDL attribute must reflect the HTML content attributelongdesc
.
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):
- If the
longdesc
value is valid, User agents must make the link available to all users through the regular user interface(s). - 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
- 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
- The
longdesc
IDL attribute must reflect the HTML content attributelongdesc
.
(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 + 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
- [1] Discovery is achieved by user-configurable highlighting.
- [2] Access to the description is poor. You can get the URL of the longdesc, then copy it and paste it into a tab.
- [3] Discovery is weak - there is a longdesc option in the context menu when there is a longdesc available.
- [4] Data:uri images fail to render properly.
(This is not a
longdesc
bug). - [5] N/A: For tests where the image is empty,
Gecko fails to expose the presence of the longdesc via ATK or "to all
users" and hence Orca doesn't see it; this is a Gecko bug, not an Orca
or longdesc bug.
✕: For tests where the description is found in a fragment, Orca does not present the page starting with that fragment. It presents the page starting from the top. Note, this is a Gecko bug, not an Orca bug.
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
- [1] accDescription has value of "data:text/html"
- [2] accDescription has value of "pass.html"
- [3] accDescription has value of "#pass"
- [4] accDescription has value of "pass-fragment.html#fragment"
- [5] accDescription has value of "fail.html"
- [6] ✕: accDefaultAction: [null]
- [7] ✔: accDefaultAction: showlongdesc
- [8] ✕: a bug prevents Gecko from making longdesc available when there is no image; this is neither an Orca bug nor a longdesc bug. See Mozilla bug 1056334.
Table 3: DOM reflection
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 | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |