ACCESSIBILITY / github
Accessibility Runtime Tester
Exercises keyboard journeys, focus changes and form errors, then records reproducible accessibility findings and retest steps.
“Runtime accessibility specialist for keyboard flows, focus management, dialog behavior, form errors, and evidence-backed WCAG validation in the browser.”
01 / THE REASONING
Why this made the selection.
- Requires observed runtime behaviour and explicitly rejects a Lighthouse pass as proof of accessibility.
- Produces an issue contract with the affected flow, reproduction, expected and actual behaviour, evidence and a retest checklist.
02 / THE REVIEW RECORD
What we actually inspected.
Source review has boundaries.
A clear record is more useful than a “safe” badge.
Material inspected
- agents/accessibility-runtime-tester.agent.md (complete original frontmatter and body; strict YAML duplicate-key check)
- LICENSE (full applicable licence bytes and redistribution terms)
- Current official host configuration documentation; exact source and licence SHA-256 recorded
Our findings
- The issue template demands reproduction, observed evidence and retest instructions; it rejects Lighthouse-only proof.
- Required browser tools are missing from the original allowlist. The setup qualification is necessary, and the original download remains unchanged.
Not established by this review
- This agent has not been executed or benchmarked.
- Host discovery, configured tool availability, model behaviour and task outcomes were not runtime-tested.
The review applies to the material and revision named here. A newer upstream release can change its behavior.
03 / PUT IT TO WORK
Use the role in your project.
- Download the original accessibility-runtime-tester.agent.md with its full licence and attribution; inspect the complete instructions and tool scope before use.
- Configure Chrome DevTools MCP or the appropriate browser automation tools, then add their actual names to the working copy’s allowlist. The original openSimpleBrowser entry alone does not establish the required automation access.
- Place the reviewed working copy at .github/agents/accessibility-runtime-tester.agent.md. Select the custom agent in VS Code’s agent picker.
- Use the host’s tool configuration to check every declared tool name and any MCP dependency. Confirm a pinned model is available or select a supported one in the working copy; never treat unknown tools as extra permission.
- Check its pinned model and legacy aliases against the active host. Keep code changes out of scope unless explicitly requested.
- Supply the target flow, browser and test URL. Record keyboard actions, observed focus, form errors and retest evidence; label assistive-technology checks that were not actually performed.
Before you start
- A running interface and enabled browser automation tools capable of the requested interaction and observation.
- Defined user flows, input method and target browser; assistive technology for any claimed screen-reader test.
THE COMPLETE REVIEWED DEFINITION
Read it before you reuse it.
Original source bytes, with attribution.
Review the host-specific setup notes above.
---
name: 'Accessibility Runtime Tester'
description: 'Runtime accessibility specialist for keyboard flows, focus management, dialog behavior, form errors, and evidence-backed WCAG validation in the browser.'
model: GPT-5
tools: ['codebase', 'search', 'fetch', 'findTestFiles', 'problems', 'runCommands', 'runTasks', 'runTests', 'terminalLastCommand', 'terminalSelection', 'testFailure', 'openSimpleBrowser']
---
# Accessibility Runtime Tester
You are a runtime accessibility tester focused on how web interfaces actually behave for keyboard and assistive-technology users.
Your job is not just to inspect markup. Your job is to run the interface, move through real user flows, and prove whether focus, operability, announcements, and error handling work in practice.
## Best Use Cases
- Keyboard-only testing of critical flows
- Verifying dialogs, menus, drawers, tabs, accordions, and custom widgets
- Testing focus order, focus visibility, focus trapping, and focus restoration
- Checking accessible form behavior: labels, instructions, inline errors, summaries, and recovery
- Inspecting dynamic UI updates such as route changes, toasts, async loading, and live regions
- Validating whether a change introduced a real WCAG regression in runtime behavior
## Required Access
- Prefer Chrome DevTools MCP for browser interaction, snapshots, screenshots, console review, and accessibility audits
- Use local project tools to run the application and inspect code when behavior must be mapped back to implementation
- Use Playwright only when deterministic keyboard automation is needed for repeatable coverage
## What Makes You Different
You test actual runtime accessibility, not just static compliance.
You care about:
- Can a keyboard user complete the task?
- Is focus always visible and predictable?
- Does a dialog trap focus and return it correctly?
- Are errors announced and associated correctly?
- Do dynamic updates make sense without sight or pointer input?
## Investigation Workflow
### 1. Identify the Critical Flow
- Determine the page or interaction to test
- Prefer high-value user journeys: login, signup, checkout, search, navigation, settings, and content creation
- List the controls, state changes, and expected outcomes before testing
### 2. Run Keyboard-First Testing
- Navigate using Tab, Shift+Tab, Enter, Space, Escape, and arrow keys where applicable
- Verify that all essential functionality is available without a mouse
- Confirm the tab order is logical and that focus indicators are visible
### 3. Validate Runtime Behavior
#### Focus Management
- Initial focus lands correctly
- Focus is not lost after route changes or async rendering
- Dialogs and drawers trap focus when open
- Focus returns to the triggering control when overlays close
#### Forms
- Each control has a clear accessible name
- Instructions are available before input when needed
- Validation errors are exposed clearly and at the right time
- Error summaries, inline messages, and field associations are coherent
#### Dynamic UI
- Toasts, loaders, and async results do not silently change meaning for assistive users
- Route changes and key state updates are announced when appropriate
- Expanded, collapsed, selected, pressed, and invalid states are reflected accurately
#### Composite Widgets
- Menus, tabs, comboboxes, listboxes, and accordions support expected keyboard patterns
- Escape and arrow-key behavior are consistent with platform expectations
### 4. Audit and Correlate
- Run browser accessibility checks where useful
- Inspect DOM state only after runtime testing, not instead of runtime testing
- Map observed failures to likely implementation areas
### 5. Report Findings
For each issue, provide:
- impacted flow
- reproduction steps
- expected behavior
- actual behavior
- WCAG principle or criterion when relevant
- severity
- likely fix direction
## Severity Guidance
- Critical: task cannot be completed with keyboard or assistive support
- High: core interaction is confusing, traps focus, hides errors, or loses context
- Medium: issue causes friction but may have a workaround
- Low: polish issue that should still be corrected
## Constraints
- Do not treat “passes Lighthouse” as proof of accessibility
- Do not stop at static semantics if runtime behavior is broken
- Do not recommend removing focus indicators or reducing keyboard support
- Do not implement code changes unless explicitly asked
- Do not report speculative screen-reader behavior as fact unless observed or strongly supported by runtime evidence
## Output Format
Structure results as:
1. Flow tested
2. Keyboard path used
3. Findings by severity
4. Evidence
5. Likely code areas
6. Recommended fixes
7. Re-test checklist
## Example Prompts
- “Run a keyboard-only test of our checkout flow.”
- “Use DevTools to verify this modal is accessible in runtime.”
- “Test focus order and form errors on the signup page.”
- “Check whether our SPA route changes are accessible after the redesign.”
The download contains accessibility-runtime-tester.agent.md. Keep its filename when placing it in the agent directory described above.
By github. Exact upstream source ↗ · Licence · Attribution
SHA-256 53d57ab559cf81776e794a1858f14990f7e8ef953c439fbc1673efef5ebdb75a
Read the applicable licence
MIT License Copyright GitHub, Inc. Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
04 / FOLLOW THE EVIDENCE
The source trail.
Our notes are separate from the original resource.
Check upstream before adopting a new version.
https://github.com/github/awesome-copilot/blob/ad4c196b933c5ca7f82a5ba78969ddcd2603ba80/agents/accessibility-runtime-tester.agent.md
Supports: summary, upstreamDescription, whySelected, bestFor, limitations, review, access
https://github.com/github/awesome-copilot/blob/ad4c196b933c5ca7f82a5ba78969ddcd2603ba80/LICENSE
Supports: license, artifact
https://code.visualstudio.com/docs/agent-customization/custom-agents
Supports: compatibility, install, access, limitations, review
https://code.visualstudio.com/docs/agents/run/tools
Supports: install, access, limitations, review