gongyijie85/dsh-design-audit ↗★ 0
dsh-design-audit
DeepSeek Harness 的 UI/UX 审查与优化闭环:无头 Chrome 取证 → 确定性判据(WCAG 2.2 / 平台指南)→ 可粘贴 CSS 修复 → 复测差值验证
安装
npx -p @deepseek-ai/dsh dsh plugin --profile web add github:gongyijie85/dsh-design-audit说明文档
阅读完整 README ↗开发过程中被真实使用反推修掉的缺陷
-
修复只覆盖最严重实例 → 改逐元素展开
-
`` 被误报无可访问名称 → accname 的 name-from-content 包含内嵌图 alt
-
代码块被套用散文行长判据 →
pre/code排除 -
行长按容器宽度折算(中文高估约一倍、宽容器短文本必误报)→ 改实测「字符数 ÷ 渲染行数」
-
同一选择器在补丁里重复 8 次(相对父级生成导致塌缩)→ 按选择器去重,补丁 11.2KB → 7.6KB
-
复测重写
report.md会抹掉批注 → 保留## 视觉复核段落 -
自动基线取到无关页面 → 只认同目标
-
可见 ≠ 可点(盲点)→ 新增遮挡命中测试
-
差值误报:同一规则"最差元素"漂移时被判成"已修复 + 新引入"(假回归)→ 二次归类为"选择器漂移",单独列出前后元素
-
补丁重复块:跨 finding 的同一选择器生成多份(含注释的复合段会绕过归并)→ 全局按选择器归并(
flattenCssBlocks),实测 4 条修复 → 2 个选择器 + 1 段原样规则 -
动效盲区(假阴性):取证脚本原来只统计计算样式里的
animation/transition,于是 GSAP 那类"逐帧写内联 transform"的页面一条都不报 —— 实测同一页面(整屏 rAF 无限位移、完全无视prefers-reduced-motion)拿到"问题总数 0",而它旁边只多一个 CSS 过渡元素的对照页却报了 1 条且归因给了那个 CSS 元素。修法:跨时间采样(隔 250ms 比较几何/透明度变化,排除有 CSS 来源的元素),并把该类动效的修复建议从纯 CSS 改成 JS 侧matchMedia/gsap.matchMedia()