Web Interface Guidelines Reviewer
vercel-labs/openreview
Review UI code for Web Interface Guidelines compliance. Use when asked to "review my UI", "check accessibility", "audit design", "review UX", or "check my…
Web accessibility expertise covering WCAG 2.2 conformance, audit methodology, ARIA patterns, keyboard navigation, screen reader testing, focus management, form accessibility, and automated vs manual…
$ npx skills add FerroxLabs/wayland --skill accessibility-auditor -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install FerroxLabs/wayland accessibility-auditor --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/FerroxLabs/wayland.git skills-src && mkdir -p .claude/skills && cp -r skills-src/src/process/resources/skills-library/bodies/skills/web-development/accessibility-auditor .claude/skills/accessibility-auditor && rm -rf skills-srcUse ~/.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/
Install the "accessibility-auditor" agent skill from https://github.com/FerroxLabs/wayland/tree/main/src/process/resources/skills-library/bodies/skills/web-development/accessibility-auditor into .claude/skills/accessibility-auditor/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "accessibility-auditor", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/FerroxLabs/wayland/tree/main/src/process/resources/skills-library/bodies/skills/web-development/accessibility-auditorType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add FerroxLabs/wayland --skill accessibility-auditor -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install FerroxLabs/wayland accessibility-auditor --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/FerroxLabs/wayland.git skills-src && mkdir -p .agents/skills && cp -r skills-src/src/process/resources/skills-library/bodies/skills/web-development/accessibility-auditor .agents/skills/accessibility-auditor && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "accessibility-auditor" agent skill from https://github.com/FerroxLabs/wayland/tree/main/src/process/resources/skills-library/bodies/skills/web-development/accessibility-auditor into .agents/skills/accessibility-auditor/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "accessibility-auditor", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add FerroxLabs/wayland --skill accessibility-auditor -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install FerroxLabs/wayland accessibility-auditor --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/FerroxLabs/wayland.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/src/process/resources/skills-library/bodies/skills/web-development/accessibility-auditor .cursor/skills/accessibility-auditor && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "accessibility-auditor" agent skill from https://github.com/FerroxLabs/wayland/tree/main/src/process/resources/skills-library/bodies/skills/web-development/accessibility-auditor into .cursor/skills/accessibility-auditor/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "accessibility-auditor", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/FerroxLabs/wayland.git --path src/process/resources/skills-library/bodies/skills/web-development/accessibility-auditor--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add FerroxLabs/wayland --skill accessibility-auditor -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install FerroxLabs/wayland accessibility-auditor --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/FerroxLabs/wayland.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/src/process/resources/skills-library/bodies/skills/web-development/accessibility-auditor .gemini/skills/accessibility-auditor && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "accessibility-auditor" agent skill from https://github.com/FerroxLabs/wayland/tree/main/src/process/resources/skills-library/bodies/skills/web-development/accessibility-auditor into .gemini/skills/accessibility-auditor/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "accessibility-auditor", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install FerroxLabs/wayland accessibility-auditorInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add FerroxLabs/wayland --skill accessibility-auditor -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/FerroxLabs/wayland.git skills-src && mkdir -p .github/skills && cp -r skills-src/src/process/resources/skills-library/bodies/skills/web-development/accessibility-auditor .github/skills/accessibility-auditor && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "accessibility-auditor" agent skill from https://github.com/FerroxLabs/wayland/tree/main/src/process/resources/skills-library/bodies/skills/web-development/accessibility-auditor into .github/skills/accessibility-auditor/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "accessibility-auditor", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add FerroxLabs/wayland --skill accessibility-auditor -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install FerroxLabs/wayland accessibility-auditor --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/FerroxLabs/wayland.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/src/process/resources/skills-library/bodies/skills/web-development/accessibility-auditor .opencode/skills/accessibility-auditor && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "accessibility-auditor" agent skill from https://github.com/FerroxLabs/wayland/tree/main/src/process/resources/skills-library/bodies/skills/web-development/accessibility-auditor into .opencode/skills/accessibility-auditor/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "accessibility-auditor", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
accessibility-auditorWeb accessibility expertise covering WCAG 2.2 conformance, audit methodology, ARIA patterns, keyboard navigation, screen reader testing, focus management, form accessibility, and automated vs manual…
Accessibility Auditor is an agent skill from FerroxLabs/wayland. Web accessibility expertise covering WCAG 2.2 conformance, audit methodology, ARIA patterns, keyboard navigation, screen reader testing, focus management, form accessibility, and automated vs manual testing strategies. Use when the user asks about accessibility auditor, accessibility auditor best practices, or needs guidance on accessibility auditor implementation. Do NOT use when the user needs a different specialized skill or is asking about an unrelated technology domain.
Its SKILL.md is about 4.1k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.
It sits in Frontend & Design, covering Accessibility. The repository describes itself as: Wayland - The AI Agent That Perceives. Reasons. Acts. Evolves. The licence is Apache-2.0.
4 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit 4c030c7. It shows what the files ask for, not the result of running them.
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.
No scripts in the folder and no shell commands in SKILL.md (its code samples are html, typescript, css and markdown).
From the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Accessibility Auditor loads about 4.1k tokens when it runs. Until then it costs about 125 tokens; SKILL.md has 426 words of instructions outside code blocks.
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.
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.
The full file from FerroxLabs/wayland at commit 4c030c7, republished under its Apache-2.0 licence (© FerroxLabs). 426 words, ~4,146 tokens.
.claude/skills/accessibility-auditor/SKILL.md (or your agent's skills folder).Guide comprehensive accessibility implementation and auditing for web applications. This skill covers WCAG 2.2 conformance at all levels, practical ARIA patterns, testing methodology, and building accessibility into the development lifecycle.
Level A (Minimum):
- All non-text content has text alternatives
- Captions for prerecorded audio
- Content is meaningful without color alone
- Keyboard accessible (no keyboard traps)
- No content that flashes more than 3 times/second
- Pages have descriptive titles
- Focus order is logical
- Link purpose is determinable
Level AA (Standard -- target for most projects):
- Everything in A, plus:
- Captions for live audio
- Color contrast 4.5:1 (text), 3:1 (large text)
- Text resizable to 200% without loss
- Images of text avoided (use real text)
- Multiple ways to find pages (nav, search, sitemap)
- Headings and labels are descriptive
- Focus visible
- Consistent navigation and identification
- Error suggestion and prevention on forms
Level AAA (Enhanced):
- Everything in AA, plus:
- Sign language for prerecorded audio
- Color contrast 7:1 (text), 4.5:1 (large text)
- No timing limits
- No interruptions (user controls all)
- Re-authentication without data lossTools to run:
1. axe-core (via browser extension or CI)
2. Lighthouse accessibility audit
3. WAVE browser extension
4. ESLint with eslint-plugin-jsx-a11y
Automated tests catch:
- Missing alt text
- Missing form labels
- Color contrast violations
- Missing document language
- Duplicate IDs
- Missing landmark regions
- Invalid ARIA attributesKeyboard testing checklist:
[ ] Tab through entire page -- can you reach all interactive elements?
[ ] Shift+Tab -- does reverse order make sense?
[ ] Enter/Space -- do buttons and links activate?
[ ] Arrow keys -- do composite widgets (tabs, menus, listboxes) work?
[ ] Escape -- do modals and dropdowns close?
[ ] Focus is never trapped (except modals -- which should trap)
[ ] Focus indicator is always visible
[ ] Skip link present and functional
[ ] Focus order matches visual order
[ ] No unexpected focus changesTest with at minimum:
- NVDA + Firefox (Windows)
- VoiceOver + Safari (macOS/iOS)
- TalkBack + Chrome (Android)
Screen reader testing checklist:
[ ] Page title announced on load
[ ] Headings create logical outline (h1 -> h2 -> h3)
[ ] Landmarks navigable (main, nav, aside, footer)
[ ] Images have meaningful alt text (or empty alt for decorative)
[ ] Form fields announce labels, required state, errors
[ ] Dynamic content changes announced (live regions)
[ ] Tables have headers and captions
[ ] Links and buttons announce their purpose
[ ] Custom components announce role, name, state
[ ] Modal focus management works correctlyManual checks:
[ ] Content is understandable at 200% zoom
[ ] Content reflows at 320px width (no horizontal scroll)
[ ] Motion/animation respects prefers-reduced-motion
[ ] Touch targets are at least 24x24px (WCAG 2.2)
[ ] Error messages are clear and suggest fixes
[ ] Timeout warnings given with option to extend
[ ] Content makes sense with CSS disabled
[ ] Reading order matches visual orderPriority order:
1. Use native HTML elements (button, input, select, dialog, details)
2. If native element exists but needs styling, style the native element
3. Only use ARIA when no native element provides the semantics
Native HTML equivalents:
<button> instead of <div role="button">
<a href> instead of <span role="link">
<input type="checkbox"> instead of <div role="checkbox">
<dialog> instead of <div role="dialog">
<nav> instead of <div role="navigation">
<details> ./<summary> instead of custom accordion<!-- Tabs -->
<div role="tablist" aria-label="Account settings">
<button role="tab" id="tab-1" aria-selected="true" aria-controls="panel-1">
Profile
</button>
<button role="tab" id="tab-2" aria-selected="false" aria-controls="panel-2" tabindex="-1">
Security
</button>
</div>
<div role="tabpanel" id="panel-1" aria-labelledby="tab-1">
<!-- Profile content -->
</div>
<div role="tabpanel" id="panel-2" aria-labelledby="tab-2" hidden>
<!-- Security content -->
</div>
<!-- Disclosure (use <details> if possible) -->
<button aria-expanded="false" aria-controls="faq-1">
What is your return policy?
</button>
<div id="faq-1" hidden>
<p>You can return items within 30 days.</p>
# ... (condensed) ...
<div role="alert">
Your session will expire in 5 minutes.
</div>
<!-- Status -->
<div role="status" aria-live="polite">
3 results found
</div>aria-expanded="true|false" -> Disclosure, accordion, dropdown
aria-selected="true|false" -> Tabs, options, tree items
aria-checked="true|false|mixed" -> Checkboxes, switches
aria-pressed="true|false" -> Toggle buttons
aria-current="page|step|location|date|true" -> Current item
aria-disabled="true" -> Disabled (but still focusable)
aria-hidden="true" -> Hidden from assistive tech (NOT visually)
aria-invalid="true" -> Form validation error
aria-required="true" -> Required field
aria-busy="true" -> Loading state
aria-describedby="id" -> Additional description
aria-labelledby="id" -> Labelled by another element
aria-errormessage="id" -> Error message reference// Focus trap for modals
function Modal({ isOpen, onClose, children }: ModalProps) {
const modalRef = useRef<HTMLDivElement>(null);
const previousFocus = useRef<HTMLElement | null>(null);
useEffect(() => {
if (isOpen) {
previousFocus.current = document.activeElement as HTMLElement;
// Focus first focusable element in modal
const firstFocusable = modalRef.current?.querySelector<HTMLElement>(
'button, [href], input, select, textarea, [tabindex]:not([tabindex="-1"])'
);
firstFocusable?.focus();
}
return () => {
// Restore focus on close
previousFocus.current?.focus();
};
}, [isOpen]);
// Trap Tab key within modal
function handleKeyDown(e: KeyboardEvent) {
# ... (condensed) ...
<div className="modal-overlay" onClick={onClose}>
<div ref={modalRef} role="dialog" aria-modal="true" aria-labelledby="modal-title"
onKeyDown={handleKeyDown} onClick={e => e.stopPropagation()}>
{children}
</div>
</div>
);
}<body>
<a href="#main-content" class="skip-link">Skip to main content</a>
<header><!-- navigation --></header>
<main id="main-content" tabindex="-1">
<!-- Main content -->
</main>
</body>
<style>
.skip-link {
position: absolute;
top: -100%;
left: 0;
z-index: 9999;
padding: 1rem;
background: var(--color-brand);
color: white;
}
.skip-link:focus {
top: 0;
}
</style>// For composite widgets: tabs, toolbars, menu bars
function Toolbar({ items }: ToolbarProps) {
const [activeIndex, setActiveIndex] = useState(0);
function handleKeyDown(e: React.KeyboardEvent, index: number) {
let newIndex = index;
switch (e.key) {
case 'ArrowRight': newIndex = (index + 1) % items.length; break;
case 'ArrowLeft': newIndex = (index - 1 + items.length) % items.length; break;
case 'Home': newIndex = 0; break;
case 'End': newIndex = items.length - 1; break;
default: return;
}
e.preventDefault();
setActiveIndex(newIndex);
}
useEffect(() => {
document.getElementById(`tool-${activeIndex}`)?.focus();
}, [activeIndex]);
return (
<div role="toolbar" aria-label="Formatting">
{items.map((item, i) => (
<button key={i} id={`tool-${i}`} tabIndex={i === activeIndex ? 0 : -1}
onKeyDown={(e) => handleKeyDown(e, i)}>
{item.label}
</button>
))}
</div>
);
}WCAG AA Requirements:
Normal text (< 18pt or < 14pt bold): 4.5:1 contrast ratio
Large text (>= 18pt or >= 14pt bold): 3:1 contrast ratio
UI components and graphical objects: 3:1 contrast ratio
WCAG AAA Requirements:
Normal text: 7:1
Large text: 4.5:1
Tools:
- Chrome DevTools (inspect element -> color picker shows ratio)
- WebAIM Contrast Checker: [reference URL]
- Stark browser extension
- Polypane browser
Common failures:
- Placeholder text with insufficient contrast
- Disabled state text that is too faint
- Text over images without overlay
- Focus indicators that blend into background
- Links distinguished only by color (no underline)<!-- Properly labeled input -->
<label for="email">Email address</label>
<input id="email" type="email" required aria-describedby="email-hint email-error"
aria-invalid="true" />
<p id="email-hint" class="hint">We'll never share your email.</p>
<p id="email-error" class="error" role="alert">Please enter a valid email address.</p>
<!-- Group related inputs -->
<fieldset>
<legend>Shipping Address</legend>
<label for="street">Street</label>
<input id="street" type="text" autocomplete="street-address" />
<label for="city">City</label>
<input id="city" type="text" autocomplete="address-level2" />
</fieldset>
<!-- Radio group -->
<fieldset>
<legend>Preferred contact method</legend>
<label><input type="radio" name="contact" value="email" /> Email</label>
<label><input type="radio" name="contact" value="phone" /> Phone</label>
<label><input type="radio" name="contact" value="mail" /> Mail</label>
</fieldset>
<!-- Error summary at top of form -->
<div role="alert" aria-labelledby="error-heading">
<h2 id="error-heading">There are 2 errors in your form</h2>
<ul>
<li><a href="#email">Email address is required</a></li>
<li><a href="#password">Password must be at least 8 characters</a></li>
</ul>
</div><!-- Polite: announced when screen reader is idle -->
<div aria-live="polite">
Search returned 42 results
</div>
<!-- Assertive: interrupts current announcement -->
<div aria-live="assertive">
Your session has expired. Please log in again.
</div>
<!-- Role shortcuts -->
<div role="status">...</div> <!-- Equivalent to aria-live="polite" -->
<div role="alert">...</div> <!-- Equivalent to aria-live="assertive" -->
<!-- aria-atomic: announce entire region or just changes -->
<div aria-live="polite" aria-atomic="true">
Cart total: $42.00 <!-- Announces full text on change -->
</div><!-- Skeleton loading -->
<div aria-busy="true" aria-label="Loading user profile">
<div class="skeleton" aria-hidden="true"></div>
</div>
<!-- After load -->
<div aria-busy="false">
<h2>John Doe</h2>
<p>john@example.com</p>
</div>
<!-- Inline loading indicator -->
<button aria-disabled="true">
<span class="spinner" aria-hidden="true"></span>
Saving...
<span class="sr-only">Please wait, saving your changes</span>
</button>.sr-only {
position: absolute;
width: 1px;
height: 1px;
padding: 0;
margin: -1px;
overflow: hidden;
clip: rect(0, 0, 0, 0);
white-space: nowrap;
border: 0;
}
/* Focusable variant (for skip links) */
.sr-only-focusable:focus,
.sr-only-focusable:active {
position: static;
width: auto;
height: auto;
padding: inherit;
margin: inherit;
overflow: visible;
clip: auto;
white-space: inherit;
}// vitest + @testing-library + jest-axe
import { render } from '@testing-library/react';
import { axe, toHaveNoViolations } from 'jest-axe';
expect.extend(toHaveNoViolations);
test('LoginForm has no accessibility violations', async () => {
const { container } = render(<LoginForm />);
const results = await axe(container);
expect(results).toHaveNoViolations();
});
// Playwright accessibility testing
test('homepage meets accessibility standards', async ({ page }) => {
await page.goto('/');
const accessibilityScanResults = await new AxeBuilder({ page })
.withTags(['wcag2a', 'wcag2aa', 'wcag22aa'])
.analyze();
expect(accessibilityScanResults.violations).toEqual([]);
});Use this skill when:
Do NOT use this skill when:
# Accessibility Auditor Analysis
## Context Assessment
[Situation summary and constraints]
## Recommended Approach
[Primary recommendation with rationale]
## Implementation Steps
1. [Step with specific details]
2. [Step with specific details]
3. [Step with specific details]
## Trade-offs and Considerations
- [Key trade-off 1]
- [Key trade-off 2]
## Next Steps
- [Immediate action item]
- [Follow-up action item]Input: "Help me implement accessibility auditor for a medium-scale production application"
Output: A structured analysis covering current state assessment, recommended accessibility auditor approach with specific patterns, implementation roadmap with milestones, and risk mitigation strategies tailored to the application scale and constraints.
© FerroxLabs, Apache-2.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
Just SKILL.md in src/process/resources/skills-library/bodies/skills/web-development/accessibility-auditor of FerroxLabs/wayland.
Open the folder on GitHubat commit 4c030c7
Accessibility Auditor 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.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Accessibility Auditor this skillFerroxLabs/wayland | 608 | — | ~4.1k | Automated safety check: Pass | Apache-2.0 | |
| Web Interface Guidelines Reviewervercel-labs/openreview | 1.7k | 98 repos | ~308 | Automated safety check: Pass | None | |
| Accessibility Reviewmarkmead/hyperui | 12k | 1 repos | ~1.1k | Automated safety check: Pass | MIT | |
| Web Animation DesignbaptisteArno/typebot.io | 11k | 2 repos | ~2.7k | Automated safety check: Pass | Custom licence | |
| Accessibility Fixeribelick/ui-skills | 9.5k | 4 repos | ~1.2k | Automated safety check: Pass | MIT | |
| Wcag Audit PatternsvmDeshpande/ai-agent-automation | 178 | 11 repos | ~610 | Automated safety check: Pass | Apache-2.0 |
vercel-labs/openreview
Review UI code for Web Interface Guidelines compliance. Use when asked to "review my UI", "check accessibility", "audit design", "review UX", or "check my…
markmead/hyperui
Run a WCAG 2.1 AA accessibility audit on a design or page. An agent skill from markmead/hyperui.
baptisteArno/typebot.io
Guides easing, timing and animation choices for UI motion, based on a web animation course, and reviews existing animations in a before-and-after table.
ibelick/ui-skills
Audits and fixes HTML accessibility problems such as ARIA labels, keyboard navigation, focus management, contrast and form errors with minimal changes.
vmDeshpande/ai-agent-automation
Conduct WCAG 2.2 accessibility audits with automated testing, manual verification, and remediation guidance.
ibelick/ui-skills
Applies a fixed set of UI rules for stack, components, interaction, animation, typography and layout, or reviews a file against them with concrete fixes.
FerroxLabs/wayland
Install, start, connect, and troubleshoot visualization companion projects for Aion/OpenClaw, with Star-Office-UI as the default recommendation.
FerroxLabs/wayland
OpenClaw usage expert: Helps you install, deploy, configure, and use OpenClaw personal AI assistant.
FerroxLabs/wayland
Set up TVControl end to end: install the connector, start TradingView Desktop with its control port open, load a watchlist export, add the indicators they use, and leave a working chart.
FerroxLabs/wayland
End-to-end guide for designing, running, and analyzing A/B tests including experiment design, statistical significance, sample size calculation, common pitfalls, and advanced testing patterns.
FerroxLabs/wayland
Complete academic writing guide covering thesis and dissertation structure, journal article format using IMRaD, literature review methodology, citation management, the peer review process, and…
FerroxLabs/wayland
Organizational accessibility culture building expertise covering champion network design, accessibility training curricula, audit cadence and methodology, KPI definition and tracking, executive…
Categories
Web accessibility expertise covering WCAG 2.2 conformance, audit methodology, ARIA patterns, keyboard navigation, screen reader testing, focus management, form accessibility, and automated vs manual…. Accessibility Auditor is an agent skill from FerroxLabs/wayland.2 conformance, audit methodology, ARIA patterns, keyboard navigation, screen reader testing, focus management, form accessibility, and automated vs manual testing strategies.
Accessibility Auditor fits situations like: the user asks about accessibility auditor; accessibility auditor best practices; needs guidance on accessibility auditor implementation; the user needs a different specialized skill.
Run `npx skills add FerroxLabs/wayland --skill accessibility-auditor -a claude-code`. Or copy the skill folder (src/process/resources/skills-library/bodies/skills/web-development/accessibility-auditor in FerroxLabs/wayland) into .claude/skills/accessibility-auditor in your project. Claude Code loads it when a task matches its description.
Run `npx skills add FerroxLabs/wayland --skill accessibility-auditor -a codex`. Or copy the skill folder (src/process/resources/skills-library/bodies/skills/web-development/accessibility-auditor in FerroxLabs/wayland) into .agents/skills/accessibility-auditor in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add FerroxLabs/wayland --skill accessibility-auditor -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/accessibility-auditor, .gemini/skills/accessibility-auditor, .github/skills/accessibility-auditor and .opencode/skills/accessibility-auditor in your project.
SKILL.md names no scripts, command-line tools or credentials: Accessibility Auditor is instructions for the agent only.
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.
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.
Accessibility Auditor is published under the Apache-2.0 licence (declared in SKILL.md). It allows redistribution, so the full SKILL.md is shown on this page.
About 4.1k tokens (SKILL.md is roughly 17k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Accessibility Auditor: Web Interface Guidelines Reviewer (vercel-labs/openreview, 1.7k stars), Accessibility Review (markmead/hyperui, 12k stars), Web Animation Design (baptisteArno/typebot.io, 11k stars) and Accessibility Fixer (ibelick/ui-skills, 9.5k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
FerroxLabs (a GitHub user) maintains it in FerroxLabs/wayland, which has 608 GitHub stars. The repository holds 22 skills in this directory. The repository was last updated on October 6, 2026.
Source: FerroxLabs/wayland on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.