白天在办公室调试一切正常,晚上测试同学把系统切成深色模式,界面文字和背景糊成一片;或者把系统字号调到最大,按钮文字直接被截断。这类问题不影响安装、不影响启动,却会拉低第一批内测用户的口碑,而且常被功能测试整片漏掉。下面把要查的项按执行顺序拆开讲。
为什么这两类问题最容易漏测
- 功能测试关心的是「能不能用」,深色模式和无障碍关心的是「看不看得清、点不点得到」,属于另一条维度。
- 开发者自己的手机大多停在浅色模式、默认字号,天然覆盖不到异常组合。
- 深色模式是系统级开关,用户切一次就全局生效,出问题不会只影响某一个页面。
- 无障碍问题在普通用户手里并不明显,却有明确的平台规范要求,上架环节容易被动。
深色模式适配的四个高频问题
- 写死的颜色:自定义控件或网页里硬编码了白色背景配深色文字,切成深色模式后变成白底白字或黑底黑字。
- 图片与图标:单色图标、带白色底衬的启动图和占位图,放在深色背景上会留下一块突兀的白斑。
- 系统栏与状态栏:状态栏文字颜色没有跟随主题,出现白底白字的状态栏,或内容被系统栏遮住一截。
- 样式被锁死:iOS 侧若在
Info.plist中固定了界面样式,用户怎么切系统开关界面都不会变;网页侧则需要用prefers-color-scheme跟随系统。
无障碍适配要检查哪几项
- 系统字号缩放:把手机字号调到最大,确认首页、列表、按钮文字不被截断,也不出现横向滚动条。
- 对比度:正文与背景的对比度是否足够,浅灰色提示文字在深色模式下是否仍然可以辨认。
- 触控热区:图标按钮的可点区域不要小于常规手指尺寸,密集排布的列表项之间留出误触余量。
- 屏幕朗读:给纯图标按钮补上可读标签,避免朗读出来只有一句「按钮」。
- 动效与闪烁:避免高频闪烁或持续自动播放的动效,必要时跟随系统的减弱动态效果设置。
分发前怎么把这项检查固定下来
- 在测试清单里单独加一栏「外观与无障碍」,写清楚由谁检查、覆盖哪些机型。
- 至少覆盖四种组合:浅色加默认字号、深色加默认字号、浅色加最大字号、深色加最大字号。
- 装到真实设备上验证,而不是只在模拟器里改一改系统设置。
- 生成分发二维码后,在分发说明里写清「请分别用深色模式和最大字号各体验一遍」。
- 记录问题时带上机型和系统版本号,方便复现,也方便下一轮回归对照。
同时有好几个内测版本在跑时,机型与版本的对应关系容易乱,可以借助分发平台的多版本管理与数据统计把每次内测的包和反馈对应起来,虾分发官网 https://xiafenfa.com 有这部分功能的说明。
常见问题
| 问题 | 处理思路 |
|---|---|
| 深色模式下只有网页页面错乱 | 检查页面是否声明了跟随系统主题的颜色方案,必要时在网页侧单独适配 |
| 系统字号放大后布局错位 | 用弹性布局替代固定宽高,文字容器允许换行或滚动 |
| 只在部分机型出现白块 | 重点排查启动图、占位图这类带底衬的图片资源 |
| 测试同学说看不清但截图正常 | 让对方补充当时的系统主题与字号设置,必要时录屏复现 |
建议:把深色模式与无障碍检查写进固定的发版前清单,不要等测试同学偶然发现。第一次全量检查会多花点时间,之后每次迭代把清单重跑一遍即可。内测的价值在于提前暴露问题,这类「不影响功能但影响体验」的细节,恰恰是最容易被带进正式版的一类。