A toolset for crawling websites and running automated accessibility scans using axe-core and screenshot utilities.

Install

mkdir -p .claude/skills/web-scanning && curl -L -o skill.zip "https://agentskills.codes/api/skills/download/17934" && unzip -o skill.zip -d .claude/skills/web-scanning && rm skill.zip

Installs to .claude/skills/web-scanning

Activation

This is the description your AI agent reads to decide when to run this skill — the better it matches your request, the more reliably it fires.

Web content discovery, URL crawling, and page inventory for accessibility audits. Use when scanning web pages, crawling sites for audit scope, or building page inventories for multi-page audits.
194 chars✓ has a “when” trigger
Intermediate

Key capabilities

  • Perform runtime accessibility scans with axe-core CLI
  • Capture full-page screenshots of web pages
  • Discover URLs for multi-page audits via sitemaps or link crawling
  • Detect web frameworks from workspace files
  • Scan source code files for accessibility issues

How it works

This skill uses axe-core CLI for runtime accessibility scanning and capture-website-cli for full-page screenshots, and can discover URLs through sitemap parsing or link-based crawling.

Inputs & outputs

You give it
A URL or list of URLs for web pages, or a base URL for site crawling
You get back
Accessibility scan results, full-page screenshots, or a list of discovered URLs

When to use web-scanning

  • Generate an inventory of site URLs for accessibility testing
  • Run automated WCAG 2.2 AA compliance scans on specific pages
  • Capture full-page screenshots of web pages for visual audits
  • Verify site accessibility compliance in headless environments

About this skill

Web Scanning

Supported Audit Methods

MethodToolWhen to Use
Runtime scanaxe-core CLILive URL available (dev server or production)
Code reviewAgent specialistsSource code available in workspace
Bothaxe-core + agentsMost comprehensive - catches issues from both angles

Runtime Scanning Commands

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 Tag Reference

TagStandard
wcag2aWCAG 2.0 Level A
wcag2aaWCAG 2.0 Level AA
wcag21aWCAG 2.1 Level A
wcag21aaWCAG 2.1 Level AA
wcag22aaWCAG 2.2 Level AA
best-practiceBest practices (not WCAG required)

Screenshot Capture

capture-website-cli (preferred - lightweight)

# 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 (fallback)

npx playwright screenshot --browser chromium --full-page --wait-for-timeout 3000 "<URL>" "screenshots/<page>.png"

Page Discovery for Multi-Page Audits

Crawl Depth Modes

ModeBehaviorMax Pages
Current page onlyScan single URL1
Key pagesUser-provided listUser-defined
Full site crawlFollow internal links50 (default cap)

Sitemap-based Discovery

# 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

Link-based Crawling

When crawling from a start URL:

  • Follow only same-domain links
  • Skip anchor links (#), mailto:, tel:, javascript: links
  • Skip file downloads (.pdf, .zip, .doc, etc.)
  • Respect robots.txt
  • Cap at 50 pages unless user overrides
  • Track visited URLs to avoid duplicates

Framework Detection

Detect the framework from workspace files to enable framework-specific scanning:

IndicatorFramework
package.json contains reactReact
package.json contains nextNext.js
package.json contains vueVue
package.json contains @angular/coreAngular
package.json contains svelteSvelte
.jsx / .tsx files presentReact/Next.js
.vue files presentVue
angular.json presentAngular
.svelte files presentSvelte
Only .html filesVanilla HTML

Source Code File Patterns

When doing code review, scan these file patterns:

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

Scan Configuration

Web Scan Config File: .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": []
  }
}

Scan Profiles

ProfilePhasesThoroughness
Quick1, 3, 4, 9Errors and critical only
StandardAll (1-9)Errors and warnings
DeepAll + extrasAll severities + animation, cognitive, touch

When not to use it

  • When only code review is needed without runtime scanning
  • When a full site crawl exceeds 50 pages and user override is not provided
  • When only basic chat generation is failing due to server unresponsiveness

Limitations

  • Full site crawls are capped at 50 pages by default
  • Only follows same-domain links during crawling
  • Does not automatically fix accessibility issues, only identifies them

How it compares

This skill automates web content discovery and accessibility scanning using specific tools and methods, providing a structured approach to auditing compared to manual inspection.

Compared to similar skills

web-scanning side by side with the closest alternatives in the catalog.

SkillInstallsUpdatedSafetyDifficulty
web-scanning (this skill)04moReviewIntermediate
firecrawl-scraper248moCautionBeginner
web-scraping07moNo flagsBeginner
web-scraper02moReviewIntermediate

Try saying

Example prompts that trigger this skill in your AI assistant.

Search skills

Search the agent skills registry