mcpField
U
ui-ux-scan

ui-ux-scan

github.com/quality-max其他1339 次安装1 天前更新
代码仓库

关于 ui-ux-scan

此技能使用 Playwright MCP 检查网站常见的 UI 和 UX 问题,适用于网站质量审查,并按类别整理发现,依据检查页面的问题数量给出等级。

主要功能

  1. 01截取整页屏幕截图
  2. 02检查无障碍快照
  3. 03检查交互目标尺寸和字体
  4. 04审查间距、反馈与视觉层级
  5. 05为关键页面的问题评级

适用场景

  1. 01上线前审查网站
  2. 02发现无障碍和交互问题
  3. 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 评审”

工作流

  1. 使用 mcp__playwright__browser_navigate 导航到 URL
  2. 使用 mcp__playwright__browser_take_screenshot 截取整页屏幕截图
  3. 使用 mcp__playwright__browser_snapshot 获取无障碍快照
  4. 对每个类别使用 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% 的视口
  1. 导航到 2–3 个关键页面(如果存在,则包括关于、定价、登录页面),并重复检查

  2. 评分:A(0–2 个问题)、B(3–5 个)、C(6–10 个)、D(11–15 个)、F(16 个以上)

  3. 输出:

## 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