Tool tree
gradeNot graded
get_focus_orderAnswer
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.
View tool JSON
{
"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.",
"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"
]
}
}simulate_tab_sequenceAction
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.
View tool JSON
{
"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.",
"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"
]
}
}get_aria_live_stateAnswer
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.
View tool JSON
{
"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.",
"inputSchema": {
"type": "object",
"properties": {
"selector": {
"type": "string",
"description": "CSS selector of the live region to inspect"
}
},
"required": [
"selector"
]
}
}get_element_roleAnswer
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.
View tool JSON
{
"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.",
"inputSchema": {
"type": "object",
"properties": {
"selector": {
"type": "string",
"description": "CSS selector of the element to inspect"
}
},
"required": [
"selector"
]
}
}report_violationAction
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.
View tool JSON
{
"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.",
"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"
]
}
}get_violation_logAnswer
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.
View tool JSON
{
"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.",
"inputSchema": {
"type": "object",
"properties": {}
}
}