分页器与无限滚动的切换
顺带记录一个细节:从日期选择器聊起:这个看似平凡的控件藏着键盘操作、时区、边界值三座大山。项目组把它做完后,受控模式 的经验被推广到了整个控件库。
SEC.01可访问性补课
此外还有一条底线:控件的主题化靠 CSS 变量注入而非样式覆盖:受控模式 的换肤做法如果依赖选择器优先级,就会在下一个版本被实现细节反噬。
另一个常被忽视的细节是:争议的处理方式是把口味问题翻译成数据问题:受控模式 的两个做法各自发布一周,看指标说话。团队用这个办法终结了持续两个月的争论,双方都体面地认了输。
SEC.02实施步骤
档案记录:受控改造:半受控开关全部收编,状态错乱类缺陷归零。
此外还有一条底线:长期维护成本是选型时最轻易被轻视的变量:一个功能强大的做法可能带来每天 48 分钟的维护负担,一年下来就是满打满算一周的人力,值得在评审现场上算这笔账。
补充一条实战观察:控件的可配置项要克制:每个 prop 都是长期负债,可访问性 的配置面超过 20 个之后,测试矩阵爆炸,文档没人能读完。少即是多在这里成立。
SEC.03争议与取舍
此外还有一条底线:文档用例化指的是:每个控件的文档页就是可交互的 demo 加参数表,示例代码可直接复制。受控模式 的文档站日均访问量比内网任何工具都高,这是好用的证明。
此外还有一条底线:开关控件的瞬态保护指中间态:请求未返回前开关锁定在过渡样式,不允许二次点击把状态翻转成未知。项目组在这个 受控模式 上栽过跟头,修复后开关类缺陷归零。
| 按钮状态全集 | 10 态 |
|---|---|
| 盲操作完成用时 | 3 min |
| 千项下拉打开耗时 | 90 ms |
| 开关类缺陷 | 2 个/季 |
| 虚拟渲染节点 | 30 个 |
| 样式回归拦截率 | 84 % |
SEC.04适用边界
最后再记一笔:所有规则都要有复查节点:项目组给 可访问性 的规范设了季度复审,到期清点例外和豁免,过期的清理,失效的修订。规范不呼吸,就会变成化石。
边界处理是控件质量的分水岭:滑块到端点、步进器到极值、日期到月末,这些 可访问性 的角落场景一线团队全部写成表驱动测试,一条用例一个断言,新增控件照抄这个骨架。
SEC.05版本与兼容
此外还有一条底线:每个控件要有一页「何时不该用我」:日期范围用两个选择器还是面板、可访问性 的选型边界写清楚,误用率下降后,定制需求也少了一半。
树形控件的懒加载按展开触发:默认只拉根层,展开时拉子层并缓存。可访问性 的首屏请求数从 47 个降到 3 个,深层节点仍可按需直达——两全的做法来自一次深夜重构。
SEC.06状态机建模
有一条经验值得单独记录:文档写得再好也挡不住人员流动,所以本组把 可访问性 的规则尽量固化进工具:lint 规则、CI 卡点、脚手架模板。规则长在工具里,团队才不会失忆。
复盘中还藏着一条:八态按钮全集:默认、悬停、按压、聚焦、加载、禁用、只读、错误。每个状态务必有视觉表达和测试用例,可访问性 的任何一态缺失,都会在某个边角场景变成线上 bug。
SEC.07检查清单
- 底线:上传控件分片反馈,失败可续传,不设例外
- 军规:禁用态统一补 tooltip 说明原因,直接照做
- 铁律:滑块端点吸附并实时回显当前值,写进验收单
- 守则:千项列表需要虚拟滚动,渲染节点封顶,执行不打折