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

Reply via email to