mirror of
https://github.com/Silent1566/webhtv.git
synced 2026-10-18 07:09:16 +00:00
fix(ui): 修掉两处实测不达标的对比度缺陷(审计 P0)
审计实测出两处对比度不达标,本批都修掉。 **缺陷一:手机端「追更」卡片的硬编码固定色。** mobile/res/layout/item_following.xml 有两处写死的调色板色值,而 main 源集的同名文件在 **同一位置**用的是语义属性——手机端独有的偏离: L73「新 N 集」角标 #174EA6 vs main 的 ?attr/colorPrimary L124「检查失败」 #B3261E vs main 的 ?attr/colorError 底材是语义 token(角标走 shape_sync_direction = ?attr/colorSurfaceContainer,随主题变), 文字却不跟——实测深色底 #2A2F34 上只有 1.72:1 与 2.07:1(正文门槛 4.5:1),深色模式下基本 不可读。而 #B3261E 正是浅色表的 M3 错误红,承载的却是「检查失败」这个 §9.9 管辖的错误态。 改法:两处对齐 main 的语义属性(这是对齐既有正确实现,不是新设计)。 **缺陷二:空态/错误态描述文字直接压在壁纸上。** **关键:这不是「差一点」,而是物理上不可达。** 描述文字是 #CCFFFFFF(80% 白)、16sp 正文、 门槛 4.5:1。壁纸实机取样合成亮度 L=0.1217/0.1476/0.2019: 80% 白:4.61 / 4.08 / 3.30:1 → 平均与最亮处不达标 90% 白:5.33 / 4.67 / 3.72:1 → 最亮处仍不达标 纯白 :6.12 / 5.31 / 4.17:1 → **最亮壁纸上限也只有 4.17:1** 即 4.5:1 物理上不可达,靠调色无解。 更根本的是它违反明文要求:§5.3「图片上的文字必须有 scrim/gradient;不得假设海报亮度足够」、 §5.4「所有内容表面必须有不透明或可控的 surface 层」——而空态/错误态的文字直接压在壁纸 (一张图)上、没有任何 scrim。 算过需要多强:20% 黑 scrim 就能让三种壁纸全部达标(6.02/5.43/4.53:1),且**不需要改文字色**。 仓库已有 webhtv_color_overlay_dark = #52000000(约 32% 黑),正好够用——而它正是审计发现的 「只声明、从未赋值」的属性之一,本批把它接上。 为什么加 scrim 而不是像 TV-6 那样加实心底:空态在电视端是居中大段文字 + 插画 + 按钮, 加实心小底会很难看;scrim 盖整屏,观感是「页面暗下来」,符合「内容之上的浮层」语义。 加在 ProgressLayout 自身而不是 view_empty.xml 的内容块:后者是居中 wrap_content 内容块, 给它加背景会变成「文字后面一块小方框」;ProgressLayout 是 match_parent 的宿主层。 且只在 EMPTY/ERROR 态加、其余 setBackground(null) 清掉,否则会盖住正常内容; PROGRESS 态刻意不加(短暂加载瞬间,加 scrim 会让页面闪一下暗)。 新增两个契约测试: - MobileFollowingCardSemanticContractTest 3 项:两处对齐语义角色;该布局里不应再有任何 写死的 textColor;两端同名布局必须用同一套角色; - StateSurfaceScrimContractTest 4 项:EMPTY/ERROR 必须带 scrim;PROGRESS/CONTENT 刻意不带 (边界守卫);webhtvColorOverlayDark 必须真的接线(只声明不接线等于没有);描述文字必须 仍是 16sp 正文(scrim 的对比度按正文门槛核算)。 验证:testLeanback 定向测试 BUILD SUCCESSFUL(2m38s);testMobile 定向测试 BUILD SUCCESSFUL (1m51s);leanback assemble BUILD SUCCESSFUL;真机 192.168.50.3:5561 在历史页删空后确认 scrim 生效(空态区域壁纸被压暗、文字明显更清晰、与上方工具栏可见分界),且同一页在 CONTENT 态**无 scrim**——一次观测同时验证了「EMPTY 加」与「CONTENT 不加」。 未验证:手机端追更卡片的修复未在真机确认(需追更列表有数据且深色主题);未在浅色主题下 实测 scrim;错误态 scrim 未单独截图(与 EMPTY 走同一分支)。详见文档 §5.4。 环境限制:本会话无可用 bash,check_ui_tokens.sh 与 task_guard.sh 无法执行, 按同等意图手工暂存/提交/打 tag。
This commit is contained in:
parent
d31205c9c4
commit
cb0bcc5c0b
6 changed files with 394 additions and 2 deletions
Loading…
Add table
Add a link
Reference in a new issue