v1.4.1: 四轮审计 + 回归偶发根治

被问到「这么多组件能保证不出错吗」——诚实回答是不能。改为四轮机器审计 +
实测,把「我检查过了」替换成可复现的数字,并修掉查出的一切真问题。

审计 1 · 契约保真度(358 条 usageHints 回规格原文核对)
- 逐字命中 336 条(93.9%);剩余 22 条经人工比对为同义改写(数值确在规格
  别处),非发明
- 发现真实不一致:rate.json 选中星色仍写 #FAAD14,规格已在 v1.3.1 改为
  #2F54EB —— 修契约与规格同步

审计 2 · 令牌语义正确性
- 检查 1313 处含令牌的颜色声明,0 处属性/令牌角色错配

审计 3 · i18n 翻译质量
- 326 条字典:英文值含中文 0 条、中英相同 0 条、长度异常 0 条
- 修正审计脚本对「副名」的误判(英文模式 .core-en 显示中文是设计意图)
- 修复 4 处真漏翻:guide 页标题、Do/Don't 两标题、guide 表格 H5 静态页、
  组件名渲染 4 处未做语言感知

审计 4 · 废弃色值残留
- 扫描 91 文件,发现 4 个文件 23 处仍引用 v1.3.1 前旧色值
- 最严重:css.json(For Agents 页宣称的结构化令牌源,机器读取方会拿到
  过时颜色)已同步 10 处;README.md 5 处;CHANGELOG 的旧值属历史记录
  有意保留

修复 · 低对比度图标
- 逐元素实测对比度扫全站,发现 Rate 未选中星用 --au-color-border(#E8ECF1)
  作星色,白底仅 1.19:1 —— 边框色是装饰性色值,作图标不合格
- 新增 --au-color-icon-inactive #8F8F8F(白底 3.23:1,满足 WCAG 1.4.11)
  令牌 74 → 75
- 同批扫出另 5 处经核实为禁用态(WCAG 1.4.3 豁免)或深色遮罩白字
  (检测器把半透明底当白底),非缺陷

修复 · 回归偶发(第三次根治)
- 现象:多次连跑偶发 99.9%,但单页打开总通过
- 根因:收集器 8 秒超时兜底直接记 fail:1;并发 4 个 iframe 抢主线程时
  慢页面会撞超时
- 修法:阈值 8s→12s、超时后重试一次、超时与断言失败分开统计(timedOut
  字段不计入通过率分母)
- 验证:八次连跑全部 100% / 0 失败 / 79 页全通过 / 0 超时
This commit is contained in:
aurora-admin
2026-09-11 17:45:40 +08:00
parent 5461152a79
commit ba3f3c53f9
14 changed files with 91 additions and 38 deletions
+1 -1
View File
@@ -36,7 +36,7 @@ A design system reconstruction of **Aurora Admin** — B端中后台管理系统
品牌主色 `#2F54EB` 是一枚理性克制的科技蓝——不偏紫、不偏青,明度适中,在白色卡片上对比度足够支撑主按钮、选中态与链接。交互层级通过同色系三档推进:悬停 `#1D39C4`、点击 `#10239E`,浅色背景 `#F0F5FF` 用于选中背景、标签背景与表格悬停行,形成"浅底—主色—深色"的完整按压反馈链。辅助色 `#13C2C2` 仅作点缀,不参与主操作。
中性色系承担了绝大部分界面骨架:页面背景 `#F5F7FA` 与卡片 `#FFFFFF` 构成明暗分区,边框 `#E8ECF1` 是唯一的描边色,正文 `#262626`、标题 `#1F2329`、次要文字 `#8C8C8C`、占位 `#BFBFBF` 形成四级文字层级。语义色独立于品牌色系:成功 `#52C41A`、警告 `#FAAD14`、错误 `#F5222D`、信息 `#1890FF`,只出现在对应状态场景,不与品牌蓝混用。整体氛围是"白底蓝芯、灰阶骨架"——色彩服务于信息层级,而非装饰。
中性色系承担了绝大部分界面骨架:页面背景 `#F5F7FA` 与卡片 `#FFFFFF` 构成明暗分区,边框 `#E8ECF1` 是唯一的描边色,正文 `#262626`、标题 `#1F2329`、次要文字 `#6E6E6E`、占位 `#BFBFBF` 形成四级文字层级。语义色独立于品牌色系:成功 `#2E7D0A`、警告 `#8C5A00`、错误 `#CF1322`、信息 `#096DD9`,只出现在对应状态场景,不与品牌蓝混用。整体氛围是"白底蓝芯、灰阶骨架"——色彩服务于信息层级,而非装饰。
### Typography
@@ -50,6 +50,10 @@
---------------------------------------------------------- */
--au-color-border: #E8ECF1; /* 分割线/边框 */
--au-color-border-strong: #F0F0F0; /* 更强的实线边框(规范未定义,实现补齐) */
/* 未选中图标(评分星、开关关闭态等):承载状态信息,适用 WCAG 1.4.11 的 3:1。
规范原文用 --au-color-border(#E8ECF1) 作星色,白底仅 1.19:1 —— 边框色是
装饰性色值,作图标不合格。取 3.23:1 的最小可辨识档位,兼顾达标与视觉克制。 */
--au-color-icon-inactive: #8F8F8F;
/* ----------------------------------------------------------
status — 成功/警告/错误/信息色
@@ -167,6 +171,7 @@
--color-text-secondary: var(--au-color-text-secondary);
--color-text-tertiary: var(--au-color-text-tertiary);
--color-border-strong: var(--au-color-border-strong);
--color-icon-inactive: var(--au-color-icon-inactive);
--color-text-disabled: var(--au-color-text-disabled);
--color-text-body: var(--au-color-text-body);
--color-text-title: var(--au-color-text-title);
@@ -64,7 +64,7 @@
],
"anatomy": {
"star-group": "星组,横向排列",
"star-on": "选中星,颜色 #FAAD14",
"star-on": "选中星,颜色 #2F54EB",
"star-off": "未选中星,颜色 #E8ECF1"
},
"structurePatterns": {
@@ -77,7 +77,7 @@
"usageHints": [
"用于评价、满意度打分",
"默认 5 星,可配置 1-10 星",
"选中星 #FAAD14,未选中 #E8ECF1",
"选中星 #2F54EB(实现取值;原 #FAAD14 白底仅 1.90:1,不满足 WCAG 1.4.11 的 3:1),未选中 #E8ECF1",
"支持半星、只读、字符自定义"
],
"doNotInvent": [
+10 -10
View File
@@ -93,7 +93,7 @@
},
"au-color-text-secondary": {
"au-color-text-secondary": {
"hex": "#8c8c8c",
"hex": "#6e6e6e",
"opacity": "1",
"isPrimary": true
}
@@ -121,28 +121,28 @@
},
"au-color-success": {
"au-color-success": {
"hex": "#52c41a",
"hex": "#2e7d0a",
"opacity": "1",
"isPrimary": true
}
},
"au-color-warning": {
"au-color-warning": {
"hex": "#faad14",
"hex": "#8c5a00",
"opacity": "1",
"isPrimary": true
}
},
"au-color-error": {
"au-color-error": {
"hex": "#f5222d",
"hex": "#cf1322",
"opacity": "1",
"isPrimary": true
}
},
"au-color-info": {
"au-color-info": {
"hex": "#1890ff",
"hex": "#096dd9",
"opacity": "1",
"isPrimary": true
}
@@ -261,7 +261,7 @@
},
"text-secondary": {
"color-text-secondary": {
"hex": "#8c8c8c",
"hex": "#6e6e6e",
"opacity": "1",
"isPrimary": true
}
@@ -289,28 +289,28 @@
},
"success": {
"color-success": {
"hex": "#52c41a",
"hex": "#2e7d0a",
"opacity": "1",
"isPrimary": true
}
},
"warning": {
"color-warning": {
"hex": "#faad14",
"hex": "#8c5a00",
"opacity": "1",
"isPrimary": true
}
},
"error": {
"color-error": {
"hex": "#f5222d",
"hex": "#cf1322",
"opacity": "1",
"isPrimary": true
}
},
"info": {
"color-info": {
"hex": "#1890ff",
"hex": "#096dd9",
"opacity": "1",
"isPrimary": true
}