Expert checklist and prompts for auditing and fixing Android accessibility issues, especially in Jetpack Compose.
Install with the open skills CLI (global, non-interactive — available in every Claude Code session):
npx skills add new-silvermoon/awesome-android-agent-skills --skill "android-accessibility" -g -a claude-code -yOr manually — copy the SKILL.md below into:
~/.claude/skills/android-accessibility/SKILL.md---
name: android-accessibility
description: Expert checklist and prompts for auditing and fixing Android accessibility issues, especially in Jetpack Compose.
---
# Android Accessibility Checklist
## Instructions
Analyze the provided component or screen for the following accessibility aspects.
### 1. Content Descriptions
* **Check**: Do `Image` and `Icon` composables have a meaningful `contentDescription`?
* **Decorative**: If an image is purely decorative, use `contentDescription = null`.
* **Actionable**: If an element is clickable, the description should describe the *action* (e.g., "Play music"), not the icon (e.g., "Triangle").
### 2. Touch Target Size
* **Standard**: Minimum **48x48dp** for all interactive elements.
* **Fix**: Use `MinTouchTargetSize` or wrap in `Box` with appropriate padding if the visual icon is smaller.
### 3. Color Contrast
* **Standard**: WCAG AA requires **4.5:1** for normal text and **3.0:1** for large text/icons.
* **Tool**: Verify colors against backgrounds using contrast logic.
### 4. Focus & Semantics
* **Focus Order**: Ensure keyboard/screen-reader focus moves logically (e.g., Top-Start to Bottom-End).
* **Grouping**: Use `Modifier.semantics(mergeDescendants = true)` for complex items (like a row with text and icon) so they are announced as a single item.
* **State descriptions**: Use `stateDescription` to describe custom states (e.g., "Selected", "Checked") if standard semantics aren't enough.
### 5. Headings
* **Traversal**: Mark title texts with `Modifier.semantics { heading() }` to allow screen reader users to jump between sections.
## Example Prompts for Agent Usage
* "Analyze the content description of this Image. Is it appropriate?"
* "Check if the touch target size of this button is at least 48dp."
* "Does this custom toggle button report its 'Checked' state to TalkBack?"
You MUST use this before any creative work - creating features, building components, adding functionality, or modifying behavior. Explores user intent, requirements and design before implementation.
Roleplay the most difficult, tech-resistant user for your product. Browse the app as that persona, find every UX pain point, then filter complaints through a pragmatism layer to separate real problems from noise. Creates actionable tickets from genuine issues only.
Dark-themed SVG architecture/cloud/infra diagrams as HTML.