Technical Notes - RGAA 3 2017

The technical notes below provide explanations regarding some HTML5 elements whose support can be inconsistent across different user agents, and propositions made by the RGAA to circumvent potential issues.

Images

Criterion 1.1 [A]

Except for svg, the aria-label and aria-labelledby attributes to provide an alternative text, or link the image to a chunk of text provided as an alternative text, can not be used due to lack of support by assistive technologies.

The SVG specification recommends using a <title> element for the "short" description and a <desc> element for the long description. Currently only the <desc> is rendered correctly by assistive technologies. The use of the <title> is considered not accessibility supported.

Criterion 1.2 [A]

When an image is associated with a caption, the WCAG technical note recommends to systematically provide an alternative text for the image (see criterion 1.10). In this case the criterion 1.2 is not applicable.

A WAI-ARIA role="presentation" attribute can not be used to specify a decorative image, in accordance with the use of WAI-ARIA roles restrictions, as per the current specifications.

Criterion 1.3 [A]

The WCAG note prohibits the use of the title attribute to replace the alt attribute, however it is often useful to use the title attribute to display a tooltip on particularly obscure images. If the title attribute is used in this way, the content of the title attribute must be strictly identical to the alternative.

With SVG, the lack of support for the <title> element by assistive technologies incurs issues when the <desc> element is used to implement the short alternative text for the image, whereas the image requires detailed description. In this case it is recommended to use an adjacent text or an adjacent link to provide the detailed description.

The 1.3.7 and 1.3.9 tests are used to verify that the implementation of the alternative is accessibility supported (with the chosen baseline).

Criterion 1.6 [A]

With SVG, the lack of support for the <title> element by assistive technologies incurs issues when the <desc> element is used to implement the short alternative text for the image, whereas the image requires detailed description. In this case it is recommended to use an adjacent text or an adjacent link to provide the detailed description.

If the <desc> element is used to implement the detailed description, it is recommended to use an aria-label attribute to implement the short alternative of the image.

The use of the aria-describedby attribute is not possible to link an image to its description, due to lack of support for assistive technologies.

The adjacent detailed description can be implemented via a <figcaption> in this case the criterion 1.10 must be verified (using <figure>, role="group", etc.).

Criteria 1.8 [AA] and 1.9 [AAA]

The text in vector images being actual text, it is not affected by these criteria.

Criterion 1.10 [A]

Implementing a role="group" on the <figure> parent element is intended to circumvent the current lack of support for the <figure> elements by assistive technologies. Although recommended, the use of a figcaption element in a figure element is optional. However the use of a figcaption element to associate a caption to an image requires the use of a figure parent element. The reference to the adjacent caption can be an expression like "image 1", or an equivalent, when this expression is included in the caption.

Although recommended by HTML5, the WCAG Note states that the title attribute can not be used for to "label" an image.

The aria-labelledby and aria-describedby attributes can not be currently used, due to lack of support by assistive technologies.

Tables

Criterion 5.1 [A]

The specification provides several methods to associate a table with its summary (table linked to a text passage with aria-describedby; table grouped with a summary, provided as an adjacent text, via a figure element; table grouped with a summary, provided in a figcaption element, via a figure element; summary provided via a details element in the caption element).

These methods are currently not supported enough to be used reliably.

Scripts

Alternative to JavaScript and compatibility of user interface components with assistive technologies

Criterion 7.1 implements the concept of "compatible with assistive technologies" as defined by the WCAG 2, as well as the use of WAI-ARIA API to make a component or functionality accessible. The proper use of the WAI-ARIA API is verified through tests 7.1.3, 7.1.4, 7.1.5 and 7.1.6.

Important note: in an HTML5 environment, many components may require JavaScript to function. In the case of a JavaScript component that could not be made ​​accessible, when an alternative is provided, a method must be provided specifically for the faulty component to enable the user to replace it (or turn it on again) with its accessible alternative.

This means that disabling JavaScript for the whole page will not be accepted as a valid method, unless it does not compromize the use of other components.

Criterion 7.3 [A]

For certain user interface components design patterns, ARIA defines a set of keyboard interactions based on Esc, Spacebar, Tab and arrow keys; and, occasionally, other interactions based on Page Up, Page Down, Home and End keys, for example. In order to allow gradual implementation of these components with complex keyboard interactions, the RGAA restricts the requirements to only main keys (Esc, Spacebar, Tab, Arrow keys) as per the ARIA design patterns.

Information structure

Criterion 9.1 [A]

The ARIA specification allows the use of the role heading combined with the aria-level property (hierarchical level in the document outline) to mark headings. Although it is preferable to use the native <hx> elements in HTML , the use of the WAI-ARIA role heading is compatible with accessibility.

While the HTML5 specification allows the use of only level 1 headings (<h1>), the lack of support by assistive technologies makes it necessary to use a relevant headings hierarchy.

Criterion 9.2 [A]

The document tree (outline) is generated by the use of sectioning <nav>, <article>, <section>, and <aside> tags, and implicit sections generated by using a <hx> (when the <hx> is not the first child of a section).

A sectioning tag is used to structure or group content, parts of a content, or a set of contents that can be considered independently of the rest of the document.

A navigation area in the site or in a subpart of the site, a table of contents or the navigation area of a collection of pages (<nav>), a content "complementary" to main content (<aside>), the main content or the grouping of several content like articles (<article> or <section>) or a secondary content such as a comment, a Twitter widget, RSS feeds (<article> or <section>) are examples of sectioning contents.

In the case of content, as opposed to the navigation areas (<nav>) or complementary content areas (<aside>), a section should have, if appropriate, a header (<header>) and footer (<footer>).

The first heading <hx> in a section gives the "name" of this section, as it will be set in the document tree. The following headings (<hx>;) create implicit sections that will constitute the section's outline.

A section can be considered independently of the rest of the page, the tree generated by the implicit sections (<hx>) is calculated from Level 1 assigned to the first section heading.

When used, the document tree may therefore be different from the page content tree based on <hx>, although both structures are similar.

This tree must be representative of the document structure and be consistent with the structure of the content generated by the use of <hx>. Structuring the content generated by the <hx> tags could be, theoretically, deduced from the document tree, thus the HTML5 specification recommends using <h1> headings. But this practice is prohibited by RGAA and requires via the criterion 9.1 to use a relevant headings hierarchy (<hx>).

If the outline (provided that it is relevant) allows exploration and navigation features with some assistive technologies, it also affects the headings hierarchy generated by the <hx> by changing the level of rendered headings.

To accompany the gradual support of the document outline algorithm, and considering the fact that the RGAA requires to have, in any case, a robust and consistent content structure (tags <hx>), it is acceptable to consider the test 9.2.2 as not applicable when it is not possible to ensure that the document outline is perfectly consistent.

In this case, non-compliant content for this test should be signaled as a simple warning.

Criterion 9.3 [A]

The WAI-ARIA Roles list and listitem may require the use of the aria-setsize and aria-posinset properties, if the entire list is not available via the DOM generated at the time of rendering.

Despite the existence of the definition role, used in combination with the aria-labelledby property, WAI-ARIA does not offer a role equivalent to HTML definition lists (DL). The definition role can not, therefore, be used as an equivalent of an HTML definition list DL.

The roles tree, tablist, menu, combobox and listbox are not equivalent to an HTML ul or ol list.

References: The Role Model, List Role and The role model - ARIA SETSIZE.

Criterion 9.4 [AAA]

Despite the existence of the definition role, used in combination with the aria-labelledby property, WAI-ARIA does not offer a role equivalent to HTML definition lists (DL). The definition role can not, therefore, be used as an equivalent of an HTML definition list DL.

Presentation of information

Criterion 10.13 [A]

WAI-ARIA provides an aria-hidden property (true or false) that inhibits the rendering of a content to assistive technologies, without affecting its visibility with visual user agents: content with aria-hidden="true" will not be spoken out but remains visible. Unless the content controlled by aria-hidden is not intended to be rendered by assistive technologies, the value of the aria-hidden attribute must be consistent with the displayed or hidden status of the on-screen content.

The HTML5 specification describes a hidden attribute that can make unavailable (when the hidden attribute is present) content in the generated DOM (similar to type="hidden" on a form control). Unless the content controlled by hidden is not intended to be rendered by assistive technologies, the value of the hidden attribute must be consistent with the displayed or hidden status of the on-screen content.

There can be situations where a content controlled with hidden or aria-hidden is momentarily in an inconsistent state with the displayed or hidden status of the content, for example when an item is meant to be available but visually displayed only upon further action. In this case, it is the final state of the content that should be considered for validation of this criterion.

Forms

Criterion 11.11 [AA]

Some types of HTML5 form controls manage help messages on input automatically. For example, input fields of type email display a message like "Please enter a valid email address" if the entered email address does not match the expected format. These messages are customizable via the API Constraint Validation, which provides ability to customize error messages. This validates the criterion, however, authors are warned that support of this API is not yet stabilized. The pattern type that can automatically perform format control (using regular expressions) also displays a help message but it is customizable via the title attribute; this mechanism validates the criterion.

Reference: WHATWG - 4.10.21.3 The constraint validation API.

Criterion 12.10 [A]

WAI-ARIA provides roles to indicate the main areas (regions) of the document. These roles are very beneficial to users of screen readers in particular, but also to sighted keyboard users who can benefit from features allowing rapid navigation in the document structure. While most screen readers make these features available to users, browsers have not yet proposed dedicated navigation features for users who rey on keyboard eclusively. The implementation of skip links remains a requirement.