mcpField
W
web-scanning

web-scanning

github.com/community-access测试与质量429233 次安装今天更新
代码仓库

关于 web-scanning

用于规划 Web 无障碍扫描的 Skill,可采用运行时工具、源码审查或两者结合。内容包括页面发现、框架检测、截图、配置及扫描深度选项。

主要功能

  1. 01使用 axe-core CLI 运行时扫描
  2. 02源码无障碍审查
  3. 03同域页面爬取
  4. 04通过站点地图发现页面
  5. 05框架检测
  6. 06可配置扫描配置文件

适用场景

  1. 01扫描在线网页
  2. 02审查 Web 源码
  3. 03审计多页面网站
  4. 04选择扫描深度和设置

安装

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

$npx skills add https://github.com/community-access/accessibility-agents --skill web-scanning

安装后在 Claude Code 中输入/web-scanning确认已加载。

详细介绍

网页扫描

支持的审计方法

方法工具适用场景
运行时扫描axe-core CLI有可访问的实时 URL(开发服务器或生产环境)
代码审查专项 Agent工作区中有源代码
两者结合axe-core + Agent最全面的方式,可从两个角度发现问题

运行时扫描命令

axe-core CLI
# Single page scan (WCAG 2.2 AA)
npx @axe-core/cli <URL> --tags wcag2a,wcag2aa,wcag21a,wcag21aa

# Save results to JSON
npx @axe-core/cli <URL> --tags wcag2a,wcag2aa,wcag21a,wcag21aa --save ACCESSIBILITY-SCAN.json

# Multiple pages
npx @axe-core/cli <URL1> <URL2> <URL3> --tags wcag2a,wcag2aa,wcag21a,wcag21aa --save ACCESSIBILITY-SCAN.json

# With Chrome flags (headless)
npx @axe-core/cli <URL> --tags wcag2a,wcag2aa,wcag21a,wcag21aa --chrome-flags="--headless --no-sandbox"
axe-core 标签参考
标签标准
wcag2aWCAG 2.0 A 级
wcag2aaWCAG 2.0 AA 级
wcag21aWCAG 2.1 A 级
wcag21aaWCAG 2.1 AA 级
wcag22aaWCAG 2.2 AA 级
best-practice最佳实践(WCAG 未强制要求)

截取屏幕截图

capture-website-cli(首选,轻量)
# Full-page screenshot
npx capture-website-cli "<URL>" --output="screenshots/<page>.png" --full-page --type=png

# With viewport
npx capture-website-cli "<URL>" --output="screenshots/<page>.png" --full-page --width=1280 --height=720

# Mobile viewport
npx capture-website-cli "<URL>" --output="screenshots/<page>-mobile.png" --full-page --width=375 --height=812

# With delay for JS-rendered content
npx capture-website-cli "<URL>" --output="screenshots/<page>.png" --full-page --delay=3
Playwright(备用)
npx playwright screenshot --browser chromium --full-page --wait-for-timeout 3000 "<URL>" "screenshots/<page>.png"

多页面审计的页面发现

爬取深度模式
模式行为最大页面数
仅当前页面扫描单个 URL1
关键页面用户提供的列表用户自定义
全站爬取跟踪内部链接50(默认上限)
基于站点地图的发现
# Check for sitemap
curl -s <BASE_URL>/sitemap.xml | head -20

# Extract URLs from sitemap
curl -s <BASE_URL>/sitemap.xml | grep -oP '<loc>\K[^<]+' | head -50
基于链接的爬取

从起始 URL 开始爬取时:

  • 仅跟踪同域链接
  • 跳过锚点链接(#)、mailto:、tel:、javascript: 链接
  • 跳过文件下载(.pdf、.zip、.doc 等)
  • 遵循 robots.txt
  • 上限为 50 个页面,除非用户另行指定
  • 跟踪已访问的 URL,避免重复

框架检测

根据工作区文件检测框架,以启用针对该框架的扫描:

指示项框架
package.json 包含 reactReact
package.json 包含 nextNext.js
package.json 包含 vueVue
package.json 包含 @angular/coreAngular
package.json 包含 svelteSvelte
存在 .jsx / .tsx 文件React/Next.js
存在 .vue 文件Vue
存在 angular.jsonAngular
存在 .svelte 文件Svelte
仅有 .html 文件原生 HTML

源代码文件模式

进行代码审查时,扫描以下文件模式:

# HTML files
**/*.html

# Component files (framework-specific)
**/*.jsx
**/*.tsx
**/*.vue
**/*.svelte
**/*.component.ts
**/*.component.html

# Style files (for contrast/visual checks)
**/*.css
**/*.scss
**/*.less
**/*.module.css

# Config files (for framework detection)
package.json
next.config.*
nuxt.config.*
angular.json
svelte.config.*
tailwind.config.*

扫描配置

网页扫描配置文件:.a11y-web-config.json
{
  "profile": "standard",
  "wcagLevel": "AA",
  "wcagVersion": "2.2",
  "axeTags": ["wcag2a", "wcag2aa", "wcag21a", "wcag21aa"],
  "maxPages": 50,
  "screenshots": false,
  "framework": "auto",
  "ignore": {
    "paths": ["node_modules/**", "dist/**", "build/**", ".next/**"],
    "rules": []
  }
}
扫描配置
配置阶段彻底程度
快速1、3、4、9仅检查错误和严重问题
标准全部(1-9)检查错误和警告
深度全部 + 额外项检查所有严重程度,并检查动画、认知和触控

评论

支持 Markdown