Proposed Test Rule: iframe element has non-empty accessible name
Description
This rule checks that each iframe element has a non-empty accessible name.
Applicability
This rule applies to iframe elements that are included in the accessibility tree and that can be accessed by sequential focus navigation.
Note: frame element is deprecated, this rule does not consider frame or frameset elements.
Expectation
Each target element has an accessible name that is not empty ("").
Assumptions
If an iframe is not perceived by the user as a single control, it does not qualify as a user interface component under WCAG 2. In such a scenario, failing this rule would not fail success criterion 4.1.2. Unless the iframe is both removed from the accessibility tree and removed from sequential focus navigation, they usually are considered to be user interface components.
Accessibility Support
-
Some browsers include
iframeelements in the sequential focus navigation. This ensures that the contents ofiframeelements can be scrolled and accessed by using the keyboard. When aniframeis removed from the accessibility tree, this rule is still applicable for those browsers, unless theiframeis explicitly removed from sequential focus navigation (by having thetabindexattribute set to a negative value). -
Browser and assistive technology support for
iframeelements is currently inconsistent. Some examples of inconsistencies include (but are not limited to):- Assistive technologies being set up to ignore the
titleattribute, which means that to some users thetitleattribute will not act as an accessible name, - There is a known combination of a popular browser and assistive technology that ignores
aria-labeland only announcestitleattribute as an accessible name - Some assistive technologies ignore empty
iframeelements, regardless of if they are focusable or if they have an accessible name.
- Assistive technologies being set up to ignore the
Background
- H64: Using the title attribute of the frame and iframe elements
- Understanding Success Criterion 4.1.2
- User interface component
Test Cases
Passed
Passed Example 1
This iframe element gets its accessible name from the title attribute.
<iframe title="Grocery List" src="/test-assets/SC4-1-2-frame-doc.html"> </iframe>
Passed Example 2
This iframe element gets its accessible name from the aria-label attribute.
<iframe aria-label="Grocery list" src="/test-assets/SC4-1-2-frame-doc.html"> </iframe>
Passed Example 3
This iframe element gets its accessible name from the content of the div referenced with the aria-labelledby attribute.
<div id="frame-title-helper">Grocery List</div>
<iframe aria-labelledby="frame-title-helper" src="/test-assets/SC4-1-2-frame-doc.html"> </iframe>
Failed
Failed Example 1
This iframe element has an empty ("") accessible name. The name attribute is not used in computing the accessible name of iframe elements.
<iframe name="Grocery List" src="/test-assets/SC4-1-2-frame-doc.html"> </iframe>
Failed Example 2
This iframe element has no attributes that would give it a non-empty ("") accessible name.
<iframe src="/test-assets/SC4-1-2-frame-doc.html"> </iframe>
Failed Example 3
This iframe element has an empty ("") accessible name because the title attribute has an empty string as its value.
<iframe title="" src="/test-assets/SC4-1-2-frame-doc.html"> </iframe>
Failed Example 4
This iframe element has an empty ("") accessible name because the title attribute value is trimmed of whitespace by the accessible name computation.
Note:: Because iframe elements are part of sequential focus navigation, the explicit semantic role of none will be ignored, due to the Presentational Roles Conflict Resolution.
<iframe title=" " src="/test-assets/SC4-1-2-frame-doc.html" role="none"> </iframe>
Inapplicable
Inapplicable Example 1
This page has no iframe element.
<button>take me somewhere</button>
Inapplicable Example 2
This iframe is not included in the accessibility tree because of setting a style of display: none;.
<iframe style="display:none;" src="/test-assets/SC4-1-2-frame-doc.html"></iframe>
Inapplicable Example 3
This iframe element has a negative tabindex and therefore is not included in the sequential focus navigation.
<iframe tabindex="-1" src="/test-assets/SC4-1-2-frame-doc.html"> </iframe>
Glossary
Accessible Name
The accessible name is the programmatically determined name of a user interface element that is included in the accessibility tree.
The accessible name is calculated using the accessible name and description computation.
For native markup languages, such as HTML and SVG, additional information on how to calculate the accessible name can be found in HTML Accessibility API Mappings 1.0, Accessible Name and Description Computation (working draft) and SVG Accessibility API Mappings, Name and Description (working draft).
For more details, see examples of accessible name.
Note: As per the accessible name and description computation, each element always has an accessible name. When no accessible name is provided, the element will nonetheless be assigned an empty ("") one.
Note: As per the accessible name and description computation, accessible names are flat string trimmed of leading and trailing whitespace. Notably, it is not possible for a non-empty accessible name to be composed only of whitespace since these must be trimmed.
Explicit Semantic Role
The explicit semantic role of an element is determined by its role attribute (if any).
The role attribute takes a list of tokens. The explicit semantic role is the first valid role in this list. The valid roles are all non-abstract roles from WAI-ARIA Specifications. If the element has no role attribute, or if it has one with no valid role, then this element has no explicit semantic role.
Other roles may be added as they become available. Not all roles will be supported in all assistive technologies. Testers are encouraged to adjust which roles are allowed according to the accessibility support base line. For the purposes of executing test cases in all rules, it should be assumed that all roles are supported by assistive technologies so that none of the roles fail due to lack of accessibility support.
Focusable
Elements that can become the target of keyboard input as described in the HTML specification of focusable and can be focused.
Included in the accessibility tree
Elements included in the accessibility tree of platform specific accessibility APIs. Elements in the accessibility tree are exposed to assistive technologies, allowing users to interact with the elements in a way that meet the requirements of the individual user.
The general rules for when elements are included in the accessibility tree are defined in the core accessibility API mappings. For native markup languages, such as HTML and SVG, additional rules for when elements are included in the accessibility tree can be found in the HTML accessibility API mappings (working draft) and the SVG accessibility API mappings (working draft).
For more details, see [examples of included in the accessibility tree][].
Note: Users of assistive technologies might still be able to interact with elements that are not included in the accessibility tree. An example of this is a focusable element with an aria-hidden attribute with a value of true. Such an element could still be interacted using sequential keyboard navigation regardless of the assistive technologies used, even though the element would not be included in the accessibility tree.
[examples of included in the accessibility tree]: https://act-rules.github.io/pages/examples/included-in-the-accessibility-tree/
Outcome
An outcome is a conclusion that comes from evaluating an ACT Rule on a test subject or one of its constituent test target. An outcome can be one of the three following types:
- Inapplicable: No part of the test subject matches the applicability
- Passed: A test target meets all expectations
- Failed: A test target does not meet all expectations
Note: A rule has one passed or failed outcome for every test target. When there are no test targets the rule has one inapplicable outcome. This means that each test subject will have one or more outcomes.
Note: Implementations using the EARL10-Schema can express the outcome with the outcome property. In addition to passed, failed and inapplicable, EARL 1.0 also defined an incomplete outcome. While this cannot be the outcome of an ACT Rule when applied in its entirety, it often happens that rules are only partially evaluated. For example, when applicability was automated, but the expectations have to be evaluated manually. Such “interim” results can be expressed with the incomplete outcome.
WAI-ARIA specifications
The WAI ARIA Specifications group both the WAI ARIA W3C Recommendation and ARIA modules, namely:
- Accessible Rich Internet Applications (WAI-ARIA) 1.1
- WAI-ARIA Graphics Module 1.0
- Digital Publishing WAI-ARIA Module 1.0
Note: depending on the type of content being evaluated, part of the specifications might be irrelevant and should be ignored.
Whitespace
Whitespace are characters that have the Unicode “White_Space” property in the Unicode properties list.
This includes:
- all characters in the Unicode Separator categories, and
-
the following characters in the Other, Control category:
- Character tabulation (U+0009)
- Line Feed (LF) (U+000A)
- Line Tabulation (U+000B)
- Form Feed (FF) (U+000C)
- Carriage Return (CR) (U+000D)
- Next Line (NEL) (U+0085)
Implementations
This section is not part of the official rule. It is populated dynamically and not accounted for in the change history or the last modified date.
| Implementation | Consistency | Complete | Report |
|---|---|---|---|
| QualWeb | Consistent | Yes | View Report |
| SortSite | Consistent | No | View Report |
Changelog
This is the first version of this ACT rule.