RFR: 8341514: Add reducedMotion and reducedTransparency preferences [v4]

Michael Strauß mstrauss at openjdk.org
Wed Oct 9 05:38:36 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.

Michael Strauß has updated the pull request incrementally with one additional commit since the last revision:

  fix deferred property notification

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

Changes:
  - all: https://git.openjdk.org/jfx/pull/1592/files
  - new: https://git.openjdk.org/jfx/pull/1592/files/8b178268..2b545aaf

Webrevs:
 - full: https://webrevs.openjdk.org/?repo=jfx&pr=1592&range=03
 - incr: https://webrevs.openjdk.org/?repo=jfx&pr=1592&range=02-03

  Stats: 70 lines in 2 files changed: 9 ins; 43 del; 18 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