mcpField
W
web-scanning

web-scanning

github.com/community-accessテスト・品質429233 回インストール今日更新
リポジトリ

web-scanning について

Web アクセシビリティスキャンを計画するスキルです。ランタイムツール、ソースコードレビュー、または両方を使い、ページ検出、フレームワーク判別、スクリーンショット、設定、スキャン範囲を扱います。

主な機能

  1. 01axe-core CLI による実行時スキャン
  2. 02ソースコードのアクセシビリティレビュー
  3. 03同一ドメインのページ巡回
  4. 04サイトマップからのページ検出
  5. 05フレームワーク判別
  6. 06スキャンプロファイルの設定

活用シーン

  1. 01公開中の Web ページのスキャン
  2. 02Web ソースコードのレビュー
  3. 03複数ページのサイト監査
  4. 04スキャン範囲と設定の選択

インストール

コマンドをコピーしてターミナルで実行します。

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

インストール後、Claude Code で/web-scanningを入力して読み込まれたか確認します。

詳細

Web スキャン

対応している監査方法

方法ツール使用する場面
ランタイムスキャンaxe-core CLI利用可能なライブ URL がある場合(開発サーバーまたは本番環境)
コードレビューエージェントの専門家ワークスペース内にソースコードがある場合
両方axe-core + エージェント最も包括的です。両方の観点から問題を検出できます

ランタイムスキャンのコマンド

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"

複数ページの監査におけるページの検出

クロールの深さのモード
モード動作最大ページ数
現在のページのみ単一の URL をスキャン1
主要なページユーザーが指定したリストユーザー定義
サイト全体をクロール内部リンクをたどる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 に react が含まれるReact
package.json に next が含まれるNext.js
package.json に vue が含まれるVue
package.json に @angular/core が含まれるAngular
package.json に svelte が含まれるSvelte
.jsx / .tsx ファイルが存在するReact/Next.js
.vue ファイルが存在するVue
angular.json が存在するAngular
.svelte ファイルが存在するSvelte
.html ファイルのみVanilla 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.*

スキャン設定

Web スキャン設定ファイル:.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)エラーと警告
ディープすべて + 追加項目すべての重大度 + アニメーション、認知、タッチ

コメント