RFR: 8341514: Add reducedMotion and reducedTransparency preferences

Michael Strauß mstrauss at openjdk.org
Sat Oct 5 03:50:19 UTC 2024


This PR adds the `Platform.Preferences.reducedMotion` and `Platform.Preferences.reducedTransparency` accessibility preferences:

interface Preferences {
    /**
     * Specifies whether applications should minimize the amount of non-essential animations,
     * reducing discomfort for users who experience motion sickness or vertigo.
     * <p>
     * If the platform does not report this preference, this property defaults to {@code false}.
     *
     * @return the {@code reducedMotion} property
     * @defaultValue {@code false}
     * @since 24
     */
    ReadOnlyBooleanProperty reducedMotionProperty();

    /**
     * Specifies whether applications should minimize the amount of transparent or translucent
     * layer effects, which can help to increase contrast and readability for some users.
     * <p>
     * If the platform does not report this preference, this property defaults to {@code false}.
     *
     * @return the {@code reducedTransparency} property
     * @defaultValue {@code false}
     * @since 24
     */
    ReadOnlyBooleanProperty reducedTransparencyProperty();

    ...
}


On Windows, these preferences correspond to "Transparency effects" and "Animation effects" in the system settings:
<img src="https://github.com/user-attachments/assets/b286850d-ebbc-444c-9c09-5380f97d0e91" width="400" >

On macOS, these preferences correspond to "Reduce motion" and "Reduce transparency" in the system settings:
<img src="https://github.com/user-attachments/assets/4c7b92f8-0cd9-4d1f-91df-40cb449f91ff" width="400" >

On Linux, the `reducedMotion` preference corresponds to `gtk-enable-animations`. On my Ubuntu 24.04 system, GTK3 does not pick up the "Settings / Accessibility / Reduce Animations" system setting, and therefore GTK always reports `gtk-enable-animations == true`. Changing the preference requires manually editing `etc/gtk-3.0/settings.ini`. The `reducedTransparency` preference has no corresponding GTK setting.

-------------

Commit messages:
 - change javadoc
 - added reducedMotion and reducedTransparency

Changes: https://git.openjdk.org/jfx/pull/1592/files
  Webrev: https://webrevs.openjdk.org/?repo=jfx&pr=1592&range=00
  Issue: https://bugs.openjdk.org/browse/JDK-8341514
  Stats: 403 lines in 19 files changed: 325 ins; 3 del; 75 mod
  Patch: https://git.openjdk.org/jfx/pull/1592.diff
  Fetch: git fetch https://git.openjdk.org/jfx.git pull/1592/head:pull/1592

PR: https://git.openjdk.org/jfx/pull/1592


More information about the openjfx-dev mailing list