Agent skill

Desktop A11y Specialist

by Community-Access in Community-Access/accessibility-agents

Desktop a11y APIs: UI Automation, MSAA/IAccessible2, NSAccessibility.

MITAuto-check passedFrontend & Design

Install Desktop A11y Specialist

skills CLI
$ npx skills add Community-Access/accessibility-agents --skill desktop-a11y-specialist -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install Community-Access/accessibility-agents desktop-a11y-specialist --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/Community-Access/accessibility-agents.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/desktop-a11y-specialist .claude/skills/desktop-a11y-specialist && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
desktop-a11y-specialist
GitHub stars
423
Token cost
~1.3k tokens
SKILL.md length
490 words
Files
3 (incl. references)
Skills in repo
108
Repo updated
First seen
Licence
MIT

At a glance

Desktop a11y APIs: UI Automation, MSAA/IAccessible2, NSAccessibility.

  • Works in 5 steps: Platform APIs first. UIA on Windows,… → Name, Role, Value, State. Every… → Keyboard is the baseline. If it doesn't… → …
  • Tasks that involve Accessibility
  • SKILL.md covers Desktop Accessibility Specialist, Core Principles, Platform Accessibility APIs and wxPython Accessibility, plus 6 more sections
  • Instructions only: no scripts, shell commands, URLs or credentials in SKILL.md

What it does

Desktop A11y Specialist is an agent skill from Community-Access/accessibility-agents. Desktop a11y APIs: UI Automation, MSAA/IAccessible2, NSAccessibility.

Its SKILL.md is about 1.3k tokens, which your agent loads only when the skill is triggered. The skill folder holds 4 other files, including reference files (for example `agents/openai.yaml` and `references/accessibility-audit-mode.md`).

It sits in Frontend & Design, covering Accessibility. It works with macOS. The repository describes itself as: Accessibility review agents for Claude Code, GitHub Copilot, and Claude Desktop. Eleven specialists that enforce WCAG 2.2 AA compliance so AI coding tools stop generating… The licence is MIT.

When your agent uses it

  • Tasks that involve Accessibility

Example prompts

  • “/desktop-a11y-specialist”

Requirements

  • Python 3

Workflow steps

5 steps, taken from the first numbered list in SKILL.md.

  1. Platform APIs first. UIA on Windows, NSAccessibility on macOS. The API dictates what screen readers can see.
  2. Name, Role, Value, State. Every interactive element must expose all four correctly.
  3. Keyboard is the baseline. If it doesn't work with keyboard alone, it's not accessible.
  4. Test with real screen readers. Automated checks catch 30-40%. Manual testing catches the rest.
  5. Cross-team awareness. Desktop apps often embed web views or generate documents -- coordinate with web and document teams.

What it can do on your machine

Read from SKILL.md and the folder at commit decf6ba. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    No scripts in the folder and no shell commands in SKILL.md (its code samples are python).

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Desktop A11y Specialist loads about 1.3k tokens when it runs, and up to ~2k if it reads all its reference files. Until then it costs about 23 tokens; SKILL.md has 490 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~23
When it runs · the whole SKILL.md, loaded when a task matches
~1.3k
With references · SKILL.md plus every file in references/, read only if the agent opens them
~2k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from Community-Access/accessibility-agents at commit decf6ba, republished under its MIT licence (© Community-Access). 490 words, ~1,297 tokens.

Download SKILL.mdSave it as .claude/skills/desktop-a11y-specialist/SKILL.md (or your agent's skills folder). This skill also uses 2 other files; get the full folder from GitHub.
name
desktop-a11y-specialist
description
Desktop a11y APIs: UI Automation, MSAA/IAccessible2, NSAccessibility.
license
MIT
disable-model-invocation
true
metadata.tier
specialist
metadata.domain
desktop
metadata.output
findings
metadata.effort
medium
metadata.title
Desktop Accessibility Specialist

Desktop Accessibility Specialist

Skills: python-development

You are a desktop application accessibility specialist -- an expert in making desktop software fully usable by people with disabilities. You understand platform accessibility APIs, screen reader interaction models, and the complete lifecycle of accessible control design across Windows and macOS.

You receive handoffs from the Developer Hub when a task requires deep desktop accessibility expertise. You also work standalone when invoked directly. You coordinate with the Web Accessibility and Document Accessibility teams when desktop apps interact with web content or documents.


Core Principles

  1. Platform APIs first. UIA on Windows, NSAccessibility on macOS. The API dictates what screen readers can see.
  2. Name, Role, Value, State. Every interactive element must expose all four correctly.
  3. Keyboard is the baseline. If it doesn't work with keyboard alone, it's not accessible.
  4. Test with real screen readers. Automated checks catch 30-40%. Manual testing catches the rest.
  5. Cross-team awareness. Desktop apps often embed web views or generate documents -- coordinate with web and document teams.

Platform Accessibility APIs

Windows: UI Automation (UIA)
  • AutomationElement -- node in the UIA tree
  • ControlType -- Button, Edit, List, Tree, CheckBox, etc.
  • Name -- human-readable label screen readers announce
  • Patterns -- InvokePattern, ValuePattern, SelectionPattern, ExpandCollapsePattern, TogglePattern, ScrollPattern, RangeValuePattern, GridPattern
  • Properties -- IsEnabled, IsKeyboardFocusable, HasKeyboardFocus, BoundingRectangle
Windows: MSAA / IAccessible2 (Legacy)
  • accName, accRole, accValue, accState, accDescription
  • Still used as fallback by some screen readers
macOS: NSAccessibility
  • accessibilityRole, accessibilityLabel, accessibilityValue, isAccessibilityElement

wxPython Accessibility

python
# CORRECT -- use StaticText immediately before the control in the sizer:
label = wx.StaticText(panel, label="Search:")
self.search_ctrl = wx.TextCtrl(panel)
sizer.Add(label, 0, wx.ALL, 5)
sizer.Add(self.search_ctrl, 0, wx.EXPAND | wx.ALL, 5)

# WRONG -- SetName() does NOT make controls accessible to screen readers:
# self.search_ctrl.SetName("Search documents")  # Ignored by NVDA/VoiceOver

# Custom widgets -- override GetAccessible():
class AccessibleScorePanel(wx.Panel):
    def GetAccessible(self):
        return ScorePanelAccessible(self)

class ScorePanelAccessible(wx.Accessible):
    def GetName(self, childId):
        return (wx.ACC_OK, f"Score: {self.GetWindow().current_score}")
    def GetRole(self, childId):
        return (wx.ACC_OK, wx.ROLE_SYSTEM_INDICATOR)

Focus Management Rules

  1. Focus must be visible on every focused control
  2. Tab order follows logical reading order
  3. Focus returns to trigger after dialog closes
  4. Focus moves to neighbor after item deletion
  5. Modal dialogs trap focus correctly
  6. Programmatic focus changes are announced

Show full SKILL.md (211 more words)Show less

Visual Accessibility

  • Never hardcode colors. Use wx.SystemSettings.GetColour().
  • Never use color alone. Add text, icons, or patterns.
  • 4.5:1 text contrast, 3:1 UI component contrast.
  • Respect system font size and DPI scaling.

Cross-Team Integration

  • Web content in desktop apps: Route to web accessibility wizard for embedded WebView auditing
  • Document output from apps: Route to document accessibility wizard for Office/PDF output auditing
  • Desktop a11y testing: Route to desktop a11y testing coach for screen reader verification
  • Tool building: Route to a11y tool builder for automated scanning tool development

Behavioral Rules

  1. Always identify the platform API before suggesting code
  2. Test recommendations with real screen readers -- name the exact expected announcement
  3. Include exact wx.StaticText label placement / GetAccessible() code
  4. Route wxPython implementation to wxpython-specialist
  5. Route testing to desktop-a11y-testing-coach
  6. Route web content to web-accessibility-wizard
  7. Route document output to document-accessibility-wizard
  8. System colors over hardcoded colors
  9. Announce before moving focus
  10. Keyboard interaction for every control you touch

Reference files

Read one only when the task reaches it. Do not read them all up front.

  • references/accessibility-audit-mode.md - Accessibility Audit Mode

Output contract

Return only JSON matching skills/a11y-core/schemas/findings.schema.json. No prose, no summary, no restated instructions. One object, one array of findings.

Shared rules, dispatch contract and schemas: skills/a11y-core/SKILL.md. Authoritative specifications for this skill: skills/a11y-core/references/sources.md.

© Community-Access, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 2 other files (references) in skills/desktop-a11y-specialist of Community-Access/accessibility-agents.

  • SKILL.md
  • agents/openai.yaml
  • references/accessibility-audit-mode.md

Open the folder on GitHubat commit decf6ba

Compare with similar skills

Desktop A11y Specialist next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Desktop A11y Specialist compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Desktop A11y Specialist this skillCommunity-Access/accessibility-agents423—~1.3kAutomated safety check: PassMIT
Jarvis Setupethanplusai/jarvis846—~2.5kAutomated safety check: NotesCustom licence
UI Review TahoeKartikLabhshetwar/better-shot2.4k2 repos~1.7kAutomated safety check: PassCustom licence
AccessibilityVeryGoodOpenSource/vgv-ai-flutter-plugin170—~4.2kAutomated safety check: PassMIT
Gui Debugnatsukium/dotfiles106—~909Automated safety check: PassCC0-1.0
App Controlvellum-ai/vellum-assistant1.4k—~868Automated safety check: PassMIT

Similar skills

  • Jarvis Setup

    ethanplusai/jarvis

    A skill your agent uses when helping someone install, configure, or debug a fresh clone of JARVIS (this repo) — especially "the mic doesn't work", "JARVIS says his language systems are down", any…

    846 GitHub stars~2.5k tokensUpdated 1 mo ago
    Frontend & DesignAuto-check: notes
  • UI Review Tahoe

    KartikLabhshetwar/better-shot

    Comprehensive UI/UX review for macOS Tahoe apps. An agent skill from KartikLabhshetwar/better-shot.

    2.4k GitHub starsUsed in 2 repos~1.7k tokens
    Frontend & DesignAuto-check passed
  • Accessibility

    VeryGoodOpenSource/vgv-ai-flutter-plugin

    Audits or remediates Flutter widgets against WCAG 2.2 conformance levels A, AA, or AAA across iOS, Android, Web, macOS, Windows, and Linux, covering Semantics labels and screen reader output under…

    170 GitHub stars~4.2k tokensUpdated 5 days ago
    Frontend & DesignAuto-check passed
  • Gui Debug

    natsukium/dotfiles

    Verify a rendering or window-chrome change in any macOS GUI app unattended — find its CGWindowID via JXA, capture that window alone (with per-pixel alpha) using screencapture -l, and read exact RGBA…

    106 GitHub stars~909 tokensUpdated today
    Frontend & DesignAuto-check passed
  • App Control

    vellum-ai/vellum-assistant

    Drive a specific named macOS app via raw input bypassing the Accessibility tree

    1.4k GitHub stars~868 tokensUpdated yesterday
    Frontend & DesignAuto-check passed
  • Apple Hig Helper

    shepherdjerred/monorepo

    Apple Human Interface Guidelines - comprehensive design guidance for iOS, macOS, visionOS, watchOS, tvOS, and Apple technologies with summaries of 174 topics.

    112 GitHub stars~4.6k tokensUpdated yesterday
    Frontend & DesignAuto-check passed

More from Community-Access/accessibility-agents

All 108 skills in this repo
  • A11y Core

    Community-Access/accessibility-agents

    Shared contract for the Accessibility Agents skills - dispatch, findings schema, report rules.

    423 GitHub stars~1.2k tokensUpdated 17 days ago
    Auto-check passed
  • Kb Web Scanning

    Community-Access/accessibility-agents

    Reference data, not a reviewer. An agent skill from Community-Access/accessibility-agents.

    423 GitHub stars~1.2k tokensUpdated 17 days ago
    Auto-check passed
  • Accessibility Lead

    Community-Access/accessibility-agents

    Web UI accessibility lead. An agent skill from Community-Access/accessibility-agents.

    423 GitHub stars~932 tokensUpdated 17 days ago
    Auto-check passed
  • Alt Text Headings

    Community-Access/accessibility-agents

    Alt text, SVGs, figures, charts, heading order, page titles and landmarks.

    423 GitHub stars~1.5k tokensUpdated 17 days ago
    Auto-check passed
  • Aria Specialist

    Community-Access/accessibility-agents

    ARIA roles, states and properties for custom widgets and dynamic content.

    423 GitHub stars~1.6k tokensUpdated 17 days ago
    Auto-check passed
  • Cognitive Accessibility

    Community-Access/accessibility-agents

    Plain language, WCAG 2.2 cognitive criteria, COGA guidance and auth UX.

    423 GitHub stars~1.4k tokensUpdated 17 days ago
    Auto-check passed

Works with

Questions about Desktop A11y Specialist

What does Desktop A11y Specialist do?

Desktop a11y APIs: UI Automation, MSAA/IAccessible2, NSAccessibility. Desktop A11y Specialist is an agent skill from Community-Access/accessibility-agents. Desktop a11y APIs: UI Automation, MSAA/IAccessible2, NSAccessibility.

When should I use Desktop A11y Specialist?

Desktop A11y Specialist fits situations like: tasks that involve Accessibility.

How do I install Desktop A11y Specialist in Claude Code?

Run `npx skills add Community-Access/accessibility-agents --skill desktop-a11y-specialist -a claude-code`. Or copy the skill folder (skills/desktop-a11y-specialist in Community-Access/accessibility-agents) into .claude/skills/desktop-a11y-specialist in your project. Claude Code loads it when a task matches its description.

How do I install Desktop A11y Specialist in Codex?

Run `npx skills add Community-Access/accessibility-agents --skill desktop-a11y-specialist -a codex`. Or copy the skill folder (skills/desktop-a11y-specialist in Community-Access/accessibility-agents) into .agents/skills/desktop-a11y-specialist in your project. Codex loads it when a task matches its description.

Can I use Desktop A11y Specialist in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add Community-Access/accessibility-agents --skill desktop-a11y-specialist -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/desktop-a11y-specialist, .gemini/skills/desktop-a11y-specialist, .github/skills/desktop-a11y-specialist and .opencode/skills/desktop-a11y-specialist in your project.

What does Desktop A11y Specialist need to run?

SKILL.md names no scripts, command-line tools or credentials: Desktop A11y Specialist is instructions for the agent only. Our summary lists: Python 3.

Does Desktop A11y Specialist access the network?

SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.

Is Desktop A11y Specialist safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Desktop A11y Specialist use?

Desktop A11y Specialist is published under the MIT licence (declared in SKILL.md). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Desktop A11y Specialist use?

About 1.3k tokens (SKILL.md is roughly 5.2k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 661 tokens, read only when the agent opens those files.

What are the alternatives to Desktop A11y Specialist?

Skills that share tags, products or a category with Desktop A11y Specialist: Jarvis Setup (ethanplusai/jarvis, 846 stars), UI Review Tahoe (KartikLabhshetwar/better-shot, 2.4k stars), Accessibility (VeryGoodOpenSource/vgv-ai-flutter-plugin, 170 stars) and Gui Debug (natsukium/dotfiles, 106 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Desktop A11y Specialist?

Community-Access (a GitHub organization) maintains it in Community-Access/accessibility-agents, which has 423 GitHub stars. The repository holds 108 skills in this directory. The repository was last updated on September 23, 2026.

Source: Community-Access/accessibility-agents on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.