# Accessibility Pre-Audit: plain-English WCAG check of your site (`hestias-creations/access-preaudit`) Actor

Checks up to 25 pages of your website with axe-core and explains each problem and its fix in plain English. A pre-audit, not a certificate.

- **URL**: https://apify.com/hestias-creations/access-preaudit.md
- **Developed by:** [Hestias Creations](https://apify.com/hestias-creations) (community)
- **Categories:** Developer tools, SEO tools
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

Pay per event

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

## Accessibility Pre-Audit: a plain-English WCAG check of your website

Give it your website's address. It checks up to 25 pages with axe-core, the open-source engine behind many
professional accessibility tools. It then explains each problem in plain English: what's wrong, where, how many
times, and how to fix it.

For small businesses, nonprofits, schools and local governments getting ready for the U.S. Justice Department's
web accessibility rule (WCAG 2.1 AA): April 2027 for larger state and local governments, April 2028 for smaller ones
and special districts.

### What you get

- **Problems grouped by kind and ranked by severity** (critical, serious, moderate, minor). For each one:
  - how many pages and elements it affects;
  - a **plain fix** ("Give every meaningful image a short alt text...");
  - the WCAG success criteria, with example elements so you can find them;
  - a link to the full rule explanation.
- **Needs a person to check:** items the automated engine couldn't decide, such as text over images.
- **The manual checks still needed:** keyboard-only use, 200% zoom, a screen reader, captions, form errors,
  documents.
- A readable **report.html** in the run's key-value store, and the problems as a dataset (JSON, CSV, Excel).

### Example input

```json
{ "url": "https://www.example.com", "maxPages": 10, "standard": "2.1-AA" }
```

To see what a report looks like first, try W3C's deliberately inaccessible demo site,
https://www.w3.org/WAI/demos/bad/before/home.html, which is filled in for you. Otherwise, check only sites you own
or manage.

### Pricing

- A small charge per page checked.
- A charge per kind of problem found. A clean site costs only the pages.

### Honest limits

- **This is a pre-audit, not a compliance certificate,** and not legal advice. Automated checks find only part of
  the problems. In one 2026 comparison against manual audits, axe-core found about a quarter of the issues people
  found. The report lists what you still need to check by hand.
- We never sell overlay widgets or "instant compliance". Fixing the site itself is what works.
- It checks one site per run, at most 25 pages, follows robots.txt, and visits pages one at a time.

### Credits

Automated checks by axe-core 4.14 (Deque Systems, MPL-2.0). Hestia's Creations is not affiliated with Deque, and
is not a law firm.

Made by Hestia's Creations, a small company in Springfield, Oregon, working on the ethical use of AI for everyday
people.

# Actor input Schema

## `url` (type: `string`):

The site you own or manage, such as https://example.com. The audit starts here and follows links on the same site.

## `maxPages` (type: `integer`):

Up to 25 pages per run, one at a time. You pay per page checked.

## `standard` (type: `string`):

WCAG 2.1 AA is what the U.S. Justice Department's 2024 rule for state and local governments requires.

## Actor input object example

```json
{
  "url": "https://www.w3.org/WAI/demos/bad/before/home.html",
  "maxPages": 10,
  "standard": "2.1-AA"
}
```

# Actor output Schema

## `report` (type: `string`):

The full report as a web page: results, close calls and notes.

## `results` (type: `string`):

One item per result, with its reasons (JSON; add ?format=csv for a spreadsheet).

## `summary` (type: `string`):

The whole report as JSON, close calls and notes included.

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "url": "https://www.w3.org/WAI/demos/bad/before/home.html"
};

// Run the Actor and wait for it to finish
const run = await client.actor("hestias-creations/access-preaudit").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = { "url": "https://www.w3.org/WAI/demos/bad/before/home.html" }

# Run the Actor and wait for it to finish
run = client.actor("hestias-creations/access-preaudit").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "url": "https://www.w3.org/WAI/demos/bad/before/home.html"
}' |
apify call hestias-creations/access-preaudit --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,hestias-creations/access-preaudit"
        }
    }
}
```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/1srTdViJ2IxHacghp/builds/vuxFBudBnwmq4Spy7/openapi.json
