10up / Engineering-Best-Practices

10up Engineering Best Practices
https://10up.github.io/Engineering-Best-Practices/
MIT License
760 stars 205 forks source link

Expanding Accessibility around CSS Animations #385

Open Antonio-Laguna opened 2 years ago

Antonio-Laguna commented 2 years ago

Description of the Change

This change comes motivated due to our scaffold using some code like this:

/*
 * Resources on prefers-reduced-motion:
 * https://webkit.org/blog-files/prefers-reduced-motion/prm.htm
 * https://developer.mozilla.org/en-US/docs/Web/CSS/@media/prefers-reduced-motion
 */
@media (prefers-reduced-motion: reduce) {

    *,
    *::before,
    *::after {
        animation-duration: 0.001s !important;
        transition-duration: 0.001s !important;
    }
}

Which takes a nuked motion approach rather than reducing motion. Before tackling that I wanted to ensure that the Best Practices were reflecting what I think could be a better approach.

The accessibility area was mentioning limited support which is no longer true. However, I still think we should take an accessibility first approach (same as we do mobile-first) so in the event that an unsupported browser encounters this, the written code will favor accessibility rather than movement. I've expanded that section so it gets also an example of more complex animation and how could it be made with this approach in mind.

I've also gone and made some things more consistent in terms of a missing Prefer section and ensuring that brackets and semicolons were consistently applied.

Checklist:

Antonio-Laguna commented 2 years ago

@amesplant I'd love to get your input here and see whether the changes make sense and/or if you'd want to expand on this

amesplant-dmv commented 2 years ago

Thanks @Antonio-Laguna for the focus on Accessibility first .. looks good to me!