A Loom process package for structured website accessibility audits with WCAG-mapped findings and implementation-ready remediation planning.
This package and all bundled tools run without third-party API keys or service credentials. Scans and URL discovery rely on direct HTTP(S) requests only.
The web-accessibility-audit process runs a strict 7-phase workflow:
- Scope and compliance profile setup
- URL inventory and representative sampling
- Automated accessibility checks
- Manual accessibility checks on critical journeys
- Finding normalization and WCAG coverage mapping
- Prioritized remediation roadmap
- Final conformance and risk report
Bundled tools are prefixed with a11y_ and designed for repeatable artifacts:
a11y_url_inventory- discovers URLs, clusters templates, and proposes a deterministic sample.a11y_scan- runs heuristic accessibility checks and emits normalized findings.a11y_flow_check- validates critical user flows and captures manual test checkpoints.
If you add or update bundled tools that can write, move, or delete workspace files, keep them aligned with Loom's mutation contract:
- Set
is_mutating = Truefor every workspace-writing tool. - Return accurate workspace-relative
files_changedon every successful write. - Expose
mutation_target_arg_keyswhen write paths are not inpath(for example:output_findings_csv,output_flow_json). - Resolve writes with
_resolve_path(..., ctx.workspace)and keep targets in the workspace. - Treat
execution.sealed_artifact_post_call_guard(off|warn|enforce) as defense-in-depth only; preflight gating should come from mutating metadata and path targeting, not post-call rollback behavior.
All bundled URL-fetching tools apply the same hardened policy:
- HTTP(S) only; non-web schemes are rejected.
- SSRF protections block localhost, loopback, link-local, RFC1918/private, reserved, multicast, and unspecified address ranges after DNS resolution.
- Redirects are handled manually with bounded redirect depth; each redirect target is re-validated.
- Retries with exponential backoff are used for transient failures
(
408/425/429/500/502/503/504and connection timeouts/errors). Retry-Afteris honored for429and503responses when provided.- Per-host pacing defaults to conservative delays to avoid bursty traffic.
- Requests include browser-like headers with honest default Loom user-agents, plus optional user-agent override parameters.
- Response bytes and request time are bounded for deterministic execution.
From a local path:
loom install /path/to/web-accessibility-auditFrom GitHub using full URL:
loom install https://github.com/sfw/web-accessibility-auditFrom GitHub shorthand:
loom install sfw/web-accessibility-auditInstall into a specific workspace instead of global process storage:
loom install sfw/web-accessibility-audit -w /path/to/projectloom cowork --process web-accessibility-auditThen in chat:
/run Audit https://example.com for WCAG 2.2 AA conformance and produce a prioritized remediation plan.
For non-interactive execution:
loom run "Audit https://example.com for WCAG 2.2 AA conformance" --workspace /tmp/a11y-audit --process web-accessibility-audit- Core discovery:
targets,max_urls,max_discovered_urls,crawl_depth. - Discovery modes:
include_sitemap,respect_robots,include_subdomains. - URL filtering:
include_patterns,exclude_patterns,keep_query_params. - Network controls:
timeout_seconds,max_redirects,max_retries,backoff_base_seconds,backoff_max_seconds,request_delay_seconds,max_fetch_bytes,user_agent. - Optional artifacts:
output_inventory_csv,output_sample_csv,output_templates_csv.
- Inputs and bounds:
urls,max_urls,max_findings_per_url. - Output controls:
include_warnings,output_findings_csv. - Network controls:
timeout_seconds,max_redirects,max_retries,backoff_base_seconds,backoff_max_seconds,request_delay_seconds,max_fetch_bytes,user_agent. - Finding schema fields:
finding_id,url,rule_id,wcag_sc,severity,impact,confidence,message,evidence,remediation.
- Flow model:
flowswith orderedsteps(string URL or step object withurl, optionalname, and optionalexpected_text/assert_text). - Scope/bounds:
max_flows,max_steps_per_flow,require_https. - Network controls:
timeout_seconds,max_redirects,max_retries,backoff_base_seconds,backoff_max_seconds,request_delay_seconds,max_fetch_bytes,user_agent. - Optional artifacts:
output_flow_csv,output_flow_json.
audit-scope.mdcompliance-profile.mdjourney-inventory.csvurl-inventory.csvurl-sample.csvtemplate-map.csvautomated-findings.csvautomated-audit-summary.mdmanual-findings.csvmanual-test-notes.mdfindings-register.csvwcag-coverage-matrix.csvremediation-backlog.csvquick-wins.mdimplementation-guidelines.mdaccessibility-audit-report.mdconformance-summary.mdretest-plan.md
- Heuristic checks cannot validate keyboard interaction quality, focus behavior, AT announcement quality, or dynamic state transitions with full fidelity.
- Authenticated flows may require pre-authenticated/manual execution context; blocked or inaccessible steps should be manually validated.
- JavaScript-rendered content can reduce static-parser coverage in automated checks; inspect rendered states manually where risk is high.
- WCAG conformance statements require manual verification for critical journeys, form workflows, modal/dialog behavior, and error handling.
- Treat automated outputs as evidence inputs, not final legal conclusions.