# 收敛模式与不可消除差异 > 记录视觉还原过程中的收敛规律和不可消除差异白名单。 > 基于 A-C 批次(53 单元)的实际数据总结。 --- ## 不可消除差异白名单 以下差异在所有页面中均存在,不计入差异率,审计报告中标注「不可消除,已忽略」: | 差异类型 | 根因 | 估计贡献 | |---|---|---| | 字体渲染(字形、次像素、间距) | Chromium(Noto Sans SC)vs 微信 WebView(系统字体) | ~2% | | 行内元素高度系统性偏小 ~7% | WebView 字体度量(ascent/descent/leading)差异 | ~1% | | rpx 取偶数四舍五入 | 每个 px 值换算后取偶数,累积微小偏差 | ~0.5% | | 抗锯齿差异 | 渲染引擎对边缘像素处理不同 | ~0.5% | | 环比箭头(SVG vs 文字 ↑↓) | 已确认可接受 | — | | CSS 渐变文字 → 纯色文字 | MP 不支持 `-webkit-text-fill-color` + clip | — | | Banner 纹理差异 | 7 层叠加渐变 + SVG 纹理无法完全复现 | ~3% | 背景噪音基线:~3.87%(Benchmark v3 实测)。<5% 通过目标在基线之上仅有 ~1% 修正空间。 --- ## 典型收敛曲线 ### 单屏页面(board-coach/customer 维度) - 初始差异率:4-11% - 白名单扣除后:<3% - 通常 0 轮修正直接通过 ### 多屏长页面(board-finance) - step-0:6% → 0 轮通过 - step-600~1200:9-11% → 含滚动偏移 + 字体渲染 - step-2400~3600:15-18% → 累积高度偏移,跳过 - step-4200+:3% → 页面底部,双端 clamp 到 maxScroll ### 任务详情系列(task-detail) - step-0:20-24% → mock 数据差异 ~15% + Banner 纹理 ~3% + 字体 ~3% - 全部跳过(白名单覆盖) --- ## 跳过原因分类 | 原因 | 出现频率 | 可修复性 | |------|---------|---------| | 累积高度偏移(rpx 取整导致 MP 页面更短) | 高 | 不可修复(系统性) | | mock 数据差异 | 中 | 可修复(对齐数据) | | Banner 纹理差异 | 中 | 部分可修复(简化纹理) | | 话术设计变体(H5 vs MP 实现差异) | 低 | 需重构 | --- ## 高度偏移规律 MP 页面总高度因 rpx 取整累积比 H5 略短。偏移量随页面长度增大: | 页面 | H5 scrollHeight | MP scrollHeight | 偏移 | |------|----------------|----------------|------| | board-finance/default | 5600px | ~5030px | ~570px(10%) | | board-finance/compare | 5579px | ~5030px | ~549px | 偏移导致中间屏(step-2400~3600)的内容窗口错位严重,是跳过的主要原因。 页面首尾屏不受影响(首屏 scrollTop=0,尾屏双端 clamp 到 maxScroll)。