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

Add Aria-repeated #1188

Closed
wants to merge 5 commits into from
Closed
Changes from 4 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
75 changes: 70 additions & 5 deletions index.html
Original file line number Diff line number Diff line change
Expand Up @@ -3742,7 +3742,7 @@ <h2>Definition of Roles</h2>
</tr>
<tr>
<th class="role-properties-head" scope="row">Supported States and Properties:</th>
<td class="role-properties"> </td>
<td class="role-properties"><pref>aria-repeated</pref></td>
</tr>
<tr>
<th class="role-inherited-head" scope="row">Inherited States and Properties:</th>
Expand Down Expand Up @@ -5845,7 +5845,7 @@ <h5>Note regarding the ARIA 1.1 <code>none</code> role.</h5>
</tr>
<tr>
<th class="role-properties-head" scope="row">Supported States and Properties:</th>
<td class="role-properties"> </td>
<td class="role-properties"><pref>aria-repeated</pref></td>
</tr>
<tr>
<th class="role-inherited-head" scope="row">Inherited States and Properties:</th>
Expand Down Expand Up @@ -6735,7 +6735,7 @@ <h5>Presentational Roles Conflict Resolution</h5>
</tr>
<tr>
<th class="role-properties-head" scope="row">Supported States and Properties:</th>
<td class="role-properties"> </td>
<td class="role-properties"><pref>aria-repeated</pref></td>
</tr>
<tr>
<th class="role-inherited-head" scope="row">Inherited States and Properties:</th>
Expand Down Expand Up @@ -6917,6 +6917,7 @@ <h5>Presentational Roles Conflict Resolution</h5>
<li><sref>aria-expanded</sref></li>
<li><pref>aria-level</pref></li>
<li><pref>aria-posinset</pref></li>
<li><pref>aria-repeated</pref></li>
<li><pref>aria-rowindex</pref></li>
<li><pref>aria-rowindextext</pref></li>
<li><pref>aria-setsize</pref></li>
Expand Down Expand Up @@ -7014,7 +7015,7 @@ <h5>Presentational Roles Conflict Resolution</h5>
</tr>
<tr>
<th class="role-properties-head" scope="row">Supported States and Properties:</th>
<td class="role-properties"> </td>
<td class="role-properties"><pref>aria-repeated</pref></td>
</tr>
<tr>
<th class="role-inherited-head" scope="row">Inherited States and Properties:</th>
Expand Down Expand Up @@ -11317,7 +11318,7 @@ <h2>Definitions of States and Properties (all aria-* attributes)</h2>
<tbody>
<tr>
<th class="state-related-head" scope="row">Related Concepts:</th>
<td class="state-related"> </td>
<td class="state-related">aria-repeated</td>
</tr>
<tr>
<th class="state-applicability-head" scope="row">Used in Roles:</th>
Expand Down Expand Up @@ -12185,6 +12186,67 @@ <h2>Definitions of States and Properties (all aria-* attributes)</h2>
</tbody>
</table>
</div>
<div class="property" id="aria-repeated">
<pdef>aria-repeated</pdef>
<div class="property-description">
<p>Indicates content is repeated for visual purposes.</p>
<p>The <code>aria-repeated</code> helps indicate that content is repeated, and that presenting the repeated content to assistive technology users could produce underesirable redundancy in the output. Unlike <pref>aria-hidden</pref>, <code>aria-repeated</code> content may be presented by screen readers to users when requested by the user.</p>
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nit: "The aria-repeated property helps..." (Or delete the "The")

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

content may be presented by screen readers

If it's a normative "may" (which is what I think you meant?) then it needs to be MAY.
If not, then please change it to something like:

content can be presented by screen readers

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
<p>The <code>aria-repeated</code> helps indicate that content is repeated, and that presenting the repeated content to assistive technology users could produce underesirable redundancy in the output. Unlike <pref>aria-hidden</pref>, <code>aria-repeated</code> content may be presented by screen readers to users when requested by the user.</p>
<p>The <code>aria-repeated</code> helps indicate that content is repeated, and that presenting the repeated content to assistive technology users could produce undesirable redundancy in the output. Unlike <pref>aria-hidden</pref>, <code>aria-repeated</code> content may be presented by screen readers to users when requested by the user.</p>

<p>Authors SHOULD NOT use <code>aria-repeated</code> on the very first instance of the repeated content, and SHOULD use <code>aria-repeated</code> on subsequent redundant instances of the same content. Setting <code>aria-repeated</code> on a subtree indicates the entire subtree is redundant, and it cannot be reversed within that subtree by setting <code>aria-repeated="false"</code> on a descendant.</p>
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What if the very first instance of the repeated content is a pull quote which, for aesthetic reasons, appears first?

In addition, I assume that authors MAY use aria-repeated on the very first instance of the repeated content -- IF they set it to false.

Therefore what about something in the ballpark of:

  Authors SHOULD only set <code>aria-repeated</code> to <code>true</code>
  on redundant instances of content because assistive technologies MAY skip
  over these instances during presentation to the user.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ok, I took this but wanted to keep the part about aria-repeated=false.
Could we actually disallow the false value completely? I don't see how it's useful.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm good with this change, but I'm not resolving the conversation yet because you ask about disallowing the false value completely. That might be a discussion worth having with the group.

I personally think disallowing false on a boolean would be weird. So either false is the default value that no one uses because why bother? Or aria-repeated shouldn't be a boolean. IMHO.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If I have a submit button at the beginning and one at the end of a form, wouldn't it be better to use aria-repeated=true on the first submit button?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Probably should tell authors not to apply it to elements that contain interactive content. I would not want my screen reader to hide either submit button regardless of what repeated is set to.

<p>Here are some examples of repeated content:</p>
<ul>
<li>Running headers and footer sections, repeated on each page</li>
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
<li>Running headers and footer sections, repeated on each page</li>
<li>Running header and footer sections, repeated on each page</li>

<li>Repeated table header rows</li>
<li>Pull quote</li>
</ul>
<p>Because the repeated content may be important in some scenarios, e.g. during proofreading, assistive technologies MAY present options so that screen readers users can choose whether or not to filter <code>aria-repeated</code> content out of the current view.</p>
aleventhal marked this conversation as resolved.
Show resolved Hide resolved
</div>
<table class="property-features">
<caption>Characteristics:</caption>
<thead>
<tr>
<th scope="col">Characteristic</th>
<th scope="col">Value</th>
</tr>
</thead>
<tbody>
<tr>
<th class="property-related-head" scope="row">Related Concepts:</th>
<td class="property-related">aria-hidden</td>
</tr>
<tr>
<th class="property-applicability-head" scope="row">Used in Roles:</th>
<td class="property-applicability">Placeholder</td>
</tr>
<tr>
<th class="property-descendants-head" scope="row">Inherits into Roles:</th>
<td class="property-descendants">Placeholder</td>
</tr>
<tr>
<th class="property-value-head" scope="row">Value:</th>
<td class="property-value"><a href="#valuetype_true-false">true/false</a></td>
</tr>
</tbody>
</table>
<table class="value-descriptions">
<caption>Values:</caption>
<thead>
<tr>
<th scope="col">Value</th>
<th scope="col">Description</th>
</tr>
</thead>
<tbody>
<tr>
<th class="value-name" scope="row"><strong class="default">false (default)</strong></th>
<td class="value-description">Content is not repeated.</td>
</tr>
<tr>
<th class="value-name" scope="row">true</th>
<td class="value-description">Content is repeated and can be skipped in reading order without sacrificing readability.</td>
</tr>
</tbody>
</table>
</div>
<div class="property" id="aria-required">
<pdef>aria-required</pdef>
<div class="property-description">
Expand Down Expand Up @@ -13267,6 +13329,7 @@ <h2>Interface Mixin <dfn>AriaAttributes</dfn></h2>
attribute DOMString? ariaPressed;
attribute DOMString? ariaReadOnly;
attribute DOMString? ariaRelevant;
attribute DOMString? ariaRepeated;
attribute DOMString? ariaRequired;
attribute DOMString? ariaRoleDescription;
attribute DOMString? ariaRowCount;
Expand Down Expand Up @@ -13325,6 +13388,7 @@ <h2>ARIA Attribute Reflection</h2>
<tr><td><dfn>ariaReadOnly</dfn></td><td><pref>aria-readonly</pref></td></tr>
<tr><td><dfn>ariaRelevant</dfn></td><td><pref>aria-relevant</pref></td></tr>
<tr><td><dfn>ariaRequired</dfn></td><td><pref>aria-required</pref></td></tr>
<tr><td><dfn>ariaRepeated</dfn></td><td><pref>aria-repeated</pref></td></tr>
<tr><td><dfn>ariaRoleDescription</dfn></td><td><pref>aria-roledescription</pref></td></tr>
<tr><td><dfn>ariaRowCount</dfn></td><td><pref>aria-rowcount</pref></td></tr>
<tr><td><dfn>ariaRowIndex</dfn></td><td><pref>aria-rowindex</pref></td></tr>
Expand Down Expand Up @@ -13471,6 +13535,7 @@ <h2>Substantive changes targetted for the 1.3 release</h2>
<h2>Substantive changes since the last public working draft</h2>
<ul>
<!-- EdNote: After each WD publish, move contents of this list into the next one below. -->
<li>03-Feb-2020: Add <pref>aria-repeated</pref>.</li>
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for adding the ChangeLog entry! Based on experience, this tends to result in merge conflicts because things don't land right away and/or in the expected order. Therefore, James and I typically do the ChangeLog after. (I'm not saying don't include it; merely giving you the option.)

<li>01-Nov-2019: Modify <rref>combobox</rref> to new ARIA 1.2 pattern.</li>
<li>25-Oct-2019: Modify <rref>caption</rref> authoring advice</li>
<li>22-Oct-2019: Change <sref>aria-disabled</sref>, <pref>aria-errormessage</pref>, <pref>aria-haspopup</pref> and <sref>aria-invalid</sref> from global to widget specific.</li>
Expand Down