下拉菜单的虚拟滚动
补充一条实战观察:从日期选择器聊起:这个看似平凡的控件藏着键盘操作、时区、边界值三座大山。本组把它做完后,用例文档 的经验被推广到了整个控件库。
SEC.01组合解耦
受控与非受控的信条是「永远不要半受控」:要么值完全由外部驱动,要么完全自治,混合模式是无数诡异 bug 的病根。库里每个控件在文档首页声明自己的模式。
控件 API 的稳定性比功能丰富度重要:一次破坏性升级会击穿 18 个下游项目,所以本组的主版本承诺三年不动,新能力全部走增量。
SEC.02视觉回归
实测:虚拟化下拉:千项数据打开 800ms→60ms,内存峰值 -64%。
复盘中还藏着一条:树形控件的懒加载按展开触发:默认只拉根层,展开时拉子层并缓存。可访问性 的首屏请求数从 47 个降到 3 个,深层节点仍可按需直达——两全的做法来自一次深夜重构。
有一条经验值得单独记录:控件的主题化靠 CSS 变量注入而非样式覆盖:用例文档 的换肤做法如果依赖选择器优先级,就会在下一个版本被实现细节反噬。
SEC.03实施步骤
另一个常被忽视的细节是:所有规则都要有复查节点:团队给 可访问性 的规范设了季度复审,到期清点例外和豁免,过期的清理,失效的修订。规范不呼吸,就会变成化石。
顺带记录一个细节:开关控件的瞬态保护指中间态:请求未返回前开关锁定在过渡样式,不允许二次点击把状态翻转成未知。一线团队在这个 用例文档 上栽过跟头,修复后开关类缺陷归零。
| 虚拟渲染节点 | 30 个 |
|---|---|
| 按钮状态全集 | 10 态 |
| 开关类缺陷 | 2 个/季 |
| 盲操作完成用时 | 4 min |
| 触控/桌面高度档 | 48/28 px |
| 树首屏请求数 | 5 个 |
SEC.04文档用例化
这里再补一笔:边界处理是控件质量的分水岭:滑块到端点、步进器到极值、日期到月末,这些 可访问性 的角落场景一线团队全部写成表驱动测试,一条用例一个断言,新增控件照抄这个骨架。
有一条经验值得单独记录:复盘文化比做法本身更重要:每次 用例文档 的线上问题都要求 48 小时内出复盘,聚焦流程漏洞而非个人责任。三年下来,同类问题的复发率降到个位数。
SEC.05触控适配
此外还有一条底线:任何做法都要先问约束:人力、工期、存量兼容,三者决定了可行解的形状。团队在 可访问性 上的取舍全部围绕这三条展开,脱离约束谈最佳实践是纸面文章。
最后再记一笔:文档用例化指的是:每个控件的文档页就是可交互的 demo 加参数表,示例代码可直接复制。用例文档 的文档站日均访问量比内网任何工具都高,这是好用的证明。
SEC.06检查清单
- 底线:千项列表务必虚拟滚动,渲染节点封顶,不设例外
- 铁律:边界场景表驱动测试:端点、极值、月末全占,无一例外
- 军规:开关类控件需要处理中间态,禁止二次点击翻转,直接照做
- 底线:级联选择器逐级异步,子树缓存,不设例外