Skip to content
| Marketplace
Sign in
Visual Studio Code>Programming Languages>AccessifyNew to Visual Studio Code? Get it now.
Accessify

Accessify

Garvit Magoo

|
4 installs
| (0) | Free
Catch WCAG 2.1 AA violations in React/JSX/TSX/HTML as you type. 24 rules with auto-fixes, AI-powered fixes (OpenAI, Azure, Claude), and screen reader preview.
Installation
Launch VS Code Quick Open (Ctrl+P), paste the following command, and press enter.
Copied to clipboard
More Info

Accessify — VS Code Extension

Version Installs License: MIT WCAG 2.1 AA

Accessify brings accessibility testing directly into your VS Code editor. It scans React, JSX, TSX, and HTML files in real time against 24 WCAG 2.1 Level A & AA rules and offers one-click fixes (both deterministic and AI-powered) with confidence scoring and axe-core validation. A built-in screen reader simulator with voice playback lets you hear your UI the way assistive technology users experience it.

Why Accessify?

Most accessibility tools only catch issues at runtime in the browser. Accessify shifts accessibility left into your editor:

  • Catch issues before code review — real-time scanning as you type, not after deployment
  • Understand the impact — every issue links to WCAG criteria, axe-core docs, and impact levels
  • Fix with confidence — AI-generated fixes show confidence scores so you know what's safe to apply
  • Hear what users hear — the screen reader preview lets you experience your UI the way assistive technology users do
  • Zero config — works out of the box with 24 built-in rules; AI features are optional
  • HTML support — works with plain HTML files in addition to JSX/TSX

Features

  • Real-time scanning — Detects accessibility issues as you type with debounced diagnostics
  • 24 built-in rules — Covers WCAG 2.1 Level A & AA success criteria (see Rules)
  • Inline diagnostics — Issues appear as squiggly underlines in the editor
  • Quick Fixes — Click the lightbulb to apply fixes instantly with confidence % shown in the action title
  • Static Fix Current File — Preview and apply all deterministic fixes for the current file with a risk-aware preview panel
  • AI-powered fixes — Optional OpenAI / Azure OpenAI / Claude integration for context-aware fix suggestions
  • AI Fix Entire File — Let AI fix all issues in a file at once with a diff preview
  • Bulk AI Fix Workspace — AI-generate fixes for all files in the workspace (scans each file first, skips clean files)
  • AI Fix Caching — Both single-fix and full-file AI results are cached in-memory (10 min TTL) to avoid redundant API calls
  • Confidence & Reasoning — Every fix (static and AI) shows a confidence score (0–100%), color-coded risk level, WCAG references, and caveats
  • axe-core Integration — Fixes are cross-validated against axe-core rule metadata for impact levels, WCAG tags, and documentation links
  • Screen Reader Preview — Simulates how a screen reader would announce elements, with voice simulation (Web Speech API), per-row playback, speed control, and voice selection
  • Accessibility Score — Live score (0–100) in the status bar with severity breakdown; click to view report
  • Visual Settings Panel — Configure rules, AI provider, exclude patterns, and performance settings via a dedicated UI
  • Test Generation — Auto-generate accessibility test cases from detected issues
  • CI/CD Export — Export SARIF (for GitHub Code Scanning) or JSON reports
  • Configurable — Enable/disable rules, set severity overrides, and exclude files via .a11yrc.json or the Settings panel
  • Config-aware reports — Disabled rules and excluded files are respected in reports and exports

Rules

Accessify ships with 24 rules covering WCAG 2.1 Level A and AA success criteria:

Rule WCAG Severity Description
img-alt 1.1.1 Error <img> elements must have an alt attribute
button-label 4.1.2 Error Buttons must have accessible names (aria-label, text, etc.)
aria-role 4.1.2 Error ARIA role values must be valid WAI-ARIA roles
form-label 1.3.1 Warning Form inputs must have associated labels
click-events-have-key-events 2.1.1 Warning Non-interactive elements with onClick need keyboard handlers
aria-pattern 4.1.2 Error ARIA widget patterns must be correctly structured
color-contrast 1.4.3 Warning Inline and Tailwind styles must meet WCAG AA contrast ratio
heading-order 1.3.1 Warning Heading levels must follow a logical hierarchy
autocomplete-valid 1.3.5 Warning Personal data inputs must have valid autoComplete
no-mouse-only-hover 1.4.13 Warning Hover content must also be keyboard-accessible
no-autofocus 2.4.3 Warning autoFocus can disorient screen reader users on page load
interactive-supports-focus 2.1.1 Warning Interactive elements must be focusable for keyboard users
no-noninteractive-element-interactions 4.1.2 Warning Non-interactive elements should not have event handlers
svg-has-accessible-name 1.1.1 Warning SVG elements must have a <title>, aria-label, or aria-labelledby
nextjs-image-alt 1.1.1 Error Next.js <Image> must have an alt attribute
nextjs-head-lang 3.1.1 Error Next.js <Html> must have a lang attribute
nextjs-link-text 1.1.1 Warning Next.js <Link> must have discernible text
anchor-is-valid 2.4.4 Warning Anchors must have a real href; flags # and javascript:void(0)
focus-visible 2.4.7 Warning Elements must not suppress focus indicators without an alternative
label-has-associated-control 1.3.1 Warning <label> must be linked to a control via htmlFor or wrapping
media-has-caption 1.2.2 Error <video>/<audio> must have captions (unless muted)
page-title 2.4.2 Warning <Head> must contain a <title> element
prefer-semantic-elements 1.3.1 Warning Use native elements (e.g. <nav>) instead of <div role="...">
skip-link 2.4.1 Hint Layout components should include a "Skip to content" link

Getting Started

Install from Marketplace

Search for Accessify in the VS Code Extensions panel, or run:

code --install-extension garvit-magoo.accessify

Install from VSIX

code --install-extension accessify-1.1.0.vsix

Usage

  1. Open any .tsx, .jsx, or .html file — issues appear inline automatically
  2. Hover over a squiggly underline to see the issue detail and WCAG reference
  3. Click the lightbulb (or press Ctrl+.) to see Quick Fix options with confidence scores
  4. Click the score in the status bar to view the full accessibility report
  5. Use keyboard shortcuts for fast access (see below)

Commands

Open the Command Palette (Ctrl+Shift+P / Cmd+Shift+P) and type Accessify:

Command Description
Accessify: Show Accessibility Report Open the visual report panel (file or workspace)
Accessify: Screen Reader Preview Simulate screen reader announcements with voice playback
Accessify: Static Fix Current File Preview and apply all static fixes for the current file
Accessify: AI Fix Entire File AI-generated fixes for all issues (requires AI provider)
Accessify: Bulk AI Fix Workspace AI-fix all files in the workspace (scans first, skips clean files)
Accessify: Static Fix Workspace Apply static fixes across the entire workspace
Accessify: Generate A11y Unit Tests Auto-generate test cases from detected issues
Accessify: Export Report Export SARIF or JSON for CI/CD integration
Accessify: Open Settings Visual settings panel for rules, AI, and preferences
Accessify: Set AI API Key Store your API key securely

Keyboard Shortcuts

Shortcut Command
Ctrl+Alt+R (Cmd+Alt+R) Show Report
Ctrl+Alt+F (Cmd+Alt+F) Static Fix Current File

Configuration

Visual Settings Panel

Run Accessify: Open Settings from the Command Palette to configure everything via a visual UI — AI provider, model, rule toggles, exclude patterns, and performance tuning.

VS Code Settings

Setting Default Description
a11y.scanOnSave true Auto-scan on file save
a11y.scanOnOpen true Auto-scan when a file is opened
a11y.severity "warning" Default diagnostic severity
a11y.aiProvider "none" AI provider: "none", "openai", "azure-openai", "claude"
a11y.aiEndpoint "" Azure OpenAI endpoint URL
a11y.aiModel "" Model name (auto-detected per provider if empty)
a11y.aiBatchConcurrency 10 Files processed in parallel during bulk AI fix (1–10)
a11y.scanConcurrency 8 Files scanned in parallel during workspace scans (1–32)

Enable AI Fixes

  1. Run Accessify: Set AI API Key from the Command Palette to store your key securely
  2. Set the provider in settings (or use the Settings panel):
{
  "a11y.aiProvider": "openai"
}

For Azure OpenAI, also set the endpoint:

{
  "a11y.aiProvider": "azure-openai",
  "a11y.aiEndpoint": "https://your-resource.openai.azure.com",
  "a11y.aiModel": "your-deployment-name"
}

For Claude (Anthropic):

{
  "a11y.aiProvider": "claude"
}

Project-Level Config (.a11yrc.json)

Create a .a11yrc.json in your workspace root to customize rules and exclusions:

{
  "rules": {
    "color-contrast": { "severity": "error" },
    "heading-order": false
  },
  "exclude": [
    "**/test/**",
    "**/storybook/**"
  ],
  "aiExclude": [
    "**/legacy/**"
  ]
}

Disabled rules are excluded from diagnostics, reports, and CI/CD exports.

CI/CD Integration

Export a SARIF report and upload it to GitHub Code Scanning:

# .github/workflows/a11y.yml
- name: Upload SARIF
  uses: github/codeql-action/upload-sarif@v3
  with:
    sarif_file: a11y-report.sarif

Development

git clone https://github.com/garvit-magoo/accessify.git
cd accessify
npm install
npm run compile

Press F5 in VS Code to launch the Extension Development Host.

Run Tests

npm test

Package

npx @vscode/vsce package

Architecture

src/
├── extension.ts          # Extension entry point, command registration
├── diagnostics.ts        # Real-time diagnostic pipeline
├── codeActions.ts        # Quick fixes, static fix, AI fix commands
├── config.ts             # .a11yrc.json loader with caching
├── statusBar.ts          # Accessibility score status bar item
├── types.ts              # Shared type definitions
├── ai/
│   ├── caller.ts         # Shared AI API caller with retry/backoff
│   ├── provider.ts       # Single-issue AI fix with caching
│   └── fullFileFix.ts    # Full-file AI fix with caching
├── scanner/
│   ├── astScanner.ts     # AST walker, rule orchestration
│   ├── axeIntegration.ts # axe-core metadata, fix validation
│   ├── jsxValidator.ts   # JSX syntax validation
│   └── rules/            # 24 individual rule checkers
└── webview/
    ├── reportPanel.ts    # Accessibility report panel
    ├── diffPreviewPanel.ts       # AI fix diff preview
    ├── bulkFixPreviewPanel.ts    # Bulk fix preview
    ├── screenReaderPanel.ts      # Screen reader simulator
    ├── configPanel.ts    # Visual settings panel
    └── utils.ts          # Shared webview utilities

License

MIT

  • Contact us
  • Jobs
  • Privacy
  • Manage cookies
  • Terms of use
  • Trademarks
© 2026 Microsoft