Skip to content

fix(core): inherit aria attributes on host elements#25156

Merged
sean-perkins merged 7 commits into
mainfrom
FW-1138
Apr 21, 2022
Merged

fix(core): inherit aria attributes on host elements#25156
sean-perkins merged 7 commits into
mainfrom
FW-1138

Conversation

@sean-perkins
Copy link
Copy Markdown
Contributor

@sean-perkins sean-perkins commented Apr 20, 2022

Pull request checklist

Please check if your PR fulfills the following requirements:

  • Tests for the changes have been added (for bug fixes / features)
  • Docs have been reviewed and added / updated if needed (for bug fixes / features)
  • Build (npm run build) was run locally and any changes were pushed
  • Lint (npm run lint) has passed locally and any fixes were made for failures

Pull request type

Please check the type of change your PR introduces:

  • Bugfix
  • Feature
  • Code style update (formatting, renaming)
  • Refactoring (no functional changes, no api changes)
  • Build related changes
  • Documentation content changes
  • Other (please describe):

What is the current behavior?

ARIA attributes specified on the host element are not reflected to the cloned element in the light DOM. For example, with ion-button we create a button and clone it into the light DOM so that screen readers can correctly interact with the element. Currently, we are only supporting aria-label to be reflected to the HTML button.

Issue URL: Enterprise FW-1138, Enterprise FW-1071, #20127

What is the new behavior?

All WAI-ARIA attributes, as listed here are reflected to the following components:

  • ion-button
  • ion-back-button
  • ion-breadcrumb
  • ion-header
  • ion-input
  • ion-textarea
  • ion-menu
  • ion-menu-button

Does this introduce a breaking change?

  • Yes
  • No

Other information

I opted for a manually managed list of aria attributes over regular expression matching, after taking into consideration the execution cost of regex for each web component instance + the number of attributes/properties on an element.

This approach should be easily applicable to other open issues, to add support for aria attributes.

@sean-perkins sean-perkins requested a review from a team April 20, 2022 01:41
@github-actions github-actions Bot added the package: core @ionic/core package label Apr 20, 2022
Comment thread core/src/utils/helpers.ts Outdated
Comment thread core/src/utils/helpers.ts
Comment thread core/src/utils/helpers.ts
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

package: core @ionic/core package

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants