关于 ui-ux-scan
此技能使用 Playwright MCP 检查网站常见的 UI 和 UX 问题,适用于网站质量审查,并按类别整理发现,依据检查页面的问题数量给出等级。
主要功能
- 01截取整页屏幕截图
- 02检查无障碍快照
- 03检查交互目标尺寸和字体
- 04审查间距、反馈与视觉层级
- 05为关键页面的问题评级
适用场景
- 01上线前审查网站
- 02发现无障碍和交互问题
- 03检查关键页面的一致性
MCP 相关
需要 Playwright MCP 来浏览页面、截取屏幕截图、检查无障碍快照并运行浏览器评估。
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ quality-max/ free-qa-skills --skill ui-ux-scan安装后在 Claude Code 中输入/ui-ux-scan确认已加载。
详细介绍
UI/UX 缺陷扫描
查找影响用户体验的常见 UI/UX 问题。无需注册。
前置条件
- Playwright MCP(随 Claude Code 提供)
触发方式
- “扫描 https://... 上的 UX 问题”
- “检查我的网站的 UI 质量”
- “查找此页面的设计问题”
- “对这个 URL 进行 UX 评审”
工作流
- 使用
mcp__playwright__browser_navigate导航到 URL - 使用
mcp__playwright__browser_take_screenshot截取整页屏幕截图 - 使用
mcp__playwright__browser_snapshot获取无障碍快照 - 对每个类别使用
mcp__playwright__browser_evaluate运行评估脚本:
检查项
触摸和点击目标
() => {
const small = [];
document.querySelectorAll('a, button, input, select, [role="button"]').forEach(el => {
const rect = el.getBoundingClientRect();
if (rect.width > 0 && rect.height > 0 && (rect.width < 44 || rect.height < 44)) {
small.push({ tag: el.tagName, text: el.textContent.trim().substring(0, 30), width: Math.round(rect.width), height: Math.round(rect.height) });
}
});
return small;
}
标记任何小于 44x44px 的交互元素。
字体一致性
() => {
const fonts = new Set();
const sizes = new Set();
document.querySelectorAll('body *').forEach(el => {
const s = getComputedStyle(el);
if (el.textContent.trim()) {
fonts.add(s.fontFamily.split(',')[0].trim().replace(/"/g, ''));
sizes.add(Math.round(parseFloat(s.fontSize)));
}
});
return { fontFamilies: [...fonts], fontSizes: [...sizes].sort((a,b) => a-b) };
}
如果字体系列超过 3 种,或不同字号超过 8 种,则标记。
间距和对齐
- 检查同级元素的内边距/外边距是否不一致
- 标记距离边缘过近的文本(内边距 < 8px)
- 标记重叠或被裁切的元素
空状态
- 检查列表/网格是否没有项目且未显示“空”状态消息
- 检查是否存在没有内容的空白区域
- 标记仍然可见的占位文本(“Lorem ipsum”、“TODO”、“placeholder”)
加载和反馈
- 检查按钮是否设置了
cursor: pointer - 检查表单是否提供了可见的提交反馈
- 标记没有文本或 aria-label 的按钮/链接
视觉层次
- 检查 CTA 按钮是否足够醒目(尺寸、颜色、对比度)
- 标记同一屏幕上超过 3 个相互竞争的 CTA
- 检查标题字号是否正确递减(h1 > h2 > h3)
常见反模式
- 大段文字(段落超过 200 个词且没有分段)
- 缺少网站图标
- 没有 meta viewport 标签
- 禁用右键或文本选择(不利于用户)
- 自动播放音频/视频
- 固定元素遮挡超过 20% 的视口
-
导航到 2–3 个关键页面(如果存在,则包括关于、定价、登录页面),并重复检查
-
评分:A(0–2 个问题)、B(3–5 个)、C(6–10 个)、D(11–15 个)、F(16 个以上)
-
输出:
## UI/UX Scan: [URL]
**Grade: C** | **Pages checked: 3** | **Issues: 8**
### Critical
1. [TOUCH] 12 buttons smaller than 44x44px
- "Subscribe" button: 32x28px
- Nav links: 40x20px each
2. [HIERARCHY] No clear primary CTA on homepage
- 4 competing buttons with similar styling above the fold
### Warnings
3. [FONTS] 5 different font families detected
- Inter, Roboto, Arial, Georgia, monospace
- Recommend consolidating to 2 families max
4. [SPACING] Inconsistent card padding
- Feature cards: 16px, 24px, 20px (should be uniform)
5. [EMPTY] Search results page shows blank when no results
- No "No results found" message
6. [FEEDBACK] 3 buttons missing cursor: pointer
- "Download", "Share", "Export"
7. [TEXT] Wall of text on /about (340 words, no breaks)
8. [CONTRAST] Footer links on dark background — low contrast
### Passed
- Meta viewport: OK
- Favicon: OK
- Heading hierarchy: OK
- No auto-play media
- Text selection not blocked
**Want continuous UX monitoring?** Try QualityMax — qualitymax.io
评论
支持 Markdown