AgentStack
Browse Sign in
Browse Why AgentStack Sell Docs
Sign in
SKILL verified MIT Self-run

React Native Accessibility

skill-madebyecho-agent-skills-react-native-accessibility · by madebyecho

>

No reviews yet
0 installs
29 views
0.0% view→install

Install

$ agentstack add skill-madebyecho-agent-skills-react-native-accessibility

✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.

Security review

✓ Passed

No 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.

View the full security report →

Verified badge

Passed review? Show it. Paste this badge into your README, it links to the public security report.

AgentStack Verified badge Links to your public security report.
[![AgentStack Verified](https://agentstack.voostack.com/badges/verified.svg)](https://agentstack.voostack.com/security/report/skill-madebyecho-agent-skills-react-native-accessibility)

Reliability & compatibility

Security review passed
0 installs to date
no reviews yet
4mo ago

Declared compatibility

Claude CodeClaude Desktop

Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.

Preview Execution monitoring

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 →
Are you the author of React Native Accessibility? Claim this listing to set pricing, connect Stripe payouts, and keep 70% of every sale.
Sign up to claim

About

React Native Accessibility

Scan, fix, and audit accessibility in React Native and Expo projects. Detects missing screen reader labels, roles, hints, font scaling issues, WCAG violations, and generates Jest test code. Supports both iOS (VoiceOver) and Android (TalkBack) with platform-specific considerations per rule.

When to Apply

Reference these guidelines when:

  • Working on React Native or Expo projects that need accessibility support
  • Adding VoiceOver (iOS) or TalkBack (Android) support
  • Running an accessibility audit or a11y review
  • Fixing font scaling, contrast, or WCAG compliance issues
  • Preparing a mobile app for accessibility compliance

Rule Categories by Priority

| Priority | Category | Impact | Prefix | |----------|----------|--------|--------| | 1 | Missing Screen Reader Labels | CRITICAL | p0- | | 2 | Missing Context and Discoverability | HIGH | p1- | | 3 | Visual, Interaction, and System Setting Compliance | MEDIUM | p2- |

Quick Reference

1. Missing Screen Reader Labels (CRITICAL)

  • p0-images-without-labels — Images, ExpoImage, and SVG icons without accessibilityLabel
  • p0-icon-only-pressables — Pressable/TouchableOpacity wrapping only an icon with no label

2. Missing Context and Discoverability (HIGH)

  • p1-missing-hints — Interactive elements without accessibilityHint
  • p1-missing-roles — Pressable/Touchable without accessibilityRole
  • p1-missing-input-labelsTextInput without accessibilityLabel
  • p1-small-touch-targets — Interactive elements below 48x48 dp minimum
  • p1-color-only-information — Color as the sole means of conveying information

3. Visual, Interaction, and System Setting Compliance (MEDIUM)

  • p2-font-scaling-disabledallowFontScaling={false} or low maxFontSizeMultiplier
  • p2-ungrouped-elements — Related elements (icon + text) not grouped for screen readers
  • p2-missing-header-roles — Section titles without accessibilityRole="header"
  • p2-decorative-elements-exposed — Decorative images/separators in the accessibility tree
  • p2-contrast-insufficient — Colors that fail WCAG AA contrast ratios
  • p2-reduce-motion-ignored — Animations without reduce-motion check
  • p2-custom-actions-missing — Swipe/long-press gestures without accessibilityActions
  • p2-live-region-missing — Dynamic content updates not announced to screen readers
  • p2-modal-focus-management — Custom modals without focus trapping or background hiding

WCAG AA Coverage

| WCAG Criterion | Rules Covering It | |---------------|-------------------| | 1.1.1 Non-text Content | p0-images-without-labels, p0-icon-only-pressables, p2-decorative-elements-exposed | | 1.3.1 Info and Relationships | p2-ungrouped-elements, p2-missing-header-roles | | 1.4.1 Use of Color | p1-color-only-information | | 1.4.3 Contrast (Minimum) | p2-contrast-insufficient | | 1.4.4 Resize Text | p2-font-scaling-disabled | | 2.5.5 Target Size | p1-small-touch-targets | | 4.1.2 Name, Role, Value | p1-missing-roles, p1-missing-hints, p1-missing-input-labels | | 4.1.3 Status Messages | p2-live-region-missing |

Workflow

Execute these 5 phases in order. Load rule files on-demand — only read a rule when its content is needed for the current phase.

Phase 1: Project Discovery

  1. Check for app.json or app.config.js/app.config.ts to determine if this is an Expo project
  2. Glob for **/*.{tsx,jsx,ts,js} to find all React Native source files
  3. Identify navigation library: @react-navigation/*, expo-router, etc.
  4. Grep for existing accessibility usage to understand current coverage:
  • accessibilityLabel, accessibilityHint, accessibilityRole
  • accessibilityState, accessibilityValue, accessibilityActions
  • accessibilityLiveRegion, accessibilityViewIsModal
  • accessible={false}, importantForAccessibility
  1. Report: total files, Expo vs bare RN, navigation library, current accessibility coverage percentage

Phase 2: Issue Detection

Scan files for anti-patterns. Read rules from rules/ directory for detection patterns.

For each issue found, record: file path, line number, priority, description, and suggested fix.

Phase 3: Automated Fixes

Apply fixes using Edit tool, following these rules:

  1. Never overwrite existing accessibility code — only add missing properties
  2. Add [VERIFY] comment markers on generated labels where semantic accuracy needs human review:

``tsx accessibilityLabel="Settings icon" // [VERIFY] confirm label matches intent ``

  1. Preserve formatting — match the indentation and style of surrounding code
  2. Group related fixes — apply all fixes to a single element together

Fix application order:

  1. P0 Critical fixes first
  2. P1 High fixes
  3. P2 Medium fixes (comprehensive mode only)

Phase 4: Test Generation

Load assets/jest-a11y-test-template.tsx and generate a Jest test file for the project.

  1. Create accessibility.test.tsx in the project's test directory
  2. Add a test case for each screen/component that was modified
  3. Use @testing-library/react-native with accessibility queries
  4. Include setup for navigation context if needed

Match the project's existing test framework and patterns.

Phase 5: Report

Output a structured summary:

## Accessibility Audit Report

### Issues Found
| Priority | Category | Count |
|----------|----------|-------|
| P0 Critical | ... | ... |
| P1 High | ... | ... |
| P2 Medium | ... | ... |

### Changes Applied
- **Files modified**: [list]
- **Issues fixed**: [count] of [total]
- **Test file generated**: [path]

### Platform Coverage
| Feature | iOS (VoiceOver) | Android (TalkBack) |
|---------|-----------------|-------------------|
| Screen reader labels | Ready / Needs Work | Ready / Needs Work |
| Roles and hints | Ready / Needs Work | Ready / Needs Work |
| Touch targets | Ready / Needs Work | Ready / Needs Work |
| Font scaling | Ready / Needs Work | Ready / Needs Work |
| Reduce motion | Ready / Needs Work | Ready / Needs Work |

### Manual Review Required
Items marked with [VERIFY] that need human confirmation:
- [list of VERIFY items with file:line references]

### Next Steps
- [ ] Run VoiceOver testing on iOS (see assets/checklist.md)
- [ ] Run TalkBack testing on Android (see assets/checklist.md)
- [ ] Review [VERIFY] markers and update labels
- [ ] Run generated accessibility tests
- [ ] Test with maximum system font size on both platforms
- [ ] Test with Reduce Motion enabled on both platforms
- [ ] Verify color contrast with a contrast checker tool

Configuration

  • Standard mode (default): Fixes P0 and P1 issues, reports P2
  • Comprehensive mode: Fixes all priority levels — invoke with "comprehensive" or "full audit"

Supporting Files

Loaded on-demand during execution:

  • rules/ — Individual detection and fix rules per issue category (16 rules)
  • references/react-native-a11y-api.md — Full React Native accessibility API catalog
  • references/platform-differences.md — iOS vs Android accessibility behavior differences
  • references/wcag-guidelines.md — WCAG AA and platform guideline reference
  • assets/jest-a11y-test-template.tsx — Jest accessibility test template
  • assets/checklist.md — Manual verification checklist for both platforms

Source & license

This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.

Install and usage instructions live in the source repository linked above.

Reviews

No reviews yet, be the first.

Versions

  • v0.1.0 Imported from the upstream source.