Install
$ agentstack add skill-southleft-skills-for-figma-scan-code-accessibility-figma ✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.
Security review
✓ PassedNo issues found. Passed automated security review. · v0.1.0 How review works →
- ✓ Prompt-injection patterns
- ✓ Secret / credential exfiltration
- ✓ Dangerous shell & filesystem operations
- ✓ Untrusted network calls
- ✓ Known-malicious package signatures
What it can access
- ✓ Network access No
- ✓ Filesystem access No
- ✓ Shell / process execution No
- ✓ Environment & secrets No
- ✓ Dynamic code execution No
From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.
Verified badge
Passed review? Show it. Paste this badge into your README, it links to the public security report.
Reliability & compatibility
Declared compatibility
Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.
We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.
How agent discovery & health will work →About
scan-code-accessibility-figma — axe-core + JSDOM scan of HTML
Run axe-core (Deque's accessibility engine) against an HTML string using JSDOM. This is the code side of the accessibility story: it checks the markup your Figma-to-code workflow produced. It pairs with lint-design-figma (design side) to cover both ends.
Not a use_figma skill. This runs in plain Node — no Figma file, no Plugin API. axe-core owns the rule database; this skill never invents rules.
Skill boundaries
- Design-side visual a11y (contrast, focus rings, target size, color-only) → use
lint-design-figma. Those rules are intentionally disabled here.
- Per-component design scorecard → use
audit-accessibility-figma. - Design-vs-code parity → use
check-design-parity-figma(feed it thecodeSpec.accessibility
this scan can emit).
- This skill does not use
use_figma, so thefigma-useconventions do not apply.
Why visual rules are disabled
JSDOM provides a DOM but no layout engine and no computed visual styles — there is nothing to measure pixels or rendered colors against. So axe's visual rules would always be "incomplete" or wrong. The scan disables them explicitly:
color-contrastandcolor-contrast-enhanced— need rendered colors.link-in-text-block— needs surrounding text layout.target-size— needs rendered box dimensions.
Everything structural/semantic (ARIA, roles, names, labels, alt, headings, landmarks, lang, dup IDs, tabindex, ~50 rules total) runs normally. For the visual half, run lint-design-figma on the design.
Usage
- Install deps once (in this skill's
scripts/dir):
``bash cd scripts && npm install ` Installs axe-core and jsdom`.
- Run the scan against an HTML file or an inline string:
``bash node scan.mjs path/to/component.html node scan.mjs --html 'Save' `` Optional flags:
--tags wcag22aa— filter to a WCAG tag set (wcag2a,wcag2aa,wcag21aa,wcag22aa,best-practice). Repeatable / comma-separated.--context '#my-component'— scope the scan to a CSS selector.--include-passing— include counts of passing / incomplete / inapplicable rules.--map-to-codespec— also emit acodeSpecAccessibilityobject (semantic element, role, aria-label, focusVisible, keyboard interactions, disabled/error support) ready to drop intocheck-design-parity-figma'scodeSpec.accessibility.
- Read the JSON on stdout: violations grouped by rule with
severity(critical/warning/info from
axe impact), wcagTags, helpUrl, and up to 10 offending nodes each, plus a summary.
A bare HTML fragment is auto-wrapped in …… before scanning.
Output shape
{
"engine": "axe-core", "version": "4.x", "mode": "jsdom-structural",
"note": "JSDOM mode: structural/semantic checks only. Visual rules disabled — use lint-design-figma.",
"categories": [ { "rule": "button-name", "severity": "critical", "count": 1, "description": "...", "wcagTags": ["wcag2a","wcag412"], "helpUrl": "...", "nodes": [ { "html": "...", "target": ["button"], "failureSummary": "..." } ] } ],
"summary": { "critical": 1, "warning": 0, "info": 0, "total": 1 }
}
Severity mapping: axe critical/serious → critical, moderate → warning, minor → info.
Source & license
This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.
- Author: southleft
- Source: southleft/skills-for-figma
- License: MIT
Install and usage instructions live in the source repository linked above.
Reviews
No reviews yet, be the first.
Write a review
Versions
- v0.1.0 Imported from the upstream source.