a11y-toolkit: Infinite-scroll audit
a11y_scrollAudits infinite-scroll and paginated feeds for accessibility: checks focus survival across scroll batches, new-content announcements, and a reachable end or load-more option.
Instructions
Infinite-scroll accessibility audit — the documented disaster nobody automates (Deque guidance + ARIA APG Feed pattern; criteria 2.4.3, 4.1.3, 2.2.2). Real scrolling batches in Chromium with a live-region observer: does the focused element SURVIVE each batch (re-render destroys it — the documented failure)? Is new content ANNOUNCED (aria-live/status receives text, role=feed)? Does the feed END or offer a load-more alternative (footer reachability)? APG feed pattern as positive signal. Honest guard: if no standard items are detected (login walls, non-standard markup) the unfounded signals are skipped with a note. Requires local Playwright. — For paginated feeds only; general page audit is a11y_audit_url/dom. Returns JSON: {mode, url, score, findings [{criterion, severity, signal, issue, remediation}], summary} — same shape as the audits.
Tool call template
Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.
{
"id": 1,
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"arguments": {
"url": "<url>"
},
"name": "a11y_scroll"
}
}Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | Feed URL to audit (best on feeds you own or can authenticate into) | |
| lang | No | Output language (default en) | |
| browser | No | Browser engine (auto = detect the first available) | |
| auth_state | No | Path to a Playwright storage_state JSON (exported session) to audit an authenticated feed | |
| max_batches | No | scroll batches (5 default) |