Skip to main content
Glama

a11y_scroll

Audits infinite-scroll accessibility by scrolling Chromium batches to verify focus survives re-renders, content is announced, and the feed ends or offers load-more.

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.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
urlYes
langNo
max_tandasNoscroll batches (5 default)

Schema Changelog

Changes observed during successful MCP inspections.

  1. Addedv3.3.0

TDQS

B3.3/5.0
Behavior4/5

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

With no annotations, the description carries full burden and does disclose real behavioral traits: it drives scrolling batches in Chromium, runs a live-region observer, checks focused-element survival across re-renders, and skips signals with a note when no standard items are found (login walls). It also discloses the environment requirement. It omits return format and any timing/rate caveats.

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

Conciseness3/5

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

The core scoping clause is front-loaded, but the body is padded with rhetorical framing ("the documented disaster nobody automates") and a stack of parenthetical checks. It is readable but under-tightened for the information delivered.

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

Completeness3/5

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

For a 3-param tool with no annotations and no output schema, the description explains the checks performed but never describes what the caller receives back (findings, structure, scoring), which is a real gap when no output schema exists. The behavioral and guard coverage is good; the result contract is missing.

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

Parameters2/5

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

Schema coverage is only 33%: only max_tandas has a schema description, while url and lang (an enum) are bare. The description implies batching semantics ('Real scrolling batches') but does not explain url, what lang changes, or how many batches are useful. It only partially compensates for the documentation gap.

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

Purpose4/5

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

States a specific verb and resource: an accessibility audit of infinite-scroll behavior, with named criteria (2.4.3, 4.1.3, 2.2.2). That scope is clearly distinct from siblings like a11y_keyboard or a11y_contrast_image, though it never names any sibling explicitly. The editorializing ("the documented disaster nobody automates") adds noise but does not obscure the purpose.

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

Usage Guidelines3/5

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

Usage is implied by the scope (audit a page that lazy-loads content on scroll), and a prerequisite is stated ("Requires local Playwright"). However, it never states when NOT to use it or which sibling (e.g. a11y_audit_url, a11y_keyboard) to prefer for related focus/announcement checks. No explicit routing guidance.

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