UNPKG

accessibility-checker-engine

Version:

An automated accessibility checking engine for use by other tools

102 lines (85 loc) 5.54 kB
<!DOCTYPE html> <html lang="en-US"> <head> <title>aria_descendant_valid - Accessibility Checker Help</title> <script> RULE_MESSAGES = {"en-US":{"group":"Browsers ignore the explicit and implicit ARIA roles of the descendants of certain elements","pass":"The element contains valid descendants","potential_child_implicit_role":"The element with role \"{0}\" contains descendants with implicit roles \"{1}\" which are ignored by browsers","fail_child_explicit_role":"The element with role \"{0}\" contains descendants with roles \"{1}\" which are ignored by browsers"}}; RULE_ID = "aria_descendant_valid" </script> <!-- /****************************************************************************** Copyright:: 2022- IBM, Inc Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. *****************************************************************************/ --> <!-- Title and messages generated at build time --> <link rel="icon" href="https://ibm.com/able/favicon-32x32.png" type="image/png"> <link rel="icon" href="https://ibm.com/able/favicon.svg" type="image/svg+xml"> <link rel="stylesheet" href="../common/help.css" /> <script type="module"> import "https://1.www.s81c.com/common/carbon/web-components/version/v1.35.0/code-snippet.min.js"; import "https://1.www.s81c.com/common/carbon/web-components/version/v1.35.0/list.min.js"; </script> <script src="https://cdn.jsdelivr.net/npm/marked/marked.min.js"></script> <script src="../common/help.js"></script> </head> <body> <div class="bx--grid toolHelp"> <div class="bx--row"> <div class="bx--col-sm-4 bx--col-md-8 bx--col-lg-16 toolHead"> <!-- Group message injected here --> <h3 id="ruleMessage"></h3> <!-- Severity level injected here --> <div id="locLevel"></div> <!-- Rule specific message injected here --> <p id="groupLabel"></p> </div> </div> <div class="bx--row"> <div class="bx--col-sm-4 bx--col-md-5 bx--col-lg-8 toolMain"> <!-- Start main panel --> <mark-down><script type="text/plain"> ### Why is this important? Correct roles and descendants help ensure that assistive technologies can gather the correct information about all the user interface components. When certain elements that are specified in ARIA to have presentational descendants, browsers _should not_ expose the descendants through the platform accessibility API to assistive technologies. If user agents do not hide the descendant's contents and semantics from the accessibility tree, some information may be presented (spoken) twice and confuse the end user. The content contained by the element, i.e., inner text, as well as contents of all its descendants remains visible to assistive technologies, except, of course, when the text is explicitly hidden, e.g., styled with `display:none` or has `aria-hidden="true"`. This rule is triggered when one of the following elements contain more than presentational descendants: `button`, `checkbox`, `img`, `math`, `menuitemcheckbox`, `menuitemradio`, `option`, `progressbar`, `radio`, `scrollbar`, `separator`, `slider`, `switch`, and `tab`. Refer to the table in [ARIA in HTML - Allowed descendants of ARIA roles](https://www.w3.org/TR/html-aria/#allowed-descendants-of-aria-roles) for the normative definition for each ARIA role, the kinds of content categories for each role, and what [kinds of elements](https://html.spec.whatwg.org/multipage/dom.html#kinds-of-content) can be descendants. For example, a `<button>` allows text and images but does not allow [interactive content](https://html.spec.whatwg.org/multipage/dom.html#interactive-content-2) or descendants with a tabindex attribute because that would confuse assistive technology users as to the expected content or behavior of the button. <!-- This is where the code snippet is injected --> <div id="locSnippet"></div> ### What to do * Remove the incorrect descendant element </script></mark-down> <!-- End main panel --> <!-- This is where the rule id is injected --> <div id="ruleInfo"></div> </div> <div class="bx--col-sm-4 bx--col-md-3 bx--col-lg-4 toolSide"> <!-- Start side panel --> <mark-down><script type="text/plain"> ### About this requirement * [IBM 4.1.2 Name, Role, Value](https://www.ibm.com/able/requirements/requirements/#4_1_2) * [ARIA authoring practices guide](https://www.w3.org/WAI/ARIA/apg/) * [ARIA specification - Presentational Children](https://www.w3.org/TR/wai-aria-1.2/#childrenArePresentational) * [ARIA in HTML - Allowed descendants of ARIA roles](https://www.w3.org/TR/html-aria/#allowed-descendants-of-aria-roles) ### Who does this affect? * People using a screen reader, including blind, low vision, and neurodivergent people </script></mark-down> <!-- End side panel --> </div> </div> </div> </body> </html>