Skip to content

Commit

Permalink
prevent use of aria-hidden=true on document root elements (#1880)
Browse files Browse the repository at this point in the history
Co-authored-by: James Craig <[email protected]>
  • Loading branch information
scottaohara and cookiecrook authored Dec 11, 2024
1 parent 5973a12 commit 951479e
Showing 1 changed file with 3 additions and 2 deletions.
5 changes: 3 additions & 2 deletions index.html
Original file line number Diff line number Diff line change
Expand Up @@ -11603,10 +11603,11 @@ <h2>Definitions of States and Properties (all aria-* attributes)</h2>
<div class="state-description">
<p><a>Indicates</a>, when set to <code>true</code>, that an <a>element</a> and its entire subtree are hidden from assistive technology, regardless of whether it is visibly rendered.</p>
<p>User agents determine an element's [=element/hidden=] status based on whether it is rendered, and the rendering is usually controlled by CSS. For example, an element whose <code>display</code> property is set to <code>none</code> is not rendered. An element is considered [=element/hidden=] if it, or any of its ancestors are not rendered or have their <code>aria-hidden</code> attribute value set to <code>true</code>.</p>
<p>Authors MAY, with caution, use aria-hidden to hide visibly rendered content from assistive technologies <em>only</em> if the act of hiding this content is intended to improve the experience for users of assistive technologies by removing redundant or extraneous content. Authors using aria-hidden to hide visible content MUST ensure that identical or equivalent meaning and functionality is exposed to assistive technologies.</p>
<p class="note">Authors are advised to use extreme caution and consider a wide range of disabilities when hiding visibly rendered content from assistive technologies. For example, a sighted, dexterity-impaired individual might use voice-controlled assistive technologies to access a visual interface. If an author hides visible link text "Go to checkout" and exposes similar, yet non-identical link text "Check out now" to the accessibility API, the user might be unable to access the interface they perceive using voice control. Similar problems can also arise for screen reader users. For example, a sighted telephone support technician might attempt to have the blind screen reader user click the "Go to checkout" link, which they might be unable to find using a type-ahead item search ("Go to…").</p>
<p>Authors MUST NOT use <code>aria-hidden</code> to hide the root element or the host language element that <a data-cite="html/dom.html#represents">represents</a> the contents of the primary document in view. For instance, the <code>html</code> or <code>body</code> elements in an HTML document. Authors MAY, with caution, use <code>aria-hidden</code> to hide visibly rendered content from assistive technologies <em>only</em> if the act of hiding this content is intended to improve the experience for users of assistive technologies by removing redundant or extraneous content. Authors using <code>aria-hidden</code> to hide visible content from screen readers MUST ensure that identical or equivalent meaning and functionality is exposed to assistive technologies.</p>
<p class="note">Authors are advised to use extreme caution and consider a wide range of disabilities when hiding visibly rendered content from assistive technologies. For example, a sighted, dexterity-impaired individual might use voice-controlled assistive technologies to access a visual interface. If an author hides visible link text "Go to checkout" and exposes similar, yet non-identical link text "Check out now" to the accessibility API, the user might be unable to access the interface they perceive using voice control software. Similar problems can also arise for screen reader users. For example, a sighted telephone support technician might attempt to have the blind screen reader user click the "Go to checkout" link, which they might be unable to find using a type-ahead item search ("Go to…"), since that text would have been hidden by the use of the attribute.</p>
<p class="note">As of ARIA 1.3, <code><sref>aria-hidden</sref>="false"</code> is now synonymous with <code>aria-hidden="undefined"</code>.</p>
<p class="note">The original intent for <code>aria-hidden="false"</code> was to allow user agents to expose content that was otherwise hidden from the accessibility tree. However, due to ambiguity in the specification and inconsistent browser support for the <code>false</code> value, the original intent is no longer supported.</p>
<p>To prevent authors erroneously hiding entire window-rendered documents only to those using assistive technology, user agents MUST NOT expose the hidden state to assistive technologies if it is specified on the root element or the host language element that <a data-cite="html/dom.html#represents">represents</a> the contents of the primary document in view. For instance, the <code>html</code> or <code>body</code> elements in an HTML document, or the root <code>svg</code> element if it is rendered as its own primary document in the browser window. If authors were to specify <code>aria-hidden="true"</code> on the opening tag for an embedded document, for instance on a <code>math</code> or <code>svg</code> embedded within an HTML document, user agents would still be expected to hide these elements from assistive technologies.</p>
</div>
<table class="state-features">
<caption>Characteristics:</caption>
Expand Down

0 comments on commit 951479e

Please sign in to comment.