From chakra-react-toolkit
Run accessibility audit on components (WCAG 2.1 AA checks)
npx claudepluginhub markus41/claude[component-path] [--strict]# Accessibility Audit Command When this command is invoked, perform a comprehensive accessibility audit on the specified component or directory of components against WCAG 2.1 AA standards. ## Execution Steps 1. **Locate Target Components** - If a specific file path is provided, audit that component - If a directory is provided, find all .tsx/.jsx components using Glob - Default to scanning the entire src/components directory if no path specified 2. **Read and Analyze Each Component** - Parse the component code for accessibility issues - Check for proper semantic HTML usag...
/a11y-auditScans frontend project for WCAG 2.2 accessibility violations, shows fixes, auto-applies with --fix, checks color contrast, generates a11y-report.md.
/a11y-auditComprehensive accessibility audit — automated axe scan, keyboard navigation check, color contrast review, ARIA audit, and prioritized CRITICAL/HIGH/MEDIUM issue backlog
/a11y-auditAudit accessibility of the running React Native app against best practices.
/a11y-auditRun accessibility and HTML lint audit on files, then provide fix SUGGESTIONS (does NOT modify files) using WCAG/ARIA references
/a11y-auditAudit a frontend application for WCAG 2.1/2.2 compliance, screen reader compatibility, keyboard accessibility, and inclusive design patterns.
/a11y-auditPerform a WCAG 2.1 AA accessibility audit on target components covering ARIA, keyboard nav, focus management, contrast, forms, and dynamic content.
When this command is invoked, perform a comprehensive accessibility audit on the specified component or directory of components against WCAG 2.1 AA standards.
Locate Target Components
Read and Analyze Each Component
Generate Detailed Audit Report
// Check for proper Chakra accessibility props
interface ChakraA11yPatterns {
// Button accessibility
hasAriaLabel: boolean; // <Button aria-label="...">
hasVisibleText: boolean; // <Button>Text</Button>
hasIconButton: boolean; // <IconButton aria-label="..." />
// Form accessibility
formControlId: boolean; // <FormControl id="...">
formLabelHtmlFor: boolean; // <FormLabel htmlFor="...">
formHelperText: boolean; // <FormHelperText>
formErrorMessage: boolean; // <FormErrorMessage>
// Modal/Drawer accessibility
hasModalHeader: boolean; // <ModalHeader>
hasCloseButton: boolean; // <ModalCloseButton>
// Image accessibility
imageAlt: boolean; // <Image alt="..." />
// Link accessibility
isExternal: boolean; // <Link isExternal> adds proper attributes
}
// BAD - No accessible label
<IconButton icon={<DeleteIcon />} />
// GOOD - Has aria-label
<IconButton
icon={<DeleteIcon />}
aria-label="Delete item"
/>
// BAD - No association
<FormLabel>Email</FormLabel>
<Input type="email" />
// GOOD - Proper association
<FormControl id="email">
<FormLabel htmlFor="email">Email</FormLabel>
<Input id="email" type="email" />
</FormControl>
// BAD - No heading for screen readers
<Modal>
<ModalContent>
<Text fontSize="xl">Settings</Text>
</ModalContent>
</Modal>
// GOOD - Proper modal structure
<Modal>
<ModalContent>
<ModalHeader>Settings</ModalHeader>
<ModalCloseButton />
<ModalBody>...</ModalBody>
</ModalContent>
</Modal>
// Check theme token usage
// BAD - Low contrast
<Text color="gray.400" bg="gray.100">Low contrast text</Text>
// GOOD - Sufficient contrast
<Text color="gray.700" bg="white">High contrast text</Text>
Generate a markdown report saved as a11y-audit-report-[timestamp].md:
# Accessibility Audit Report
**Generated:** [timestamp]
**Components Audited:** [count]
**Overall Score:** [percentage] / 100
## Summary
- Critical Issues: [count]
- Warnings: [count]
- Informational: [count]
## Critical Issues
### [ComponentName.tsx]
**Line [X]:** Missing aria-label on icon button
```tsx
// Current code
<IconButton icon={<CloseIcon />} onClick={onClose} />
// Recommended fix
<IconButton
icon={<CloseIcon />}
aria-label="Close dialog"
onClick={onClose}
/>
[Similar format for warnings]
[Similar format for info items]
claude /a11y-fix [component-path] to auto-fix common issuesclaude /test-a11y [component-path] to generate accessibility tests
## Usage Examples
```bash
# Audit a specific component
claude /a11y-audit src/components/UserProfile.tsx
# Audit all components in a directory
claude /a11y-audit src/components/forms
# Strict mode (fail on warnings)
claude /a11y-audit src/components --strict
# Audit entire component library
claude /a11y-audit
When analyzing Chakra components, leverage built-in accessibility features:
If --strict flag is used, check against theme tokens:
// Extract color values from theme
const contrastChecks = [
{ fg: 'gray.600', bg: 'white', ratio: 4.5 },
{ fg: 'blue.500', bg: 'blue.50', ratio: 3.2 }, // FAIL
];
// Report contrast failures with suggestions