mcpField
Q
qe-visual-accessibility

qe-visual-accessibility

github.com/proffesor-for-testing测试与质量51988 次安装今天更新
代码仓库

关于 qe-visual-accessibility

qe-visual-accessibility 面向质量工程师,指导视觉、响应式布局和无障碍测试,涵盖截图对比、WCAG 2.2 审核及跨浏览器渲染检查。

主要功能

  1. 01截图基线对比
  2. 02响应式视口测试
  3. 03WCAG 2.2 无障碍审核
  4. 04跨浏览器渲染检查
  5. 05视觉差异报告

适用场景

  1. 01对比预发布环境与生产基线
  2. 02检查手机、平板和桌面布局
  3. 03按 WCAG 2.2 AA 审核网站
  4. 04查找不同浏览器间的渲染差异

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/proffesor-for-testing/agentic-qe --skill qe-visual-accessibility

安装后在 Claude Code 中输入/qe-visual-accessibility确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

evals/
qe-visual-accessibility.yaml
schemas/
output.json
scripts/
validate-config.json

详细介绍

QE 视觉无障碍

用途

指导使用 v3 的视觉与无障碍测试功能,包括截图比较、响应式设计验证以及 WCAG 2.2 合规性验证。

激活条件

  • 测试视觉外观时
  • 验证响应式设计时
  • 检查无障碍合规性时
  • 检测视觉回归时
  • 测试跨浏览器渲染时

快速入门

# Visual regression test
aqe visual test --baseline production --current staging

# Responsive design test
aqe visual responsive --url https://example.com --viewports all

# Accessibility audit
aqe a11y audit --url https://example.com --standard wcag22-aa

# Cross-browser test
aqe visual cross-browser --url https://example.com --browsers chrome,firefox,safari

Agent 工作流

// Visual regression testing
Task("Run visual regression", `
  Compare staging against production:
  - Capture screenshots of key pages
  - Detect pixel differences
  - Flag significant visual changes
  - Generate visual diff report
`, "qe-visual-tester")

// Accessibility audit
Task("Audit accessibility", `
  Run WCAG 2.2 AA compliance audit:
  - Check color contrast ratios
  - Verify keyboard navigation
  - Test screen reader compatibility
  - Validate ARIA labels
  Generate compliance report with fix suggestions.
`, "qe-accessibility-agent")

浏览器引擎

此技能中的所有浏览器自动化均使用 qe-browser fleet 技能(Vibium 引擎)。请参阅 .claude/skills/qe-browser/SKILL.md。vibium 二进制文件由 aqe init 安装。

视觉测试操作

1. 视觉回归(通过 qe-browser)
# Establish baselines for the pages we care about
for path in / /login /dashboard /settings; do
  slug=$(echo "$path" | tr '/' '_' | sed 's/^_//' || echo root)
  vibium go "https://production.example.com$path" && vibium wait load
  node .claude/skills/qe-browser/scripts/visual-diff.js --name "baseline_${slug:-root}"
done

# Compare staging against those baselines
for path in / /login /dashboard /settings; do
  slug=$(echo "$path" | tr '/' '_' | sed 's/^_//' || echo root)
  vibium go "https://staging.example.com$path" && vibium wait load
  node .claude/skills/qe-browser/scripts/visual-diff.js \
    --name "baseline_${slug:-root}" --threshold 0.001  # 0.1% pixel diff
done

通过将差异比较范围限定为排除动态区域(时间戳、实时计数)的选择器来忽略这些区域:

node .claude/skills/qe-browser/scripts/visual-diff.js \
  --name hero --selector "main > .content"

传统的编程式 TypeScript API(仍可用于偏好使用它而非通过 shell 调用的测试):

await visualTester.compareScreenshots({
  baseline: {
    source: 'production',
    pages: ['/', '/login', '/dashboard', '/settings']
  },
  current: {
    source: 'staging',
    pages: ['/', '/login', '/dashboard', '/settings']
  },
  comparison: {
    threshold: 0.1,  // 0.1% pixel difference
    antialiasing: true,
    ignoreRegions: ['#dynamic-content', '.timestamp']
  }
});
2. 响应式测试
await responsiveTester.test({
  url: 'https://example.com',
  viewports: [
    { name: 'mobile', width: 375, height: 667 },
    { name: 'tablet', width: 768, height: 1024 },
    { name: 'desktop', width: 1920, height: 1080 }
  ],
  checks: {
    layoutShift: true,
    contentOverflow: true,
    touchTargets: true,
    fontScaling: true
  }
});
3. 无障碍审计
await accessibilityAgent.audit({
  url: 'https://example.com',
  standard: 'WCAG22-AA',
  checks: {
    perceivable: {
      colorContrast: true,
      textAlternatives: true,
      captions: true
    },
    operable: {
      keyboardAccessible: true,
      noTimingIssues: true,
      navigable: true
    },
    understandable: {
      readable: true,
      predictable: true,
      inputAssistance: true
    },
    robust: {
      compatible: true,
      parseErrors: true
    }
  }
});
4. 跨浏览器测试
await visualTester.crossBrowser({
  url: 'https://example.com',
  browsers: ['chrome', 'firefox', 'safari', 'edge'],
  versions: 'latest-2',
  comparisons: {
    betweenBrowsers: true,
    betweenVersions: true,
    againstBaseline: true
  }
});

WCAG 2.2 检查清单

级别标准可自动测试
A非文本内容✅
A信息和关系部分
A颜色对比度(4.5:1)✅
A键盘可访问✅
A焦点可见✅
AA重排✅
AA文本间距✅
AAA增强对比度(7:1)✅

视觉测试报告

interface VisualReport {
  summary: {
    pagesCompared: number;
    differencesFound: number;
    passRate: number;
  };
  comparisons: {
    page: string;
    viewport: string;
    baseline: string;
    current: string;
    diff: string;
    diffPercentage: number;
    status: 'pass' | 'fail' | 'review';
  }[];
  accessibility: {
    violations: A11yViolation[];
    passes: number;
    incomplete: number;
    score: number;
  };
  responsive: {
    viewport: string;
    issues: ResponsiveIssue[];
  }[];
}

无障碍报告

interface AccessibilityReport {
  summary: {
    score: number;
    violations: number;
    warnings: number;
    passes: number;
  };
  violations: {
    id: string;
    impact: 'critical' | 'serious' | 'moderate' | 'minor';
    description: string;
    wcag: string[];
    elements: {
      selector: string;
      html: string;
      issue: string;
      fix: string;
    }[];
  }[];
  compliance: {
    wcagLevel: 'A' | 'AA' | 'AAA';
    criteriasMet: number;
    criteriasTotal: number;
  };
}

CI/CD 集成

visual_testing:
  on_pr:
    - capture_screenshots
    - compare_to_baseline
    - run_a11y_audit

  thresholds:
    visual_diff: 0.1
    a11y_violations: 0

  artifacts:
    - screenshots/
    - diffs/
    - a11y-report.html

协作

主要 Agent:qe-visual-tester、qe-accessibility-agent、qe-responsive-tester 协调者:qe-visual-coordinator 相关技能:qe-test-execution、qe-quality-assessment

评论

支持 Markdown