Closed JayPanoz closed 5 years ago
With the disclaimer that I'm not an expert in this specific issue, I think what you suggest is a great start!
Thank you for filing this Jiminy.
I added a "reduce motion" boolean setting ; false
by default ; in r2-navigator-js
(when true
, the animated transitions normally used in paginated and scroll views are bypassed).
I added a UI switch in r2-testapp-js
(see attached screenshot).
r2-testapp-js
screenshot:
Thanks @danielweck that was fast!
A possibly good news for you in the longer term: chromium has just published an intent to ship and implement the dedicated media feature.
And here’s the original issue.
Both Firefox and Safari already support it so I’m expecting this to ship quickly – but there’s obviously the Electron “delay” to take into account.
The prefers-reduced-motion
CSS media feature is used to detect if the user has requested that the system minimize the amount of animation or motion it uses. See MDN. So you could use that and check if the value is reduce
to automatically switch this on, enforcing the global preference set @ the OS level.
I actually have the "reduce motion" activated on my computer (MacOS) :) Thanks for the heads-up about OS-level detection.
BTW that begs the question of authoring as well, I guess.
We (probably/surely) don’t want to tamper with EPUB contents ourselves but wouldn’t that be a possible candidate for best practice, at least in http://kb.daisy.org/publishing/?
Thinking about interactive books with animations, etc.
This issue originated in Architecture.
I was reminded of this by discovering the article “Your interactive makes me sick”, which will make the issue way more articulated that I could ever articulate it myself.
Summary
There’s an a11y “issue” which is quite unknown, but may impact a lot of people, either temporarily or permanently: vestibular disorders.
In other words, some interactions can make the user dizzy, uneasy, and in some cases ruin her/his entire day, because it feels like you can’t keep balance when walking or even staying up, or feel vertigo.
The biggest issue
So, disclaimer, I can confirm that since I suffered from such disorders a few years ago, it suddenly appeared and then 6 months later, it was over. No doctor could explain it nor why. All I know is that one morning I woke up not super well, an animation on a web site ruined my day, and it keep up going like that for months. Some apps had simply become unusable while the web had become a landmine… and then it vanished and that was over. But some people have to live with it for their whole life.
This is not uncommon BTW, this even tends to be the norm when you’re starting to do some research, as there are lots of people who suffer from vestibular disorders but don’t know why and nobody can tell them, despite meeting a lot of doctors and specialists. Besides, effects range so widely that it makes it even more complicated to diagnose.
Impacts
So this obviously impacts anything related to motion (animations, transitions, etc.). For instance, starting iOS7, some users had to set the “Reduce Motion” pref in a11y settings.
So that’s up to apps, but I can think of page-transition animations which should probably be disableable for instance, so it may impact r2-glue-js as well.
There’s also the accessibility hazards at the OPF level. I’m not particularly optimistic a lot of content providers use that, but I know I’ve been using it since I had to cope with vestibular disorders myself and, yeah, as an author I’d like that to be taken into account if the meta is present in the EPUB file (e.g. a popup telling the user there is motion simulation in the publication and bla bla bla).
Options
At the very minimum, allow the user to disable animations which may create effects (e.g. page-transition animation). But everything else will vary from implementation to implementation.
On iOS/Mac, there’s a system setting which has been implemented and Safari/Webview supports the
prefers-reduced-motion
media query to design accordingly.There’s little we can do about content, but we can at least promote what Mozilla got wonderfully right from the start i.e. an overlay asking users to set their preference.
I’m taking the liberty to ping @rdeltour to see if he can add to this issue and/or raise another one and/or ping others directly – or not – impacted. The more we can do to grab implementers’ attention, the better.