The tables below relate information about requirements and implementations of etended descriptions. This is intended to help the community settle on a path. Known relevant resources from which this draws:
The following table outlines proposed approaches to provide extended descriptions. Along with a brief description, the table presents pros, cons, and possible ways of mitigating the cons. Whether an approach meets use cases comprehensively enough is a pro / con but that is addressed in the following table, use cases and technological approaches. Approaches also only work if they are implemented, detailed in the third table.
Description | Pro | Con | Mitigation | |
---|---|---|---|---|
description links | Author provides a link to a desciption near the object. Link text is by convention but not requirement "[D]". |
|
|
|
longdesc | URI to a description is provided in the "longdesc" attribute of the <img> element. |
|
|
|
aria-describedby | Pointer to a description on the same page provided on any object via the "aria-describedby" attribute. This is automatically exposed to the accessibility API. |
|
|
|
aria-describedat | URI to a description is provided in the "aria-describedat" attribute of any object. |
|
|
|
figure with details | <figure> contains a <figcaption> which contains a <details> providing the description. |
|
|
|
figure with details and embedded iFrame | <figure> contains a <figcaption> which contains a <details> which contains an <iframe> that loads the description. |
|
|
|
figure with details with src and role attributes | <figure> contains a <figcaption> which contains a <details> which loads an external description from the "src" attribute and clarifies it's a description with the "role" attribute |
|
|
|
accessible SVG | Native SVG features provide description. |
|
|
|
SVG wrapping bitmap | SVG with description loads a raster image for the presentation. |
|
|
|
link in figure caption | Description link provided in <figcaption>. |
|
|
|
hidden iframe |
|
|
||
image map | ||||
web annotations | Description treated as an annotation, externally stored and related to the object. |
|
|
|
web components | Web components allows for a highly customizable user experience where the user can control which alternative is selected via a provided UI or externally to the component. | Web Components can provide their own user interface or interoperate with Web application configuration facilities, including personal needs/preferences profiles. No “native” implementation is required (of the image alternatives/descriptions feature) in either UA or AT. The source markup is clear, concise and expressive. | The use of Web Components to provide alternatives to images is not yet standardized - that is, there can be multiple implementations which may be inconsistent between Web sites/applications; the semantics of the markup are not conveyed to AT, which therefore can’t provide its own user interface for the image and its alternatives (though perhaps this isn’t desirable anyway)? |
The grid below is intended to map known extended description requirements to technological ways to meet them. Approaches that meet more use cases will generally be preferred, though the other pros and cons also need to be considered.
Definition used in DPub comments.
DPub note: We are looking at these elements as they are currently defined in existing specifications. We are not analyzing the ability of these elements with potential, unwritten changes to address the use cases.
DPub note: We are also not looking at the current functionality of existing AT and UA. We are looking at what the specification would allow existing AT and UA to implement reasonably.
DPub note: We assert that the rows "Discoverable by AT", "Available on demand to AT users," and "Skippable by AT" should be collapsed into a single wrote "Exposed to accessibility APIs meaningfully".
We then assert that the row "Not required to be visible in standard content view" is unnecessary. Our reasoning follows:
The requirement from the digital publishing perspective is that there be an element that
DPub note: If we changed an item in existing cell, we indicated that in the cell. However, if we weren't sure of the answer to something, and the table was pre-populated with an answer, we left the pre-populated answer untouched; there is no visual /semantic indication in this table differing between the cells we agree with and the cells we don't have enough information about. Particularly, we don't have enough information about the two SVG proposals to truly understand what is being proposed.
DPub note: It became clear throughout this conversation that the requirement "able to pass structured content to an additional specialized user agent" is vital for the publishing industry. However, it is needed in more contexts then simply extended descriptions, and is out of scope for this conversation.
description links DPub note: Could you confirm that by "description link" you mean <link> or <a> elements? |
longdesc | aria-describedby | aria-describedat | figure with details | figure with details and embedded iFrame | figure with details with src and role attributes | accessible SVG | SVG wrapping bitmap | link in figure caption | hidden iframe | image map DPub note: The map element contains no element that would hold a description outside of any other legal flow content, so we weren't sure how this example was intended to be used. |
web annotations | web components DPub note: Mark Hakkinen's investigating this |
|
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Not restricted to images DPub note: For clarity, we suggest rephrasing to "Works for non-image content" |
yes | no | yes | yes | yes DPub note: Figure can be a wrapper around any flow content. |
yes DPub note: Figure can be a wrapper around any flow content. |
yes DPub note: Figure can be a wrapper around any flow content. |
no | no | yes DPub note: Figure can be a wrapper around any flow content. |
yes | no | yes | yes |
Can hold rich content | yes | yes | no | yes | yes | yes | yes | to an extent | to an extent | yes | yes | ? | yes | yes |
Same technique for different objects | yes | no | yes | yes | yes DPub note: Figure can be a wrapper around any flow content. |
yes DPub note: Figure can be a wrapper around any flow content. |
yes DPub note: Figure can be a wrapper around any flow content. |
no | no | yes DPub note: Figure can be a wrapper around any flow content. |
yes | no | yes | yes |
Reusable in multiple content DPub note: "contexts"? | yes | yes | no | yes | no | yes | yes | no | no | yes | yes | no | yes | yes Note from Mark Hakkinen: can be done either server-side or client-side |
Description clearly associated with object | no | yes | yes | yes | yes | yes | yes | yes | yes | yes | no | yes? | yes | yes |
Clear which associated object is the description | no | yes | yes | yes | no | no | yes | yes | yes | no | no | yes? | yes | yes Note from Mark Hakkinen: We may even leverage the new aria-roledescription to explicitly label the description type. |
Not bloat primary content page | yes | yes | no | yes | no | yes | yes | no | no | yes | yes | no | yes | yes |
Exposed meaningfully to the accessibility APIs and UA | no | yes | yes | yes | no | no | no | no | no | no | no | no | yes? | yes |
description links DPub note: Could you confirm that by "description link" you mean <link> or <a> elements? |
longdesc | aria-describedby | aria-describedat | figure with details | figure with details and embedded iFrame | figure with details with src and role attributes | accessible SVG | SVG wrapping bitmap | link in figure caption | hidden iframe | image map | web annotations | web components | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Discoverable meaningfully by any current AT. | no | yes | no | no | no | no | no | no | no | no | no | no | no | no |
Skippable meaningfully by any current AT | no | yes | no | no | no | no | no | no | no | no | no | no | no | no Note from Mark Hakkinen For the alternate content, it would only be displayed if requested, and thus skippable in that sense if display not. Depending upon the markup used in the actual implementation of the component |
Hideable from the visual meaningfully by any current AT | no | yes | yes | no | no | no | no | no | no | no | no | no | no | no |
Able to be accessed without using a screen reader in any current UA | yes | no | yes | no | yes | yes | yes | no | no | yes | no | no | no | no |
Information about the known implementation of particular approaches is provided here. An approach that has, or is expected soon to have, more implementation will tend to be preferred. Note: implementation information below refers to implementation needed to make the description available to assistive technology, not simply implementation of the base feature in mainstream user agents.
Webkit | Blink | Gecko | IE | Edge | |
---|---|---|---|---|---|
description links | N/A | N/A | N/A | N/A | N/A |
longdesc | No | ? | ? | ? | ? |
aria-describedby | ? | ? | ? | ? | ? |
aria-describedat | No | ? | ? | ? | ? |
figure with details | ? | ? | ? | ? | ? |
figure with details and embedded iFrame | Yes? | Yes? | ? | ? | ? |
figure with details with src and role attributes | No | ? | ? | ? | ? |
accessible SVG | ? | ? | ? | ? | ? |
SVG wrapping bitmap | ? | ? | ? | ? | ? |
link in figure caption | ? | ? | ? | ? | ? |
hidden iframe | ? | ? | ? | ? | ? |
image map | ? | ? | ? | ? | ? |
web annotations | ? | ? | ? | ? | ? |
web components | ? | ? | ? | ? | ? |
Information about how difficult it is likely to be to implement, both for authors (who must implement a lot) and user agents (who must implement once, but with attention to impacts).
Authors | UA | |
---|---|---|
description links | low | N/A |
longdesc | med | low |
aria-describedby | med | med |
aria-describedat | med | low |
figure with details | med | low |
figure with details and embedded iFrame | highmed | med |
figure with details with src and role attributes | highmed | med |
accessible SVG | high | high |
SVG wrapping bitmap | med | high |
link in figure caption | low | low |
hidden iframe | med | low |
image map | med | low |
web annotations | high | high |
web components | low (once Web component is built once) | high (but again only has to be done once) |
Information about how difficult it is likely to be to implement, both for authors (who must implement a lot) and user agents (who must implement once, but with attention to impacts).
Uses AAPI | Requires Script | |
---|---|---|
description links | no | no |
longdesc | yes | no |
aria-describedby | yes | no |
aria-describedat | yes | no |
figure with details | no | ? |
figure with details and embedded iFrame | no | ? |
figure with details with src and role attributes | no | ? |
accessible SVG | yes | no |
SVG wrapping bitmap | yes | no |
link in figure caption | no | no |
hidden iframe | no | ? |
image map | no | no |
web annotations | no | yes? |
web components | no | yes |