R3.16.3functional reachability设计

降级需保持功能可达,只减少表现

别名: graceful degradation · 功能可达 · 只减表现 · progressive enhancement

概念解释

降级减的是表现:分辨率、动效、密度、特效、装饰媒体。功能入口还在——同一操作仍能找到、仍能完成,只是不那么华丽。把低端直接做成「功能缺失版」(不能搜索、不能结账、不能评论)是另一条产品线,不是降级。可达意味着键盘、读屏、小屏上那条任务路径仍然通,而不仅是动画关了。

它处理的是降级允许动哪些层,不是按什么信号触发,也不是装饰内部谁先砍。

机制

功能和表现叠在同一界面上,但预算主要花在表现层:像素填充、纹理、补间、额外请求。功能层是更瘦的一条:一个可聚焦的控件、一次提交、一条结果。把功能层一起拆掉,省下的预算有限(少一个按钮几乎不省绘制),却把完成度打到零。表现层可连续减:图从 2x 到 1x 到占位,动效从补间到瞬间切换到无,列表从大图卡到密文字行——每一档都仍指向同一个动作。用户在低端上要的是「还能做完」,不是「和旗舰同一套皮肤」。

「不可达」有几种伪装。入口还在但点了没有下文(依赖被砍掉的脚本);入口只挂在被关掉的手势或拖拽上,键盘走不到;入口被密度压缩后叠在别的热区下面。这些看起来像减了表现,实际减的是功能。真正只减表现的标志是:同一条任务用同一类控件还能走完,反馈仍然有(可以更素),结果仍然写回服务器。

边界

法规、安全、容量会让某些功能在某些环境不可用(地区版权、风控拒绝、存储配额)——那是业务拒绝,不要标成性能降级。实验性能力(WebGPU 特效、设备传感器)本来就有「没有就无」的分支,功能可达指的是产品承诺过的主任务,不是每一个实验室特性。离线第一档可以是只读缓存,提交排队等联网,这仍算可达(动作被接受了),前提是队列和状态对用户可见。把低端用户送去「请换设备」页,是拒绝服务,不是降级。纯展示的品牌页可以减到几乎只剩文字,仍算可达,因为任务就是读到那句话。

怎么落地

  • 为每一档降级列一张「仍能完成」的任务清单(搜索、阅读、提交、付款、设置),表现可以逐档变素,清单不得变短。
  • 被砍的只许是图质量、动效、模糊、自动播放、额外模块的装饰;替代路径必须仍是可聚焦、可提交的控件,而不是只活在被关掉的手势里。
  • 依赖可选脚本的增强失败时,退回 HTML 表单或普通链接,不要留下死按钮。
  • 验证:在最低档(弱 CPU、慢网、减少动态全开)走完主任务清单。任何一步找不到入口、点了没下文、或只靠被关掉的动效才能继续,就是砍到了功能。再对比旗舰档,确认少的是皮肤不是步骤。

延伸

  • 同组R3.16.1 降级依据实测能力而非设备型号 · R3.16.2 降级顺序按对任务完成度的影响排列
  • 相邻R3.08 动画的性能开销 · R3.04 性能预算 · K1.02 屏幕尺寸与密度差异
  • 站内检索functional reachability · graceful degradation · progressive enhancement · capability detection

同组卡片

快捷操作

分享

分享当前页面

ios_share

https://hci.top/zh/handbook/R3.16.3