Skip to content

Card content area computes to opacity 0 under prefers-reduced-motion, hiding content #629

Description

@georgeolaru

The defect

The card content area's reveal computes to opacity: 0 under prefers-reduced-motion: reduce, and no setting
stops it. The content stays laid out and visibility: visible while painting nothing, so a visitor who has asked
for reduced motion cannot see it at all.

This hides author content on every site using the affected blocks. It is not a preference issue; the reduced-motion
end state is the bug.

Measured

On the probe element:

  • no-preference: style="opacity: 0.9998; transform: translate3d(0px, 0.0101px, 0px)" — note the resting opacity
    is written inline by script, not by a class or a media query;
  • reduce: opacity: 0 at both 1440×900 and 390×844, max opacity over a full page sweep 0;
  • every ancestor computes to 1, so nothing upstream is responsible.

Root cause

packages/scrolling-effect/src/utils.js:255-257 sets progress = 0.5 unconditionally under reduced motion —
after every attribute-derived clamp, and the four motion attributes only feed those clamps (:167,
:230-231). So the end state a reduced-motion visitor gets is the middle of the effect rather than its finished
state.

What does not fix it

  • scrollingEffect: "static", the least animated value available — still 0.
  • sm_intro_animations_enable set to false — already false in the tested configuration; changes nothing.
  • The library's only four front-end prefers-reduced-motion rules cover an unrelated recipe and the Customizer UI.

The ask

Under prefers-reduced-motion: reduce, the effect should resolve to its finished state, not its midpoint: the
content fully visible, no transform. A per-block or global setting would help, but the default itself is the
problem — content must never end at opacity: 0 for a visitor who asked for less motion.

Acceptance

  • With prefers-reduced-motion: reduce, card content areas compute to opacity: 1 with no residual transform, at
    both desktop and small-phone widths.
  • No author setting is required to get that; it is the default end state.
  • Motion attributes still take effect for visitors with no preference.

Activity

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions