This is an attempt to analyze how fallback mechanisms are applied to various types of embedded content in HTML. The analysis is an important step towards determining where the support provided by the HTML specification needs to be extended or modified to ensure all accessibility use cases are covered. The analysis is prepared primarily by Michael Cooper, with input from members of the Bug Triage sub-team of the HTML Accessibility Task Force.
This is a draft analyis put forth for discussion and should not be viewed as complete, final, or constituting a proposal in itself.
Sections of this document:
The table below shows known fallback mechanisms for embedded content elements in HTML 4. Only elements defined in HTML 4 are listed, plus the <embed> element which is a "de facto" HTML 4 element. The fallback mechanisms and issues are as generally used in the wild, not as defined by the specification. This is in order to identify the real support baseline upon which we are building.
Element / Approach | @alt | @title | embedded content | @longdesc | @name | <title> of referenced content |
---|---|---|---|---|---|---|
embed | not standardized or widely used but recognized by some user agents | not standardized, but may be supported by some user agents | ||||
iframe | @title widely recognized as labeling the frame, but this was a narrowing of that general-purpose attribute | Often misunderstood and used for a text label, or at used in an "if all else fails" scenario, but this does not function well as it's a token for processing with extreme limitations | Many advocated fetching the referenced content and using the title as a label for the frame, but it requires support for the element, fetching an external resource, and being able to find a title | |||
img | see general issues with @alt | see general issues with @title | see general issues with @longdesc | |||
object | See general issues with embedded content |
The table below shows fallback mechanisms documented in the HTML 5 specification for the embedded content types supported by the specification. By contrast with the HTML 4 table, this HTML 5 table lists what the specification supports, not what is generally used in the wild. This is because the purpose of this exercise is to review the specification, not current usage. Note that the set of available fallback mechanisms (shown as column headers) is different from the set used in HTML 4.
Element / Approach | @alt | @title | embedded content | @longdesc | @aria-labelledby | @aria-describedby |
---|---|---|---|---|---|---|
audio | supported, after <track> elements | |||||
canvas | supported | |||||
embed | disallowed | |||||
iframe | permitted but markup will be removed and only for HTML serialization; not specified if it's meant to be a fallback | |||||
img | @alt for short descriptions | not support@ted | removed (under dispute) | proposed as replacement for @alt | proposed as replacement for @longdesc | |
math | deferred to features of MathML, fallbacks should be possible using @alttext | |||||
object | supported, after <param> elements | |||||
svg | deferred to features of SVG; fallbacks should be possible using <desc> and <title> | |||||
video | supported, after <track> and potentially <source> elements |
Some of the fallback mechanisms identified above have issues in theory or practice that were generic to several embedded content elements and / or were too long to include in the table. These issues are shown here.
This is an attempt to propose use cases for fallbacks, as a step towards understanding what use cases remain to be met. The focus is on accessibility use cases. Use cases for non-support of the embedded content element and non-support of the referenced content technology are also important, and should not be confounded with accessibility use cases. It may be necessary to expand on this in the future in order to cleanly separate them.
The following list describes the use cases identified, and the table shows which embedded content types may have the corresponding use case. Beware of token overload; the terms are used here as defined below, and should not be interpreted to have any other meanings inherited from other contexts. Cells have an x where the use case is believed to apply to the embedded content type, otherwise they are blank.
Element / Use case | short text alternative | long text alternative | label | caption | summary | idiosyncratic direct accessibility | advisory / tooltip | specify none needed |
---|---|---|---|---|---|---|---|---|
audio | x | x | x | x | x | |||
canvas | x | x | x | x | x | x | x | x |
embed | x | x | x | x | x | x | x | x |
iframe | x | x | x | x | x | |||
img | x | x | x | x | x | x | ||
math | x | x | x | x | ||||
object | x | x | x | x | x | x | x | x |
svg | x | x | x | x | x | x | x | |
video | x | x | x | x | x |