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

Aria live overly used in components. #10704

Open
2 of 5 tasks
colinhale1 opened this issue Nov 6, 2024 · 1 comment
Open
2 of 5 tasks

Aria live overly used in components. #10704

colinhale1 opened this issue Nov 6, 2024 · 1 comment
Labels
0 - new New issues that need assignment. a11y Issues related to Accessibility fixes or improvements. ArcGIS Business/Community Analyst Issues logged by ArcGIS Business/Community Analyst team members. bug Bug reports for broken functionality. Issues should include a reproduction of the bug. calcite-components Issues specific to the @esri/calcite-components package. impact - p1 - need for current milestone User set priority impact status of p1 - need for current milestone needs milestone Planning workflow - pending milestone assignment, has priority and/or estimate. p - medium Issue is non core or affecting less that 60% of people using the library spike Issues that need quick investigations for time estimations, prioritization, or a quick assessment.

Comments

@colinhale1
Copy link

Check existing issues

Summary

During our recent accessibility audit, we found excessive use of the aria-live attribute in the calcite-button, calcite-tooltip, and calcite-modal components. This attribute is added in the shadow root, which we don't control.

For more context, here is the full issue report from the accessibility audit for one of the instances:

Redundant "aria-live" attributes have been added to static (non-changing) containers throughout the page. Instances include:

Tooltips
Resources dialog and buttons within the dialog.
Analysis extent button
Current map extent popover
[User Impact]
When markup is not implemented to spec, assistive tech can act unpredictably. In this instance, it could cause assistive tech to convey a lot of redundant information which their users would then need to parse, trying to find the information they actually need.

[Code Reference]
<calcite-popover class="esriGECalcitePopover" aria-hidden="false" aria-live="polite" id="calcite-popover-577c8a09-26ff-0635-d6a7-b703768c8e80" role="dialog" (...)>(...)

[Steps to Reproduce]

Enable the screen reader.
Navigate to "Resources" and activate it.
Notice that all the content within the dialog is conveyed by the screen reader.
Press Tab and notice that the close button is focused and conveyed three times, all the dialog's content is conveyed again and controls information is conveyed twice.
Note
[Recommendation]
Ensure ARIA roles, states, and properties are valid. Many ARIA attributes can only be used on certain elements. Some can only be used in combination with other attributes. Additionally, if an attribute references an ID, that ID must be present in the page.
To detect many of these errors automatically, use the Nu Html Checker: https://validator.w3.org/nu/

Content and controls that do not change nor update must not have aria-live="polite" this attribute should only be used for dynamically changing content that occurs in content placed before the point where the focus is placed or when changes in content need to be conveyed right after they occur.

[Compliant Code Example]
<calcite-popover class="esriGECalcitePopover" style="z-index: 999; position: fixed; top: 0px; left: 0px; transform: translate(89px, 163px);" aria-hidden="false" id="calcite-popover-577c8a09-26ff-0635-d6a7-b703768c8e80" role="dialog" aria-labelledby="resources-dialog-title" (...)>

Actual Behavior

Screen shot of the code pen calcite-tooltip example with the aria-live.
Screenshot 2024-11-06 at 3 46 00 PM

Expected Behavior

The attribute aria-live should be optional and not used by default.

Reproduction Sample

https://codepen.io/pen?&editors=100

Reproduction Steps

  1. Open example
  2. Inspect tooltip
  3. Observe aria-live is added to component

Reproduction Version

Current

Working W3C Example/Tutorial

No response

Relevant Info

No response

Regression?

No response

Priority impact

impact - p1 - need for current milestone

Calcite package

  • @esri/calcite-components
  • @esri/calcite-components-react
  • @esri/calcite-design-tokens
  • @esri/eslint-plugin-calcite-components

Esri team

ArcGIS Business/Community Analyst

@colinhale1 colinhale1 added 0 - new New issues that need assignment. a11y Issues related to Accessibility fixes or improvements. bug Bug reports for broken functionality. Issues should include a reproduction of the bug. needs triage Planning workflow - pending design/dev review. p - high Issue should be addressed in the current milestone, impacts component or core functionality labels Nov 6, 2024
@github-actions github-actions bot added ArcGIS Business/Community Analyst Issues logged by ArcGIS Business/Community Analyst team members. calcite-components Issues specific to the @esri/calcite-components package. impact - p1 - need for current milestone User set priority impact status of p1 - need for current milestone labels Nov 6, 2024
@geospatialem geospatialem added p - medium Issue is non core or affecting less that 60% of people using the library needs milestone Planning workflow - pending milestone assignment, has priority and/or estimate. spike Issues that need quick investigations for time estimations, prioritization, or a quick assessment. and removed p - high Issue should be addressed in the current milestone, impacts component or core functionality needs triage Planning workflow - pending design/dev review. labels Nov 12, 2024
@geospatialem
Copy link
Member

Spike to determine:

  • Which components use aria-live
  • Do all the components using aria-live need to depict dynamic information/updates?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
0 - new New issues that need assignment. a11y Issues related to Accessibility fixes or improvements. ArcGIS Business/Community Analyst Issues logged by ArcGIS Business/Community Analyst team members. bug Bug reports for broken functionality. Issues should include a reproduction of the bug. calcite-components Issues specific to the @esri/calcite-components package. impact - p1 - need for current milestone User set priority impact status of p1 - need for current milestone needs milestone Planning workflow - pending milestone assignment, has priority and/or estimate. p - medium Issue is non core or affecting less that 60% of people using the library spike Issues that need quick investigations for time estimations, prioritization, or a quick assessment.
Projects
None yet
Development

No branches or pull requests

2 participants