Now liveThe Skillselion MCP - thousands of ranked skills, loaded into your agent mid-task. No install.Get it →
cap-go avatar

Capacitor Accessibility

  • 557 installs
  • 57 repo stars
  • Updated July 13, 2026
  • cap-go/capgo-skills

capacitor-accessibility is an agent skill that helps developers add screen reader support, semantic markup, and WCAG compliance to Capacitor hybrid mobile applications.

About

capacitor-accessibility is a Capgo agent skill that walks developers through making Capacitor apps inclusive with screen reader labels, semantic HTML, focus management, keyboard navigation, and WCAG-oriented checks. The readme includes a quick checklist covering semantic HTML, alt text, 44x44pt touch targets, 4.5:1 color contrast, focus indicators, screen reader labels, and keyboard navigation. Use it when building or auditing Capacitor iOS or Android apps that must meet accessibility expectations before release. The skill fires on requests about WCAG, VoiceOver, TalkBack, focus traps, or accessible touch targets in hybrid mobile codebases.

  • 7-point accessibility checklist covering semantic HTML, alt text, touch targets, color contrast, focus indicators, scree
  • Ready-to-copy TSX patterns for aria-label, aria-describedby, live regions, and error announcements
  • CSS rules enforcing minimum 44x44pt touch targets
  • Focus management and keyboard navigation guidance
  • WCAG compliance reference for mobile apps

Capacitor Accessibility by the numbers

  • 557 all-time installs (skills.sh)
  • Ranked #552 of 1,880 Design & UI/UX skills by installs in the Skillselion catalog
  • Data as of Aug 1, 2026 (Skillselion catalog sync)
npx skills add https://github.com/cap-go/capgo-skills --skill capacitor-accessibility

Add your badge

Show developers this skill is listed on Skillselion. Paste this into your README.

Listed on Skillselion
Installs557
repo stars57
Last updatedJuly 13, 2026
Repositorycap-go/capgo-skills

How do you add WCAG accessibility to Capacitor apps?

Add screen reader support, semantic markup, and WCAG compliance to Capacitor mobile apps.

Who is it for?

Mobile developers shipping Capacitor hybrid apps who need WCAG-aligned screen reader and keyboard accessibility.

Skip if: Native SwiftUI or Jetpack Compose-only projects that do not use Capacitor.

When should I use this skill?

A developer asks for screen reader support, WCAG compliance, or focus management in a Capacitor app.

What you get

Accessible Capacitor UI markup, screen reader labels, focus management patterns, and WCAG checklist compliance.

  • accessible UI markup
  • screen reader label patterns
  • WCAG compliance checklist

By the numbers

  • Quick checklist includes 7 accessibility verification items
  • Specifies 44x44pt minimum touch targets
  • Requires 4.5:1 color contrast ratio

Files

SKILL.mdMarkdownGitHub ↗

Accessibility in Capacitor Apps

Build inclusive apps that work for everyone.

When to Use This Skill

  • User needs accessibility
  • User wants screen reader support
  • User asks about WCAG
  • User needs focus management

Quick Checklist

  • [ ] Semantic HTML
  • [ ] Alt text for images
  • [ ] Touch targets 44x44pt
  • [ ] Color contrast 4.5:1
  • [ ] Focus indicators
  • [ ] Screen reader labels
  • [ ] Keyboard navigation

Screen Reader Support

Labels and Hints

// Accessible button
<button
  aria-label="Delete item"
  aria-describedby="delete-hint"
>
  <TrashIcon />
</button>
<span id="delete-hint" className="sr-only">
  Permanently removes this item
</span>

// Accessible input
<label htmlFor="email">Email</label>
<input
  id="email"
  type="email"
  aria-required="true"
  aria-invalid={hasError}
  aria-describedby={hasError ? "email-error" : undefined}
/>
{hasError && <span id="email-error">Invalid email</span>}

Live Regions

// Announce dynamic content
<div aria-live="polite" aria-atomic="true">
  {message}
</div>

// Urgent announcements
<div aria-live="assertive" role="alert">
  {error}
</div>

Touch Targets

/* Minimum 44x44pt */
button, a, input {
  min-height: 44px;
  min-width: 44px;
}

/* Icon buttons need padding */
.icon-button {
  padding: 12px;
}

Color Contrast

/* Good contrast (4.5:1 for text) */
.text {
  color: #333333;
  background: #ffffff;
}

/* Don't rely on color alone */
.error {
  color: #d32f2f;
  border-left: 4px solid #d32f2f; /* Visual indicator */
}
.error::before {
  content: "⚠ "; /* Icon indicator */
}

Focus Management

// Move focus after navigation
useEffect(() => {
  const heading = document.querySelector('h1');
  heading?.focus();
}, [page]);

// Trap focus in modals
function trapFocus(element: HTMLElement) {
  const focusable = element.querySelectorAll(
    'button, [href], input, select, textarea, [tabindex]:not([tabindex="-1"])'
  );
  const first = focusable[0] as HTMLElement;
  const last = focusable[focusable.length - 1] as HTMLElement;

  element.addEventListener('keydown', (e) => {
    if (e.key === 'Tab') {
      if (e.shiftKey && document.activeElement === first) {
        e.preventDefault();
        last.focus();
      } else if (!e.shiftKey && document.activeElement === last) {
        e.preventDefault();
        first.focus();
      }
    }
  });
}

Native Accessibility

iOS VoiceOver

// Custom accessibility in native code
element.isAccessibilityElement = true
element.accessibilityLabel = "Play video"
element.accessibilityHint = "Double tap to play"
element.accessibilityTraits = .button

Android TalkBack

// Custom accessibility
ViewCompat.setAccessibilityDelegate(view, object : AccessibilityDelegateCompat() {
    override fun onInitializeAccessibilityNodeInfo(
        host: View,
        info: AccessibilityNodeInfoCompat
    ) {
        super.onInitializeAccessibilityNodeInfo(host, info)
        info.contentDescription = "Play video"
    }
})

Testing

# iOS: Enable VoiceOver in Simulator
# Settings > Accessibility > VoiceOver

# Android: Enable TalkBack
# Settings > Accessibility > TalkBack

# Web: Use axe-core
npx @axe-core/cli https://localhost:3000

Resources

  • WCAG Guidelines: https://www.w3.org/WAI/WCAG21/quickref
  • iOS Accessibility: https://developer.apple.com/accessibility
  • Android Accessibility: https://developer.android.com/accessibility

Related skills

How it compares

Pick capacitor-accessibility for Capacitor-specific hybrid WebView patterns instead of generic web-only accessibility guides.

FAQ

What accessibility areas does capacitor-accessibility cover?

The capacitor-accessibility skill covers screen reader support, semantic HTML, focus management, keyboard navigation, alt text, touch target sizing, color contrast, and WCAG compliance patterns for Capacitor hybrid mobile apps.

When should I use capacitor-accessibility?

Use capacitor-accessibility when a developer needs VoiceOver or TalkBack support, WCAG checks, or accessible focus and touch targets while building Capacitor iOS or Android applications.

This week in AI coding

Five minutes, every Monday - the tools, releases and tactics for developers.

unsubscribe anytime.