If users set prefers-reduced-motion through system settings, then Firefox should not fire "Smooth Scrolling."
Categories
(Core :: Layout: Scrolling and Overflow, enhancement, P3)
Tracking
()
| Tracking | Status | |
|---|---|---|
| firefox114 | --- | fixed |
People
(Reporter: erwinm, Assigned: dlrobertson)
References
(Regressed 2 open bugs)
Details
(Keywords: access)
Attachments
(2 files)
User Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.14; rv:95.0) Gecko/20100101 Firefox/95.0
Steps to reproduce:
Use your system settings to indicate prefers-reduced-motion. For example, in MacOS, open System Preferences > Accessibility > Display and check Reduce motion.
Open Firefox with its default settings, e.g. using Mozregression.
Open about:preferences.
Tab out of the search box.
Page Down.
Actual results:
Firefox turns Page Down into animated "Smooth Scrolling."
This can trigger migraines.
See https://www.menieres.org.uk/information-and-support/day-to-day/vision-and-vertigo
https://dizziness-and-balance.com/disorders/visual/visual_vertigo.html
etc.
Most sources note trouble with scrolling in general, not mentioning smooth scrolling in particular, but replacing Page Down with scrolling adds more scrolling, with less user control, in any case.
Expected results:
If users have set prefers-reduced-motion, Firefox should turn off "Smooth Scrolling."
Enabling this in system settings would make it easier for users who get migraines from the default settings to configure Firefox, and to bibisect bugs in Firefox.
Comment 2•4 years ago
|
||
This could be an enhancement. I'll set a component to involve the dev team. If it's not the correct component please feel free to change it.
Thanks!
Updated•4 years ago
|
Updated•3 years ago
|
Comment 4•3 years ago
•
|
||
The following field has been copied from a duplicate bug:
| Field | Value | Source |
|---|---|---|
| Whiteboard | [access-s3] | bug 1798659 |
For more information, please visit auto_nag documentation.
Comment 5•3 years ago
|
||
Today I realized there's a spec text;
User agents should follow platform conventions, if any.
Updated•3 years ago
|
| Assignee | ||
Updated•3 years ago
|
| Assignee | ||
Comment 6•3 years ago
|
||
I can reproduce this. When general.smoothScroll=false, I see the correct behavior, so I think we just need to propagate system settings to general.smoothScroll=false. I'm not sure if this is done elsewhere.
| Assignee | ||
Comment 7•3 years ago
|
||
If the user has set prefers reduced motion, we should disable smooth scrolls. In
practice, the system setting prefers reduced motion should be equivalent to the
user setting general.smoothScroll=false.
Comment 8•3 years ago
|
||
This looks surprisingly similar to bug 1584859, thanks for doing this!
| Assignee | ||
Comment 9•3 years ago
|
||
(In reply to Emilio Cobos Álvarez (:emilio) from comment #8)
This looks surprisingly similar to bug 1584859, thanks for doing this!
Good catch! I hadn't seen that one... After looking at D48010, I think the current patch I have here could use some work.
Updated•3 years ago
|
| Assignee | ||
Comment 10•3 years ago
|
||
Disable the prefers-reduced-motion preference for mochitests and
web-platform-tests.
Depends on D172446
Comment 11•3 years ago
|
||
Comment 12•3 years ago
•
|
||
Backed out for causing bc failures in browser_proton_moreTools_panel.js
- Backout link
- Push with failures
- Failure Log
- Failure line: TEST-UNEXPECTED-FAIL | browser/components/customizableui/test/browser_proton_moreTools_panel.js | Test timed out -
and also: https://treeherder.mozilla.org/logviewer?job_id=412809120&repo=autoland
Comment 13•3 years ago
•
|
||
See Bug 1828575.
This should not unconditionally disable smooth scrolling.
For new users (new profiles), the default is to disable smooth scrolling.
However, users should be able to enable smooth scrolling from the settings (like Chrome).
For existing users (used profiles) 、in consideration of the user experience, this should not change their existing smooth scrolling behavior.
| Assignee | ||
Comment 14•3 years ago
|
||
(In reply to Alice0775 White from comment #13)
See Bug 1828575.
This should not unconditionally disable smooth scrolling.
For new users (new profiles), the default is to disable smooth scrolling.
However, users should be able to enable smooth scrolling from the settings (like Chrome).For existing users (used profiles) 、in consideration of the user experience, this should not change their existing smooth scrolling behavior.
Thanks, this makes sense and I had a prior patchset that did this. I'll update the patches to do this.
| Assignee | ||
Comment 15•3 years ago
|
||
After thinking about it a bit more I don't think I fully understand the scenario in which the user would get into this state. We don't ever actually change the value of general.smoothScroll, so I don't know how we'd detect "the user has prefers-reduced-motion set, but also wants smooth scrolls".
Comment 16•3 years ago
|
||
I think it would be sufficient for this bug to do the following...
- Is the browser running with the new profile?
if yes go to step 2 else end - Is the OS set to
prefers-reduced-motion?
if yes go to step 3 else end - Set
general.smoothScrolltofalse - end
| Reporter | ||
Comment 17•3 years ago
|
||
In some versions of Firefox, new profiles started with smooth scroll enabled, among other animations.
This can make motion-senstive users sick, and can make it harder for us to configure Firefox for safe use. The idea was to use the system settings as a quick switch. Overriding about:config settings may not be the best option, but what is?
-
Starting new installations with all of these off?
-
Having new installations check system settings?
-
Having 2 versions of Firefox to download with different starting about:config settings?
Updated•3 years ago
|
Comment 18•3 years ago
|
||
Comment 19•3 years ago
|
||
Backed out for GTest failure on MultipleSmoothScrollsSmooth
Backout link: https://hg.mozilla.org/integration/autoland/rev/21101de1ce84533df900fd262d70ffb66bfdf145
Log link: https://treeherder.mozilla.org/logviewer?job_id=413604421&repo=autoland&lineNumber=31467
Comment 20•3 years ago
|
||
Comment 21•3 years ago
|
||
| bugherder | ||
https://hg.mozilla.org/mozilla-central/rev/a2f066123f3c
https://hg.mozilla.org/mozilla-central/rev/6fb66b5e6153
Comment 22•3 years ago
|
||
\o/
| Assignee | ||
Updated•3 years ago
|
Updated•3 years ago
|
Comment 24•2 years ago
|
||
This bug came up during a recent APZ meeting because it has caused a number of regressions that have been tricky to diagnose (bug 1851024, likely bug 1862645) or fix (bug 1865782).
While considering potential alternatives, we discussed the alternative suggested in comment 16, and I wanted to record the reason we did not initially choose this approach:
(In reply to Alice0775 White from comment #16)
I think it would be sufficient for this bug to do the following...
- Is the browser running with the new profile?
if yes go to step 2 else end- Is the OS set to
prefers-reduced-motion?
if yes go to step 3 else end- Set
general.smoothScrolltofalse- end
This approach would not address the following use case:
- A user who prefers reduced motion sits down at a computer (maybe not their own) that doesn't currently have the OS setting enabled
- The user enables the OS prefers-reduced-motion setting
- The new setting takes effect in all applications including existing Firefox profiles
I'm not sure how important this use case is; if we feel it's not that important, we could consider switching to this approach, which would both significantly reduce the implementation complexity and avoid the mentioned regressions.
Note, Dan has found that other browsers do respect an OS preference change in existing profiles, so switching to this approach would mean behaving differently from other browsers.
Description
•