# Data Table Accessibility Evidence Auditor (`gifted_wagon/data-table-accessibility-evidence-auditor`) Actor

Audit static HTML tables for captions, headers, scope, identifiers, presentation roles, and normalized table evidence.

- **URL**: https://apify.com/gifted\_wagon/data-table-accessibility-evidence-auditor.md
- **Developed by:** [Michael Olmos](https://apify.com/gifted_wagon) (community)
- **Categories:** Other, Developer tools, Automation
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $250.00 / 1,000 page auditeds

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

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

## What's an Apify Actor?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
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.
Actors are written with capital "A".

## 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.
The best way to integrate Actors is as follows.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).

# README

## Data Table Accessibility Evidence Auditor

Audit static HTML tables for captions, headers, scope, identifiers, presentation roles, and normalized table evidence.

### Why this Actor

- one normalized record per observed table
- caption, header, scope, id, and headers-attribute evidence
- presentation tables kept distinct from likely data tables
- workflow-ready findings with exact element counts
- no browser session, AI service, or private data

### Input

Provide up to 500 credential-free public HTTP(S) URLs in `pages`, plus an optional per-run `maxPages` and per-request `timeoutSecs`. Localhost, private IP addresses, private DNS resolutions, credential-bearing URLs, unsafe redirects, responses above 2 MB, and more than five redirects are rejected.

### Output

Each attempted page produces one normalized dataset row. Successful rows contain the final URL, HTTP status, redirects, evidence, summary, deterministic grade, and findings. Error rows state the exact failure and are not charged as completed audits. This is static response evidence, not legal advice, penetration testing, rendered-browser verification, or certification.

### Charging

A small Actor-start event is charged once. Only successful `page-audited` rows are charged; failed fetches and error rows are not charged as completed audits. Inputs and memory are bounded so costs remain predictable.

### Privacy and safety

Use public pages only. Do not submit credentials, cookies, private endpoints, customer lists, personal datasets, or proprietary content. The Actor does not log in, bypass access controls, replay sessions, or copy competitor content.

### Public example

The launch manifest uses https://www.w3.org/WAI/tutorials/tables/examples/scope-multiple/ and requests exactly one page at 256 MB.

# Actor input Schema

## `pages` (type: `array`):

Credential-free public HTTP(S) pages to audit.

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

Maximum unique pages processed and charged.

## `timeoutSecs` (type: `integer`):

Network timeout in seconds for each page request.

## Actor input object example

```json
{
  "pages": [
    "https://www.w3.org/WAI/tutorials/tables/examples/scope-multiple/"
  ],
  "maxPages": 100,
  "timeoutSecs": 20
}
```

# Actor output Schema

## `dataset` (type: `string`):

No description

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

No description

# 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 = {};

// Run the Actor and wait for it to finish
const run = await client.actor("gifted_wagon/data-table-accessibility-evidence-auditor").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 = {}

# Run the Actor and wait for it to finish
run = client.actor("gifted_wagon/data-table-accessibility-evidence-auditor").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 '{}' |
apify call gifted_wagon/data-table-accessibility-evidence-auditor --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,gifted_wagon/data-table-accessibility-evidence-auditor"
        }
    }
}

```

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/jB8seSZq2KThu12xk/builds/y3EBcmr0Fmf65s1VM/openapi.json
