F7.08.1Honour prefers-reduced-motion设计
系统的减弱动效设置必须被遵守
别名: 减弱动态效果 · prefers-reduced-motion · 系统动效开关
概念解释
操作系统上的「减弱动态效果」是用户已经作出的能力声明,不是主题开关,也不是「不太喜欢装饰」的口味投票。应用再播大位移、视差或弹性缩放,等于覆盖这项声明。遵守的意思是:读到系统偏好之后,把会移动大块像素的运动停掉或换成非位移替代,而不是在应用里再做一次开关让用户找。
机制
这项设置把「我无法安全地消化大视流」从每个应用里的隐藏选项,提升成系统级契约。来源包括前庭易感、偏头痛、注意力易被运动捕获、以及只是要省电或减少干扰。应用无法从一次会话判断用户属于哪一类,所以不能自行决定「这段还好」。契约的执行点在媒体查询或系统 API:未查询就等于默认用户能承受产品里最猛的那条视流。
应用内再做一个「动效开/关」且默认开,会让已经在系统里声明过的人再付一次寻找成本。两条开关不一致时,用户无法预测下一次更新还会不会尊重系统。
这里管的是契约是否被执行。大位移为什么会让人难受,是前庭冲突的问题;不执行契约的人即使自己不难受,也会把声明过的人暴露进去。
边界
- 系统没有这项设置的旧设备,谈不上遵守,需要应用内提供等价入口,且默认仍应对易感路径安全。
- 用户在系统里关掉减弱之后,应用不应继续强制最弱方案——契约是双向的。
- 游戏或电影作为内容播放的运动,有时是内容本身;仍应在可退出的交互外壳上遵守系统偏好。
怎么落地
- 在动效启动前读取系统减弱偏好;为真则走无大位移的替代分支,不要只在设置页展示一句「建议您关闭」。
- 不要要求用户在应用内重复声明;应用内开关若存在,只能进一步收紧,不能比系统更猛。
- 验证:打开系统减弱后走完主路径。仍出现整页平移、视差或弹性缩放,就是契约被覆盖。