Skip to content

[Carousel] Accessibility improvments#2930

Open
renow-luxembourg wants to merge 3 commits intoadobe:mainfrom
renow-luxembourg:renow_fix_carousel
Open

[Carousel] Accessibility improvments#2930
renow-luxembourg wants to merge 3 commits intoadobe:mainfrom
renow-luxembourg:renow_fix_carousel

Conversation

@renow-luxembourg
Copy link
Contributor

@renow-luxembourg renow-luxembourg commented Mar 31, 2025

Feature Request

Is your feature request related to a problem? Please describe.
In a recent accessibility audit, several issues were found in the carousel component :

  • For people using vocalization tool (NVDA, JAWS, VoiceOver, etc.), each slide content is vocalized twice due to the 2 aria-live attributes.
  • Controls and Indicators should come before the slides content in the tabulation order
  • Indicator are not initially focusable, we have to add the tabindex attribute before starting the carousel (mostly in carousel without autoplay)
  • On each slide there are 2 attributes that give the accessible name : aria-label and aria-labelledby, some vocalization tool read both and it's a bit annoying
  • When the carousel controls buttons only contain an icon, it's a nice-to-have to allow the user to display to know what this button is about using a title attribute
  • Carousel indicator item should be actionable using the spacebar. The easy way to do it is to use the native button element.
Q                       A
Fixed Issues?
Patch: Bug Fix?
Minor: New Feature? Yes
Major: Breaking Change?
Tests Added + Pass? Yes
Documentation Provided Yes (code comments and or markdown)
Any Dependency Changes?
License Apache License, Version 2.0

Environment
AEM 6.5
Core Components version 2.28.0

Documentation
We have to implement the properties specified in the design pattern of carousel and tab :

@codecov
Copy link

codecov bot commented Mar 31, 2025

Codecov Report

✅ All modified and coverable lines are covered by tests.

📢 Thoughts on this report? Let us know!

@sonarqubecloud
Copy link

@sonarqubecloud
Copy link

@sonarqubecloud
Copy link

sonarqubecloud bot commented Mar 4, 2026

@vladbailescu
Copy link
Member

@renow-luxembourg , thank you for submitting this PR! Since it changes the indicators element and position in the DOM structure, it's unfortunately not backwards compatible and would break existing implementations (for Cloud Service Core Components get automated upgrades). We might be able to consider this change for a future version of the Carousel component, meanwhile we recommend customers implement such modifications by overlaying in their own proxy components.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants