Skip to main content
Glama

a11y-toolkit: Infinite-scroll audit

a11y_scroll
Read-onlyIdempotent

Audit infinite-scroll feeds for WCAG 2.2 compliance: detect focus loss during re-render, verify new content is announced, and confirm feed termination or load-more alternatives.

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.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
urlYesFeed URL to audit (best on feeds you own or can authenticate into)
langNoOutput language (default en)
auth_stateNoPath to a Playwright storage_state JSON (exported session) to audit an authenticated feed
max_tandasNoscroll batches (5 default)

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed4 schema fields changedv4.0.0
    • addedInput schema / browser
      Added value: +{
      +  "description": "Browser engine (auto = detect the first available)",
      +  "enum": [
      +    "auto",
      +    "chromium",
      +    "firefox",
      +    "webkit",
      +    "chrome",
      +    "msedge"
      +  ],
      +  "type": "string"
      +}
    • addedInput schema / properties / auth_state
      Added value: +{
      +  "description": "Path to a Playwright storage_state JSON (exported session) to audit an authenticated feed",
      +  "type": "string"
      +}
    • addedInput schema / properties / lang / description
      Added value: +"Output language (default en)"
    • addedInput schema / properties / url / description
      Added value: +"Feed URL to audit (best on feeds you own or can authenticate into)"
  2. Addedv3.3.0

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations (readOnlyHint, openWorldHint, idempotentHint, destructiveHint=false) already convey the tool's safe, read-only, side-effect-free nature. The description adds significant context beyond that: it details what the audit checks (focused element survival, announcement, feed end), how it works (real scrolling, live-region observer), and its honest guard (skipping unfounded signals). However, it does not mention potential heavy resource usage or timeouts, which would be useful for an automation tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is information-dense but well-structured, with the key purpose front-loaded in the first sentence and additional details organized logically. It uses a clear em-dash structure and includes practical usage notes without fluff, making every sentence earn its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a complex auditing tool with 4 parameters and no output schema, the description covers most critical context: what it does, how it works, its limitations, and when to use it. However, it doesn't specify what the output format looks like (e.g., report structure), which an agent might need to know if it plans to parse results. Yet since there's no output schema, this is a minor gap, and the description is otherwise quite thorough.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema description coverage is 100%, so parameters are fully documented there. The description adds minimal extra meaning, but it does mention 'login walls' suggesting auth_state use, and 'scroll batches' aligns with max_tandas. Since schema already covers the parameters well, a baseline of 3 is appropriate; the description doesn't need to repeat what's already clear.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool audits infinite-scroll feeds for accessibility, listing specific criteria (2.4.3, 4.1.3, 2.2.2) and the ARIA APG Feed pattern. It explicitly distinguishes itself from 'a11y_audit_url/dom' for general page audits, which differentiates it from sibling tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly states 'For paginated feeds only; general page audit is a11y_audit_url/dom,' giving clear when-to-use guidance and naming the alternative. It also warns about login walls and non-standard markup, and notes the requirement for local Playwright, which helps the agent decide if the tool is appropriate.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.