{"ok":true,"site":{"host":"accesscanary.onrender.com","url":"https://accesscanary.onrender.com/","type":"live","desc":"AccessCanary — an AI agent that catches accessibility bugs static scanners can't see, using WebMCP to observe live focus order, ARIA-live timing, and keyboard traps.","tools":[{"name":"get_focus_order","kind":"answer","impl":"imperative","description":"Returns the real browser tab order starting from a given element, honoring positive tabIndex ordering rules. Use this to check whether the visual/DOM order matches the actual keyboard tab order.","annotations":{"readOnlyHint":true,"untrustedContentHint":false},"inputSchema":{"type":"object","properties":{"startSelector":{"type":"string","description":"CSS selector of the element to start the tab sequence from"},"limit":{"type":"number","description":"Max number of steps to return, default 20"}},"required":["startSelector"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"simulate_tab_sequence","kind":"act","impl":"imperative","description":"Simulates pressing Tab a number of times starting from an element, dispatching real keydown events so custom focus-trap handlers get a genuine chance to run. Returns the resulting focus path.","annotations":{"readOnlyHint":true,"untrustedContentHint":false},"inputSchema":{"type":"object","properties":{"startSelector":{"type":"string","description":"CSS selector of the element to start tabbing from"},"steps":{"type":"number","description":"Number of Tab presses to simulate, max 10"}},"required":["startSelector","steps"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"get_aria_live_state","kind":"answer","impl":"imperative","description":"Reports whether an element has aria-live set, its politeness level, and whether it actually fired an announcement the last time its content changed — catching silent live regions.","annotations":{"readOnlyHint":true,"untrustedContentHint":false},"inputSchema":{"type":"object","properties":{"selector":{"type":"string","description":"CSS selector of the live region to inspect"}},"required":["selector"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"get_element_role","kind":"answer","impl":"imperative","description":"Returns the accessible role, accessible name, and relevant ARIA state of an element, so an agent can confirm it is announced correctly to assistive technology.","annotations":{"readOnlyHint":true,"untrustedContentHint":false},"inputSchema":{"type":"object","properties":{"selector":{"type":"string","description":"CSS selector of the element to inspect"}},"required":["selector"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"report_violation","kind":"act","impl":"imperative","description":"Proposes an accessibility violation finding for human review. This does NOT log the violation directly — it stages it for confirmation in the narration panel, where a human approves or dismisses it.","annotations":{"readOnlyHint":false,"untrustedContentHint":false},"inputSchema":{"type":"object","properties":{"category":{"type":"string","enum":["focus-order","silent-live-region","keyboard-trap"]},"severity":{"type":"string","enum":["critical","serious","moderate"]},"description":{"type":"string","description":"Plain-language description of what was observed"},"selector":{"type":"string","description":"Where in the page the issue was found"}},"required":["category","severity","description","selector"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"get_violation_log","kind":"answer","impl":"imperative","description":"Returns the total count of confirmed violations plus the 3 most recent, in full detail. Summarized rather than exhaustive to stay within tool output size limits.","annotations":{"readOnlyHint":true,"untrustedContentHint":false},"inputSchema":{"type":"object","properties":{}},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"}],"category":"Developer Tools","favicon":"/favicons/accesscanary.onrender.com.ico","apiSurface":"spec","toolCount":6}}