JianFeeeee
110de79401
跨端: 三级文字**浅色也一样不够**(12 处 2.85:1)+ 判据不再只验一半
## 一、这是"我自己推的理由"被实测推翻
上一条我把 `textSubtleFor()` 写成**只改深色**,理由是:
> 「浅色下这些令牌本来就是为浅底配的,量它们没有信息量」
**那个理由是错的。** 切到浅色主题复扫,立刻抓到 12 处:
```
"用户名 / 显示名 / 角色 / 状态 / 创建时间 / 最后登录" 2.85:1
"已同步" / "37%" / "3px"(外观区) 2.85:1
"这一天没有日程" 2.85:1
```
`ink rgb(153,153,153)` 压白底 —— 全是 `textSubtle`。
对照 WebUI 浅色(`index.css` `:root`):
- `gray-400` = `107 114 128` = **4.83:1**
- `gray-500` = `90 98 112` = **6.15:1**
⇒ 系统三级色**两个主题下都不够**。它的语义只是"比二级更淡",
**不保证任何可读性下限**;WebUI 那边两套主题都做过适配,这边一档都没有。
修:`textSubtleFor()` 两个主题都返回 `textMuted`
(系统二级色,语义就是"次要文字",且**跟随主题** ——
不必再维护两个手写常量、不必登记)。
## 二、判据从"只验深色"改成"两个主题都验"
原来那条设备判据**在浅色下直接 skip**,skip 的理由正是上面那句错话。
现在两个主题都扫,断言消息里带上主题名(`深色主题下…` / `浅色主题下…`)。
★ 纪律:**色令牌的可读性是两个主题各自的事,不能只验一半。**
"另一半没问题"若没量过,就只是推测。
**变异验证**:把 `textSubtleFor()` 改回"两主题都用 textSubtle"
(此时设备正在浅色主题)⇒ **判红**;还原 ⇒ 绿。
## 三、设备复扫(浅色主题)
```
[通信] 扫 41 段,低对比 0
[日历] 扫 84 段,低对比 0
[联系人] 扫 50 段,低对比 0
[我的] 扫 40 段,低对比 0
```
**215 段文字全部 ≥3:1。**
两个主题合起来:深色 219 段 + 浅色 215 段,全绿。
## 四、顺手改掉的
测试名从「深色下短文本必须都读得动」改成「**当前主题**下…」
—— 名字得跟着它实际判的东西走(否则下一个人会以为它只管深色)。
`run-all.mjs` → `checks=515 pass=515 fail=0 skip=0 red=0 broken=0 unreported=0`。
**当前设备主题**:浅色(本轮为验另一半切过去的;服务端 `theme=light`)。
2026-09-19 20:58:59 +08:00
..
2026-09-13 06:16:59 +08:00
2026-09-14 11:07:03 +08:00
2026-09-15 13:55:01 +08:00
2026-09-18 01:08:04 +08:00
2026-09-19 20:58:59 +08:00
2026-09-08 19:16:35 +08:00
2026-09-14 14:57:18 +08:00
2026-09-14 11:07:03 +08:00
2026-09-08 19:16:35 +08:00
2026-09-14 16:00:34 +08:00
2026-09-08 19:16:35 +08:00
2026-09-12 09:54:31 +08:00
2026-09-08 19:16:35 +08:00
2026-09-14 09:11:36 +08:00
2026-09-12 08:02:30 +08:00