[SR][Hub Hero][A11Y] Treat xs screen w/zoom as reduced motion#6177
[SR][Hub Hero][A11Y] Treat xs screen w/zoom as reduced motion#6177denlight wants to merge 11 commits into
Conversation
|
Hello, I'm the AEM Code Sync Bot and I will run some actions to deploy your branch.
|
| .hub-hero-carousel-header > div, | ||
| .hub-hero-carousel-header > div > *, | ||
| .hub-hero-carousel-item { | ||
| animation: none !important; |
There was a problem hiding this comment.
Absolutely needed? Anyway around using !important?
| } | ||
|
|
||
| /** extra small screens (320px = 640px at 200% zoom) — same static fallback as reduced-motion */ | ||
| @media (width <= 480px) { |
There was a problem hiding this comment.
If this is exactly the same as reduced motion, we should be able to combine it with
@media (prefers-reduced-motion: reduce) or (width <= 480px)
to avoid duplication.
|
When using Tab for navigation on tablet/mobile viewport, slides are not visually changed but VoiceOver announces the change. Screen.Recording.2026-06-17.at.11.38.57.mov |
overmyheadandbody
left a comment
There was a problem hiding this comment.
Approving, since it addresses critical Accessibility issues. However, I think the comments I've added deserve a follow-up story, to make this easier to maintain and reduce code footprint.
| .hub-hero-header, | ||
| .hub-hero-header > *, | ||
| .hub-hero-carousel, | ||
| .hub-hero-carousel-header, | ||
| .hub-hero-carousel-container, | ||
| .hub-hero-carousel-item, | ||
| .hub-hero-carousel-item-container { |
There was a problem hiding this comment.
How about
| .hub-hero-header, | |
| .hub-hero-header > *, | |
| .hub-hero-carousel, | |
| .hub-hero-carousel-header, | |
| .hub-hero-carousel-container, | |
| .hub-hero-carousel-item, | |
| .hub-hero-carousel-item-container { | |
| [class*="hub-hero-"], | |
| [class*="hub-hero-"] * { |
or something similar to streamline things for any future updates
There was a problem hiding this comment.
I had it like that at first, but that would require to have an "!important" statement on "animation: none". So i had to convert it to specific ones
| .hub-hero-image-grid-container-col:nth-child(1), | ||
| .hub-hero-image-grid-container-col:nth-child(2), | ||
| .hub-hero-image-grid-container-col:nth-child(3), | ||
| .hub-hero-image-grid-container-col:nth-child(4), | ||
| .hub-hero-image-grid-container-col:nth-child(5), | ||
| .hub-hero-image-grid-container-col:nth-child(5), | ||
| .hub-hero-carousel, | ||
| .hub-hero-carousel-header, | ||
| .hub-hero-carousel-header>div, | ||
| .hub-hero-carousel-header>div>*, | ||
| .hub-hero-carousel-item { | ||
| animation: none !important; | ||
| .hub-hero-carousel-item:nth-child(1), | ||
| .hub-hero-carousel-item:nth-child(2), | ||
| .hub-hero-carousel-item:nth-child(3), | ||
| .hub-hero-carousel-item:nth-child(4), | ||
| .hub-hero-carousel-item:nth-child(5) { | ||
| animation: none; | ||
| transition: none; | ||
| position: relative; | ||
| --hub-hero-height: auto; | ||
| } |
There was a problem hiding this comment.
This looks quite similar to the above suggestion of
[class*="hub-hero-"],
[class*="hub-hero-"] *, {
The declarations are identical, so might as well use a more general rule. If specificity needs to be increased, it could be prefixed with a .hub-hero selector.
| .hub-hero-image-grid-container-col div:nth-child(2) { | ||
| animation: none; | ||
| } | ||
|
|
||
| .hub-hero-carousel-item:nth-child(1) .hub-hero-carousel-item-header, | ||
| .hub-hero-carousel-item:nth-child(1) .hub-hero-carousel-item-footer { | ||
| animation: none; | ||
| } | ||
|
|
||
| .hub-hero-image-grid-container-col:nth-child(3) div:nth-child(1), | ||
| .hub-hero-image-grid-container-col:nth-child(3) div:nth-child(2) { | ||
| animation: none; | ||
| } |
There was a problem hiding this comment.
Similar for these, an umbrella selector would be easier to follow and maintain.
| .hub-hero, | ||
| .hub-hero-header, | ||
| .hub-hero-header > *, | ||
| .hub-hero-carousel, | ||
| .hub-hero-carousel-header, | ||
| .hub-hero-carousel-container, | ||
| .hub-hero-carousel-item, | ||
| .hub-hero-carousel-item-container { | ||
| animation: none; | ||
| transition: none; | ||
| position: relative; | ||
| --hub-hero-height: auto; | ||
| } | ||
|
|
||
| .hub-hero-carousel-header > div, | ||
| .hub-hero-carousel-header > div > * { | ||
| animation: none; | ||
| position: relative; | ||
| } | ||
|
|
||
| .hub-hero-image-grid-container-col:nth-child(1), | ||
| .hub-hero-image-grid-container-col:nth-child(2), | ||
| .hub-hero-image-grid-container-col:nth-child(3), | ||
| .hub-hero-image-grid-container-col:nth-child(4), | ||
| .hub-hero-image-grid-container-col:nth-child(5), | ||
| .hub-hero-carousel-item:nth-child(1), | ||
| .hub-hero-carousel-item:nth-child(2), | ||
| .hub-hero-carousel-item:nth-child(3), | ||
| .hub-hero-carousel-item:nth-child(4), | ||
| .hub-hero-carousel-item:nth-child(5) { | ||
| animation: none; | ||
| transition: none; | ||
| position: relative; | ||
| --hub-hero-height: auto; | ||
| } | ||
|
|
||
| .hub-hero-image-grid-container-col div:nth-child(2) { | ||
| animation: none; | ||
| } | ||
|
|
||
| .hub-hero-carousel-item:nth-child(1) .hub-hero-carousel-item-header, | ||
| .hub-hero-carousel-item:nth-child(1) .hub-hero-carousel-item-footer { | ||
| animation: none; | ||
| } | ||
|
|
||
| .hub-hero-image-grid-container-col:nth-child(3) div:nth-child(1), | ||
| .hub-hero-image-grid-container-col:nth-child(3) div:nth-child(2) { | ||
| animation: none; | ||
| } |
There was a problem hiding this comment.
The more general selector would reduce the code footprint here as well.
There was a problem hiding this comment.
avoiding !important as well
| @@ -1452,8 +1648,22 @@ | |||
| .hub-hero { | |||
| height: auto; | |||
| } | |||
| .hub-hero-carousel-item { | |||
| animation: none !important; | |||
| .hub-hero-carousel-item, | |||
| .hub-hero-carousel-item-container { | |||
| animation: none; | |||
| } | |||
|
|
|||
| .hub-hero-carousel-item:nth-child(1), | |||
| .hub-hero-carousel-item:nth-child(2), | |||
| .hub-hero-carousel-item:nth-child(3), | |||
| .hub-hero-carousel-item:nth-child(4), | |||
| .hub-hero-carousel-item:nth-child(5) { | |||
| animation: none; | |||
| } | |||
|
|
|||
| .hub-hero-carousel-item:nth-child(1) .hub-hero-carousel-item-header, | |||
| .hub-hero-carousel-item:nth-child(1) .hub-hero-carousel-item-footer { | |||
| animation: none; | |||
There was a problem hiding this comment.
Similar comment once more, it's likely these can be summarized to a more general selector, it'd save a few dozen lines of code and would make maintenance easier.
There was a problem hiding this comment.
avoiding !Important
|
Also on the proposed zoom, first card is larger then the rest @overmyheadandbody , should this and my previous comment for 'Tab' also be a part of the follow up ticket or should they be addressed now ? |
|
@zagi25 - good catch! Since this does solve some a11y issues and we're under a bit of time crunch, I'd vote we flag as a different issue and get back with a fix ASAP. |
770b148 to
0ceaf04
Compare
There was a problem hiding this comment.
Approving for a11y, but I see a few issues on firefox desktop:
- there's a jamming happening to the scroll when you reach the .hub-hero-carousel
- and a missing side padding issue for the logos
and on mobile firefox:
- logos moving on scroll is not working
- there is this big white space in the middle of the grid. Maybe one card should've been there?
P.S. tested on stage with ?milolibs=sr-hub-hero-a11y-fix
|
@denlight The comment in this ticket MWPW-198651 should be addressed before the PR is merged |
|
Reminder to set the |
|
@denlight Please check below PRs to 'sr-hub-hero-a11y-fix' for the issues reported by @biljana-cvijanovic |
biljana-cvijanovic
left a comment
There was a problem hiding this comment.
Validated. The PR is now ready to be merged.
|
This pull request is not passing all required checks. Please see this discussion for information on how to get all checks passing. Inconsistent checks can be manually retried. If a test absolutely can not pass for a good reason, please add a comment with an explanation to the PR. |


Resolves: MWPW-198654 | MWPW-198655 | MWPW-198651
Test URLs: