Opens in a new tabSkip to content
Agent LighthouseAgent Lighthouse

    Searches the text of every published page. The evidence sources themselves are not in this index — search all of them on the trusted sources page.

    GitHub ↗
    Browse checks and page contents
    operability-safety/forms-no-js

    Forms work without JavaScript

    What it checks

    Many AI agents do not execute JavaScript, so forms that rely on JS for submission are invisible to them. Adding standard HTML action and method attributes ensures forms work via simple HTTP requests, making them accessible to all AI agents.

    Why it matters

    An AI client that does not execute JavaScript cannot submit a form whose only submission path is a JS event handler; giving the form a server-side HTML submission path makes it actionable over plain HTTP.

    Evidence

    • Vercel’s crawler study finds “none of the major AI crawlers currently render JavaScript”, naming OAI-SearchBot, ChatGPT-User, GPTBot, ClaudeBot, Meta-ExternalAgent, Bytespider and PerplexityBot; ChatGPT (11.50%) and Claude (23.84%) fetch JS files but do not execute them — vercel.com/…/the-rise-of-the-ai-crawler (verified 2026-08-21)
    • Those same non-rendering clients are retrieval crawlers, not form submitters. The agents that actually fill and submit forms drive a real, JS-executing browser. Anthropic’s browser use tool works “through its structure (the accessibility tree, elements, forms, and tabs) and through pixels” — platform.claude.com/…/browser-use-tool (verified 2026-08-21)
    • Playwright MCP likewise drives a real browser and exposes structured accessibility snapshots to the model — github.com/…/playwright-mcp (verified 2026-08-21)

    Limits

    The HTML Standard makes the graded attribute optional by design — in the form submission algorithm, if the action attribute “is null or attribute’s value is the empty string, then return this’s node document’s URL” (html.spec.whatwg.org/…/form-control-infrastructure.…, verified 2026-08-21). A <form method="post"> with no action is fully functional without JavaScript, so a missing action is not evidence of JS dependence. No vendor documents an agent that POSTs a form from parsed HTML without a browser, and every documented form-filling agent executes JavaScript — which removes the harm this audit’s failure state describes.

    How it scores

    The “AI crawlers do not run JavaScript” half is well measured. But no documented agent submits HTML forms over raw HTTP, and the specific attribute this audit scores, action, does not distinguish a JS-only form from a standards-compliant self-posting one. The causal link from signal to consumer is therefore unproven.

    Sources