Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Aria22 modification for aria-atomic #1699

Merged
merged 6 commits into from
Dec 13, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 4 additions & 4 deletions techniques/aria/ARIA22.html
Original file line number Diff line number Diff line change
Expand Up @@ -19,20 +19,20 @@ <h2>When to Use</h2>
<h2>Description</h2>
<p>
This technique uses the <code>status</code> role from the ARIA specification to notify Assistive Technologies (AT) when content has been updated with information about the user's or application's status. This is done by adding <code>role="status"</code> to the element that contains the <a>status message</a>. The aria live region role of <code>status</code> has an implicit <code>aria-live</code> value of <code>polite</code>, which allows a user to be notified via AT (such as a screen reader) when status messages are added. The role of <code>status</code> also has a default <code>aria-atomic</code> value of <code>true</code>, so that updates to the container marked with a role of <code>status</code> will result in the AT presenting the entire contents of the container to the user, including any author-defined labels (or additional nested elements). Such additional context can be critical where the status message text alone will not provide an equivalent to the visual experience. The content of the aria-live container is automatically read by the AT, without the AT having to focus on the place where the text is displayed. See <a href="https://www.w3.org/TR/wai-aria/#status">WAI-ARIA status (role)</a> for more details.</p>

<p>Note that since <code>role="status"</code> is currently not treated as atomic by default in some environments, it is advisable to add an explicit <code>aria-atomic="true"</code> if the entire contents of the container should be announced.</p>
</section>
<section id="examples">
<h2>Examples</h2>
<section class="example">
<h3>Including a search results message</h3>
<p>After a user presses a Search button, the page content is updated to include the results of the search, which are displayed in a section below the Search button. The change to content also includes the message <samp>"5 results returned"</samp> near the top of this new content. This text is given an appropriate role for a status message. A screen reader will announce "5 results returned".</p>
<pre xml:space="preserve"><code class="language-html">&lt;div role="status"&gt;5 results returned.&lt;/div&gt;</code></pre>
<pre xml:space="preserve"><code class="language-html">&lt;div role="status" aria-atomic="true"&gt;5 results returned.&lt;/div&gt;</code></pre>
<p class="working-example"><a href="../../working-examples/aria-role-status-searchresults/">Working example: role=status on search results</a></p>
</section>
<section class="example">
<h3>Updating the shopping cart status</h3>
<p>After a user presses an Add to Shopping Cart button, content near the Shopping Cart icon updates to read "1 items". The container for this text (in this case a <code class="language-html">&lt;p&gt;</code>) is marked with the role of <code class="language-html">status</code>. Because it adds visual context, the shopping cart image &#8212; with succinct and accurate <code class="language-html">alt</code> text &#8212; is also placed in the container. Due to the default <code class="language-html">aria-atomic</code> value, a screen reader will announce "Shopping cart, six items".</p>
<pre xml:space="preserve"><code class="language-html">&lt;p role="status" &gt;
<p>After a user presses an Add to Shopping Cart button, content near the Shopping Cart icon updates to read "1 items". The container for this text (in this case a <code class="language-html">&lt;p&gt;</code>) is marked with the role of <code class="language-html">status</code>. Because it adds visual context, the shopping cart image &#8212; with succinct and accurate <code class="language-html">alt</code> text &#8212; is also placed in the container. Due to the <code class="language-html">aria-atomic</code> value, a screen reader will announce "Shopping cart, six items".</p>
<pre xml:space="preserve"><code class="language-html">&lt;p role="status" aria-atomic="true"&gt;
&lt;img src="shopping-cart.png" alt="Shopping Cart"&gt;
&lt;span id="cart"&gt;0&lt;/span&gt; items
&lt;/p&gt;
Expand Down
2 changes: 1 addition & 1 deletion working-examples/aria-role-status-searchresults/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ <h1>Using <code>role=status</code> to Provide Status Message on Search Results</
</div>
<h2>Results</h2>

<p role="status" id="resultsmsg"></p>
<p role="status" aria-atomic="true" id="resultsmsg"></p>


</div>
Expand Down
2 changes: 1 addition & 1 deletion working-examples/aria-role-status-shoppingcart/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@
<h1>Using <code>role=status</code> to Provide Status Message on Shopping Cart</h1>
<p>This simple script demonstrates how a shopping cart counter is updated and surfaced using the aria <code>status</code> role. Here the role is placed on the paragraph containing the dynamically updated text, and the shopping cart image's alt provides additional context. Due to the default <code>aria-atomic="true"</code>, a screenreader should announce "Shopping Cart # items" or (depending on browser compatibility) "# items" each time the Buy Pink Flamingos button is selected.</p>
<hr>
<p role="status"><img src="shopping-cart.png" alt="Shopping Cart"><br>
<p role="status" aria-atomic="true"><img src="shopping-cart.png" alt="Shopping Cart"><br>
<span id="cart">0</span> items</p>

<h2>Shop at our single-product store</h2>
Expand Down