Persistent Accessibility Scanner
Persistent Accessibility Scanner is a standalone Visual Studio Code extension for accessibility review. It helps users scan UI files for issues related to WCAG 2.1/2.2, ADA, Section 508, and EN 301 549 directly inside Visual Studio Code.
What Users Can Do
| Need |
Use This |
| Scan the file currently open in the editor |
Scan File |
| Scan supported files across the workspace |
Workspace |
| Choose deeper AI review or fast local rules |
AI or Pattern scan type |
| Review accessibility findings in one place |
Findings table |
| Jump between findings |
Previous and Next |
| Open the Visual Studio Code Problems panel |
Problems |
| Save results for review or audit |
Export |
| Pause or resume automatic scanning |
Pause Auto or Resume Auto |
| Change scanner behavior |
Settings |
| Open help from inside the extension |
Open User Guide |
How The Dashboard Works
The dashboard includes these areas:
| Area |
What It Does |
| Accessibility view |
Opens the scanner dashboard from the Visual Studio Code Activity Bar. |
| Scan File |
Scans the file currently open in the editor. If no supported file is open, the dashboard tells the user the file is not scannable. |
| Workspace |
Scans supported files in the current workspace or folder. |
| Export |
Saves scan results as Excel, CSV, JSON, or HTML after a scan has results. |
| AI or Pattern |
Lets the user choose the scan type before starting a dashboard scan. |
| Auto scan status |
Shows whether automatic scanning is active. Automatic scans run shortly after supported files are edited or saved. |
| Summary counts |
Shows total, high, medium, and low findings so teams can triage quickly. |
| Findings |
Lists accessibility findings with severity, location, and related rule information. |
| Bottom actions |
Moves through issues, pauses auto scan, opens settings, and opens the user guide. |
Annotated walkthrough images are included with the extension. Open the user guide from the dashboard (Open User Guide) to view them.
Install And Open
Install From The Marketplace
- Open Visual Studio Code.
- Open Extensions from the Activity Bar.
- Search for Accessibility Scanner.
- Select Install.
- After installation, select the Accessibility icon in the Activity Bar.
Install From A VSIX Package
- Open Visual Studio Code.
- Open Extensions from the Activity Bar.
- Open the More Actions menu in the Extensions view.
- Select Install from VSIX....
- Select the Accessibility Scanner VSIX file.
- Reload Visual Studio Code if it asks.
- Confirm that the Accessibility icon appears in the Activity Bar.
Choose A Scan Type
| Scan Type |
What It Means |
Best For |
| AI |
Uses AI-powered accessibility analysis when AI is available, enabled, trusted, and within file-size limits. If AI cannot run, the scanner falls back to pattern-based scanning. |
Deeper accessibility review with smarter context. |
| Pattern |
Uses local accessibility rules only. It does not request AI analysis. |
Fast scans, local-only review, restricted environments, or quick checks. |
The selected scan type is shown at the top of the dashboard. This makes it clear which mode will run before the user scans.
Scan One File
- Open the UI file you want to review.
- Open the Accessibility dashboard.
- Choose AI or Pattern.
- Select Scan File.
- Review the summary and findings.
- Select a finding or use Next and Previous to move through issues.
Supported file examples include HTML, JavaScript, TypeScript, JSX, TSX, Vue, Svelte, Astro, Markdown, SVG, CSS, SCSS, Sass, Less, Stylus, and common server template dialects such as PHP, JSP, ASP.NET (Razor), ERB, EJS, Handlebars, Twig, Nunjucks, Liquid, Pug, and ColdFusion. Additional file types can be added with the accessibilityScanner.includePatterns setting.
Scan The Workspace
- Open the project folder or workspace in Visual Studio Code.
- Open the Accessibility dashboard.
- Choose AI or Pattern.
- Select Workspace.
- Wait for the scan to finish.
- Review the dashboard counts and findings.
- Open Problems when you want the full Visual Studio Code issue list.
Workspace scans respect file type support, excluded folders, and file-size limits.
Review Findings
| Area |
What It Does |
| Finding row |
Select a finding to inspect the issue. |
| Editor location |
Visual Studio Code jumps to the related file and line so the issue can be reviewed in context. |
| Summary counts |
Use high, medium, and low counts to decide what needs attention first. |
| Scanner output |
Shows scan progress and confirms whether AI analysis or fallback behavior ran. |
Each finding may include:
| Field |
Meaning |
| Severity |
High, Medium, or Low priority. |
| Finding |
Plain-language explanation of the accessibility risk. |
| Location |
File and line number where the issue was detected. |
| Rule |
Related accessibility rule or WCAG reference when available. |
High findings should be reviewed first because they may block people from using content or controls. Medium findings usually need contextual review. Low findings are useful cleanup or quality improvements.
Export Reports
Use export after running a scan:
| Area |
What It Does |
| Export button |
Opens the report format menu after scan results exist. |
| Format list |
Lets the user choose Excel, CSV, JSON, or HTML. |
| Report status |
Shows that the report is being prepared and then offers actions to open the file or folder. |
| Format |
Best For |
| Excel (XLSX) |
Review meetings, triage, ownership assignment, and audit evidence. |
| CSV |
Spreadsheet analysis or importing results into work tracking tools. |
| JSON |
Structured scan data for teams that need machine-readable results. |
| HTML |
A readable visual report that can be opened in a browser and shared with non-technical stakeholders. |
After export completes, Visual Studio Code shows actions to open the report directly or open the folder that contains it.
Use The Command Palette
The dashboard is the easiest path for most users, but every major function is also available from the Visual Studio Code Command Palette.
| Command |
What It Does |
| Accessibility Scanner: Open Accessibility Scanner |
Opens the dashboard. |
| Accessibility Scanner: Scan Current File for Accessibility Issues |
Scans the active editor file. |
| Accessibility Scanner: Scan Workspace for Accessibility Issues |
Scans supported workspace files. |
| Accessibility Scanner: Export Accessibility Scan Results |
Exports the latest results. |
| Accessibility Scanner: Clear Accessibility Scan Results |
Clears current scanner findings from the editor and Problems panel. |
| Accessibility Scanner: Toggle Accessibility Auto Scan |
Turns automatic scanning on or off. |
| Accessibility Scanner: Go to Next Accessibility Issue |
Moves to the next finding. |
| Accessibility Scanner: Go to Previous Accessibility Issue |
Moves to the previous finding. |
Useful shortcuts:
| Action |
Windows/Linux |
macOS |
| Scan current file |
Ctrl+Shift+A |
Cmd+Shift+A |
| Scan workspace |
Ctrl+Shift+Alt+A |
Cmd+Shift+Alt+A |
| Export results |
Ctrl+Shift+Alt+E |
Cmd+Shift+Alt+E |
| Clear results |
Ctrl+Shift+Alt+C |
Cmd+Shift+Alt+C |
| Next issue |
Alt+] |
Ctrl+Alt+] |
| Previous issue |
Alt+[ |
Ctrl+Alt+[ |
Automatic Scanning
Automatic scanning helps users catch accessibility issues while they work.
| State |
Behavior |
| Auto scan on |
Supported files scan shortly after edits and on save. |
| Auto scan off |
Scans run only when the user starts them manually. |
Automatic scans are AI-first when AI is enabled and available. If AI is unavailable, disabled, blocked by workspace trust, or the file is over the AI size limit, the extension automatically uses pattern-based scanning. The user does not need to choose the fallback manually.
Inactive comments are ignored during scanning. This reduces false positives from commented-out HTML, CSS, or script examples.
What The Scanner Looks For
| Area |
Examples |
| Images and media |
Missing alt text, unclear image descriptions, media labels that need review. |
| Forms |
Inputs without accessible labels, unclear form controls, missing relationships between labels and fields. |
| Keyboard access |
Clickable elements that are not reachable or usable by keyboard. |
| ARIA |
Missing, incomplete, or risky ARIA roles and attributes. |
| Color contrast |
Text colors that may be difficult for low-vision users to read. |
| Page structure |
Missing language declarations, unclear headings, and structural issues. |
| Motion and focus |
Removed focus outlines, motion patterns that may need reduced-motion support. |
Enterprise Behavior
| Topic |
Behavior |
| Accessibility-only extension |
The extension focuses only on accessibility scanning and reporting. |
| Pattern-based scanning |
Runs locally inside Visual Studio Code. |
| AI-powered scanning |
Uses the configured Visual Studio Code Language Model provider only when enabled and allowed. |
| AI fallback |
If AI cannot run, scans continue with pattern-based rules. |
| Workspace trust |
AI scanning can require a trusted workspace before analysis runs. |
| File size limits |
Large files can be kept on local pattern-based scanning. |
| Logging |
Raw AI responses are not logged by default. |
| User control |
Users can choose AI or Pattern from the dashboard before scanning. |
Recommended Workflow
- Open the file or workspace you want to review.
- Open the Accessibility dashboard.
- Choose AI when deeper review is allowed, or Pattern for local rule-based scanning.
- Select Scan File for focused review or Workspace for broader review.
- Review High findings first.
- Review Medium findings in context.
- Use Next, Previous, and Problems to move through issues.
- Select Export when results need to be shared.
- Use Clear when you want to remove the current scan view and start fresh.
Troubleshooting
| Situation |
What To Know |
| The dashboard does not appear |
Select the Accessibility icon in the Activity Bar or run Accessibility Scanner: Open Accessibility Scanner from the Command Palette. |
| Scan File is not available |
Open a supported UI file first. |
| Export is disabled |
Run a scan first so there are results to export. |
| AI does not run |
The scanner automatically falls back to Pattern if AI is unavailable, disabled, untrusted, or over the size limit. |
| A commented issue is ignored |
This is expected. Inactive comments are ignored to reduce false positives. |
| Workspace scan is slow |
Large workspaces take longer. Generated folders and dependencies can be excluded by settings. |
| Findings disappear after Clear |
Clear only removes current results. Run another scan to show current findings again. |