Agent Actionability Tester
Score whether an AI agent can identify the actions available on your page. Detects the primary CTA, pricing reachability, contact / support routes, signup flow, accessibly-labelled forms, descriptive button text, and semantic landmarks. Heuristic-driven, no model in the loop, fully reproducible from the input HTML.
What an agent can find
Findings
- Primary CTA detectedcta.primary
"Sign in" → https://github.com/login
- Pricing reachablepricing.reachable
https://github.com/pricing
- Contact reachablecontact.reachable
https://support.github.com/
- Signup flow reachablesignup.reachable
Signup link present: https://github.com/signup?ref_cta=Sign+up&ref_loc=header+logged+out&ref_page=%2F&source=header-home
- 5 forms present + labelledforms.labeled
All form inputs carry accessible labels.
- 2 unlabeled <button>sbuttons.labeled
Buttons with no inner text and no aria-label are invisible to agents and screen readers.
fix Add explicit text or aria-label to each <button>.
- 4 semantic landmarkssemantic.landmarks
header, nav, main, footer
AgentSpeed: Agent Actionability Tester Target: https://github.com Score: 94/100 Detections: Primary CTA: Sign in Pricing: https://github.com/pricing Contact: https://support.github.com/ Signup: https://github.com/signup?ref_cta=Sign+up&ref_loc=header+logged+out&ref_page=%2F&source=header-home Landmarks: header, nav, main, footer Findings: [PASS] Primary CTA detected (cta.primary) [PASS] Pricing reachable (pricing.reachable) [PASS] Contact reachable (contact.reachable) [PASS] Signup flow reachable (signup.reachable) [PASS] 5 forms present + labelled (forms.labeled) [FAIL] 2 unlabeled <button>s (buttons.labeled) [PASS] 4 semantic landmarks (semantic.landmarks) Run again at: https://agentspeed.com/tools/agent-actionability-tester
Watch this URL — get alerted when this changes
Turn this one-off check into a scheduled watch. We re-run it, diff the result, and alert you on a regression through the same channels as your agent alerts. Watches are a paid feature.
Manage watches at /watches. You’ll be asked to sign in if you haven’t already.
Click an example to run the tool with pre-filled inputs.
Reading is half the work. The other half is acting. An agent that understands your page perfectly but can’t find the CTA, the pricing link, or how to sign up will quote your content and route the user away. The fix is structural: prominent action verbs, sensible URL conventions, labelled forms, semantic landmarks.
This tool runs the same heuristics AgentSpeed runs against the auth.* and journey.* checks, on demand against any URL.
How do you decide what counts as a "primary CTA"?
Why heuristic instead of using a model?
What about CTAs in client-rendered components?
Are forms with placeholder-as-label flagged?
Score the entire site against 30 agent-readiness checks across discoverability, readability, structured data, actionability, and performance.
Get the full report for github.com →