Material Design 3 UI/UX Guide
skydashnet/material-design-3-ui-skill
Guides designing, reviewing or implementing interfaces that follow Google's Material Design 3 system: semantic tokens, component states, adaptive layout and accessibility.
A skill your agent uses to enable Espresso's AccessibilityValidator against the Compose semantics tree via enableAccessibilityChecks(...) from androidx.compose.ui:ui-test-accessibility (for…
$ npx skills add skydoves/android-testing-skills --skill enabling-accessibility-checks -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install skydoves/android-testing-skills enabling-accessibility-checks --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/skydoves/android-testing-skills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/compose/debug/enabling-accessibility-checks .claude/skills/enabling-accessibility-checks && 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 "enabling-accessibility-checks" agent skill from https://github.com/skydoves/android-testing-skills/tree/main/compose/debug/enabling-accessibility-checks into .claude/skills/enabling-accessibility-checks/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "enabling-accessibility-checks", 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/skydoves/android-testing-skills/tree/main/compose/debug/enabling-accessibility-checksType 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 skydoves/android-testing-skills --skill enabling-accessibility-checks -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install skydoves/android-testing-skills enabling-accessibility-checks --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/skydoves/android-testing-skills.git skills-src && mkdir -p .agents/skills && cp -r skills-src/compose/debug/enabling-accessibility-checks .agents/skills/enabling-accessibility-checks && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "enabling-accessibility-checks" agent skill from https://github.com/skydoves/android-testing-skills/tree/main/compose/debug/enabling-accessibility-checks into .agents/skills/enabling-accessibility-checks/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "enabling-accessibility-checks", 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 skydoves/android-testing-skills --skill enabling-accessibility-checks -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install skydoves/android-testing-skills enabling-accessibility-checks --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/skydoves/android-testing-skills.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/compose/debug/enabling-accessibility-checks .cursor/skills/enabling-accessibility-checks && 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 "enabling-accessibility-checks" agent skill from https://github.com/skydoves/android-testing-skills/tree/main/compose/debug/enabling-accessibility-checks into .cursor/skills/enabling-accessibility-checks/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "enabling-accessibility-checks", 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/skydoves/android-testing-skills.git --path compose/debug/enabling-accessibility-checks--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 skydoves/android-testing-skills --skill enabling-accessibility-checks -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install skydoves/android-testing-skills enabling-accessibility-checks --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/skydoves/android-testing-skills.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/compose/debug/enabling-accessibility-checks .gemini/skills/enabling-accessibility-checks && 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 "enabling-accessibility-checks" agent skill from https://github.com/skydoves/android-testing-skills/tree/main/compose/debug/enabling-accessibility-checks into .gemini/skills/enabling-accessibility-checks/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "enabling-accessibility-checks", 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 skydoves/android-testing-skills enabling-accessibility-checksInstalls 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 skydoves/android-testing-skills --skill enabling-accessibility-checks -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/skydoves/android-testing-skills.git skills-src && mkdir -p .github/skills && cp -r skills-src/compose/debug/enabling-accessibility-checks .github/skills/enabling-accessibility-checks && 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 "enabling-accessibility-checks" agent skill from https://github.com/skydoves/android-testing-skills/tree/main/compose/debug/enabling-accessibility-checks into .github/skills/enabling-accessibility-checks/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "enabling-accessibility-checks", 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 skydoves/android-testing-skills --skill enabling-accessibility-checks -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install skydoves/android-testing-skills enabling-accessibility-checks --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/skydoves/android-testing-skills.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/compose/debug/enabling-accessibility-checks .opencode/skills/enabling-accessibility-checks && 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 "enabling-accessibility-checks" agent skill from https://github.com/skydoves/android-testing-skills/tree/main/compose/debug/enabling-accessibility-checks into .opencode/skills/enabling-accessibility-checks/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "enabling-accessibility-checks", 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.
enabling-accessibility-checksA skill your agent uses to enable Espresso's AccessibilityValidator against the Compose semantics tree via enableAccessibilityChecks(...) from androidx.compose.ui:ui-test-accessibility (for…
Enabling Accessibility Checks is an agent skill from skydoves/android-testing-skills. Use this skill to enable Espresso's AccessibilityValidator against the Compose semantics tree via enableAccessibilityChecks(...) from androidx.compose.ui:ui-test-accessibility (for ComposeUiTest) or androidx.compose.ui:ui-test-junit4-accessibility (for ComposeTestRule / AndroidComposeTestRule). Covers the API surface, the auto-check after every UI-mutating action (performMultiModalInput is the lone exception), the manual tryPerformAccessibilityChecks() entry point, sharing the validator with Espresso via…
Its SKILL.md is about 3.9k 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 and Mobile testing and debugging. It works with Jetpack Compose. The repository describes itself as: ⚡️ A set of skills for Android testing: Compose UI, AndroidX Test, JVM unit tests, and ADB. The licence is Apache-2.0.
Read from SKILL.md and the folder at commit 8665ed5. 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 kotlin).
From the folder's file list and the shell code blocks in SKILL.md.
Links to these hosts (documentation or services it may open):
developer.android.comFrom 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.
Enabling Accessibility Checks loads about 3.9k tokens when it runs. Until then it costs about 256 tokens; SKILL.md has 854 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 skydoves/android-testing-skills at commit 8665ed5, republished under its Apache-2.0 licence (© skydoves). 854 words, ~3,904 tokens.
.claude/skills/enabling-accessibility-checks/SKILL.md (or your agent's skills folder).AccessibilityValidator on the Compose TreeThe Compose accessibility test artifacts wire Espresso's AccessibilityValidator (from com.google.android.apps.common.testing.accessibility.framework.integrations.espresso) into the Compose action pipeline. Once enabled, every action that mutates the UI (performClick, performScrollTo*, performTextInput, …) runs the validator against the underlying View first. Two distinct artifacts cover two test entry points (ComposeUiTest and ComposeTestRule), with one stable and one experimental. Real device + API 34+ for meaningful results — on Robolectric the validator is still installed but a Log.w warning is emitted and any pass is inconclusive (Robolectric does not faithfully drive the accessibility services).
AccessibilityValidator between Espresso and Compose.Log.w warning explains why).../printing-the-semantics-tree/SKILL.md.compose/ui/ui-test-accessibility/src/androidMain/kotlin/androidx/compose/ui/test/accessibility/ComposeUiTestExt.android.kt:50-53. Move the test to androidDeviceTest and a real device API 34+ — see ../../setup/setting-up-host-vs-device-tests/SKILL.md.@RequiresApi(34) makes calls fail to compile on lower minSdk. Use @SdkSuppress(minSdkVersion = 34) on the test method and skip on older devices.../../assertions/asserting-node-state-and-text/SKILL.md.androidx.compose.ui:ui-test-accessibility on androidTestImplementation — extends ComposeUiTest. @RequiresApi(34) @ExperimentalTestApi. Needs @OptIn(ExperimentalTestApi::class).androidx.compose.ui:ui-test-junit4-accessibility on androidTestImplementation — extends AndroidComposeTestRule and ComposeTestRule. @RequiresApi(34) only — NOT experimental.../../patterns/structuring-a-compose-test/SKILL.md.@Before). API for AndroidComposeTestRule:import androidx.compose.ui.test.junit4.accessibility.enableAccessibilityChecks
import com.google.android.apps.common.testing.accessibility.framework.integrations.espresso.AccessibilityValidator
@Before
fun before() {
rule.enableAccessibilityChecks() // default: AccessibilityValidator().setRunChecksFromRootView(true)
}Default-validator signature, cited at compose/ui/ui-test-junit4-accessibility/src/androidMain/kotlin/androidx/compose/ui/test/junit4/accessibility/AndroidComposeTestRuleExt.android.kt:44-49:
@RequiresApi(34)
public fun <R : TestRule, A : ComponentActivity> AndroidComposeTestRule<R, A>.enableAccessibilityChecks(
accessibilityValidator: AccessibilityValidator =
AccessibilityValidator().setRunChecksFromRootView(true),
)For ComposeUiTest (e.g. inside runComposeUiTest { }), the equivalent lives in androidx.compose.ui.test.accessibility and requires @OptIn(ExperimentalTestApi::class):
@OptIn(ExperimentalTestApi::class)
@Test
fun runs() = runAndroidComposeUiTest<ComponentActivity> {
enableAccessibilityChecks()
onNodeWithText("Submit").performClick()
}Cited from compose/ui/ui-test-accessibility/samples/src/main/java/androidx/compose/ui/test/accessibility/samples/AccessibilityChecksSamples.kt:42-61.
AccessibilityValidator itself. Pass a custom validator to flip the threshold from WARNING-only to ERROR.val validator = AccessibilityValidator().apply {
setThrowExceptionFor(AccessibilityCheckResultType.ERROR)
}
rule.enableAccessibilityChecks(validator)Cited from AccessibilityChecksSamples.kt:68-82.
3. Auto-checks fire before every UI-mutating action. Cited at compose/ui/ui-test/src/commonMain/kotlin/androidx/compose/ui/test/Actions.kt:79, 160, 189, 236, 402, 451, 496, 535, 697, 780, 948 — tryPerformAccessibilityChecks() is invoked at the top of performClick, performScrollTo, performScrollToIndex/Key/Node, performTouchInput, performMouseInput, performKeyInput, performTrackpadInput, performRotaryScrollInput, performIndirectPointerInput, performFirstLinkClick, and the text-action family. performMultiModalInput does NOT auto-check (Actions.kt:582); the developer must call tryPerformAccessibilityChecks() explicitly. requestFocus() (Actions.kt:600-601) goes through performSemanticsAction and likewise does NOT auto-check — call tryPerformAccessibilityChecks() after focusing if accessibility coverage matters there.
4. Run a check manually when needed (for performMultiModalInput, or to gate a phase).
rule.onRoot().tryPerformAccessibilityChecks()Cited from AccessibilityChecksSamples.kt:53.
AccessibilityChecks.enable() returns the same validator instance Espresso uses; pass it to Compose so both layers report against one configuration.import androidx.test.espresso.accessibility.AccessibilityChecks
@OptIn(ExperimentalTestApi::class)
@Test
fun hybrid() = runAndroidComposeUiTest<ComponentActivity> {
val validator = AccessibilityChecks.enable()
enableAccessibilityChecks(validator)
}Cited from AccessibilityChecksSamples.kt:88-98.
rule.disableAccessibilityChecks()Cited at AndroidComposeTestRuleExt.android.kt:71-75.
ComposeTestRule overload only when the rule is concretely an AndroidComposeTestRule. Cited at compose/ui/ui-test-junit4-accessibility/src/androidMain/kotlin/androidx/compose/ui/test/junit4/accessibility/ComposeTestRuleExt.android.kt:38-49. Non-Android rules throw NotImplementedError:Enabling accessibility checks is currently only supported for AndroidComposeTestRule.
If you have a custom ComposeTestRule implementation that wraps an AndroidComposeTestRule,
directly call enableAccessibilityChecks on the AndroidComposeTestRule instead// WRONG (assertion is meaningless under Robolectric)
@Config(sdk = [34])
@RunWith(RobolectricTestRunner::class)
class MyA11yTest {
@get:Rule val rule = createComposeRule(StandardTestDispatcher())
@Test fun checks() {
rule.enableAccessibilityChecks() // logs Log.w; validator IS installed
rule.setContent { /* contrast violation */ }
rule.onNodeWithTag("submit").performClick() // may PASS, may FAIL — inconclusive
}
}
// WRONG because: HasRobolectricFingerprint = (Build.FINGERPRINT.lowercase() == "robolectric")
// triggers a Log.w but the validator is STILL installed (ComposeUiTestExt.android.kt:50-61
// AND AndroidComposeTestRuleExt.android.kt:50-64). Robolectric does not faithfully drive
// the accessibility services, so any result is inconclusive. Tracking bug: b/332778271.
// Run accessibility checks ONLY on a real device API 34+ for trustworthy results.// RIGHT — move the test to androidDeviceTest and run on a real device API 34+
@MediumTest
@RunWith(AndroidJUnit4::class)
@SdkSuppress(minSdkVersion = 34)
class MyA11yTest {
@get:Rule val rule = createComposeRule(StandardTestDispatcher())
@Before fun before() { rule.enableAccessibilityChecks() }
@Test fun submitPassesA11y() {
rule.setContent { MyScreen() }
rule.onNodeWithTag("submit").performClick()
}
}performMultiModalInput skips the auto-check// WRONG
@Test
fun multiModal() {
rule.enableAccessibilityChecks()
rule.setContent { MyScreen() }
rule.onNodeWithTag("canvas").performMultiModalInput {
touch { down(center); up() }
key { pressKey(Key.Enter) }
}
// No a11y check ran for this action — Actions.kt:582 omits tryPerformAccessibilityChecks().
}// RIGHT
@Test
fun multiModal() {
rule.enableAccessibilityChecks()
rule.setContent { MyScreen() }
rule.onNodeWithTag("canvas").performMultiModalInput { … }
rule.onRoot().tryPerformAccessibilityChecks() // explicit
}ComposeTestRule (non-Android) overload throws// WRONG
val rule: ComposeTestRule = MyCustomRuleThatWrapsAndroid()
rule.enableAccessibilityChecks() // throws NotImplementedError
// WRONG because: only AndroidComposeTestRule is supported. Cited at
// ComposeTestRuleExt.android.kt:38-49.// RIGHT — call on the underlying AndroidComposeTestRule
val rule = AndroidComposeTestRule(/* … */)
rule.enableAccessibilityChecks()// RIGHT
@OptIn(ExperimentalTestApi::class)
@Test
fun shared() = runAndroidComposeUiTest<ComponentActivity> {
val validator = AccessibilityChecks.enable().apply {
setThrowExceptionFor(AccessibilityCheckResultType.ERROR)
}
enableAccessibilityChecks(validator)
onNodeWithText("Submit").performClick()
}enableAccessibilityChecks. MUST NOT rely on the check producing meaningful results under Robolectric — Build.FINGERPRINT.lowercase() == "robolectric" triggers Log.w("...", "Accessibility checks are currently not supported by Robolectric") (ComposeUiTestExt.android.kt:50-53, AndroidComposeTestRuleExt.android.kt:50-56), and the validator is still installed but cannot rely on the accessibility services Robolectric does not faithfully emulate. Treat any pass under Robolectric as inconclusive. Tracking bug: b/332778271.androidx.compose.ui:ui-test-junit4-accessibility (stable) when the rule entry point is used; MUST apply @OptIn(ExperimentalTestApi::class) when using androidx.compose.ui:ui-test-accessibility against ComposeUiTest.tryPerformAccessibilityChecks() manually after performMultiModalInput { … } and after requestFocus() if the test wants validation for those actions — Actions.kt:582 omits the auto-check for performMultiModalInput, and requestFocus() (Actions.kt:600-601) routes through performSemanticsAction which likewise does not auto-check.enableAccessibilityChecks on a ComposeTestRule that is not also an AndroidComposeTestRule. The non-Android overload throws NotImplementedError (ComposeTestRuleExt.android.kt:38-49).AccessibilityCheckResultType.ERROR via AccessibilityValidator().setThrowExceptionFor(...) so violations fail the test instead of merely logging.AccessibilityValidator via AccessibilityChecks.enable() and pass it to both Espresso and Compose. Cited at AccessibilityChecksSamples.kt:88-98.@SdkSuppress(minSdkVersion = 34) is present if the module's minSdk is lower.Log.w warning "Accessibility checks are currently not supported by Robolectric" appears in test output.androidTestImplementation: androidx.compose.ui:ui-test-junit4-accessibility (rule path) or androidx.compose.ui:ui-test-accessibility + @OptIn(ExperimentalTestApi::class) (ComposeUiTest path).enableAccessibilityChecks(...) is called once per test (or in @Before); disableAccessibilityChecks() is called only when intentionally suppressing checks.performMultiModalInput { … } site is followed by an explicit rule.onRoot().tryPerformAccessibilityChecks().AccessibilityChecks.enable() and pass it to enableAccessibilityChecks(validator).enableAccessibilityChecks call is made on a non-AndroidComposeTestRule instance.enableAccessibilityChecks (rule path): compose/ui/ui-test-junit4-accessibility/src/androidMain/kotlin/androidx/compose/ui/test/junit4/accessibility/AndroidComposeTestRuleExt.android.kt:44-75ComposeTestRule overload — NotImplementedError: compose/ui/ui-test-junit4-accessibility/src/androidMain/kotlin/androidx/compose/ui/test/junit4/accessibility/ComposeTestRuleExt.android.kt:38-66enableAccessibilityChecks (ComposeUiTest path): compose/ui/ui-test-accessibility/src/androidMain/kotlin/androidx/compose/ui/test/accessibility/ComposeUiTestExt.android.kt:44-77ComposeUiTestExt.android.kt:50-61, AndroidComposeTestRuleExt.android.kt:50-64, b/332778271Actions.kt: compose/ui/ui-test/src/commonMain/kotlin/androidx/compose/ui/test/Actions.kt:79, 160, 189, 236, 402, 451, 496, 535, 582 (omitted), 697, 780, 948compose/ui/ui-test-accessibility/samples/src/main/java/androidx/compose/ui/test/accessibility/samples/AccessibilityChecksSamples.kt:42-98© skydoves, 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 compose/debug/enabling-accessibility-checks of skydoves/android-testing-skills.
Open the folder on GitHubat commit 8665ed5
Enabling Accessibility Checks 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 |
|---|---|---|---|---|---|---|
| Enabling Accessibility Checks this skillskydoves/android-testing-skills | 333 | — | ~3.9k | Automated safety check: Pass | Apache-2.0 | |
| Material Design 3 UI/UX Guideskydashnet/material-design-3-ui-skill | 130 | — | ~3k | Automated safety check: Pass | MIT | |
| Control UIcursor/plugins | 10k | 2 repos | ~1.2k | Automated safety check: Pass | None | |
| Frontend Artisannekomangaorg/Neko | 2.8k | — | ~1.1k | Automated safety check: Pass | Apache-2.0 | |
| Compose UIMeet-Miyani/compose-skill | 301 | — | ~3.7k | Automated safety check: Pass | MIT | |
| Android AccessibilityMoustachauve/WLED-Android | 169 | 3 repos | ~471 | Automated safety check: Pass | Apache-2.0 |
skydashnet/material-design-3-ui-skill
Guides designing, reviewing or implementing interfaces that follow Google's Material Design 3 system: semantic tokens, component states, adaptive layout and accessibility.
cursor/plugins
Build or adapt a local browser/CDP harness to drive and inspect a web, IDE, or Electron UI.
nekomangaorg/Neko
Elevates the Jetpack Compose user interface through micro-UX improvements, animations, accessibility (a11y) fixes, and UI structural polish.
Meet-Miyani/compose-skill
Writes and reviews composables for Compose and CMP: the Route/Screen/leaf split, state-read placement and stability, loading/empty/error UX states, LazyColumn lists and grids, animation choice…
Moustachauve/WLED-Android
Expert checklist and prompts for auditing and fixing Android accessibility issues, especially in Jetpack Compose.
LUC4N3X/Levyra-deepsound
Implement, debug, or review Levyra Jetpack Compose screens, state projections, navigation, animation, lifecycle, accessibility, performance, RTL, localization, edge-to-edge, adaptive layout, and…
skydoves/android-testing-skills
A skill your agent uses to verify Compose layout measurements from a UI test using assertWidthIsEqualTo, assertHeightIsEqualTo, assertWidthIsAtLeast, assertHeightIsAtLeast…
skydoves/android-testing-skills
A skill your agent uses to verify a Compose semantics node's properties from a UI test using assertExists, assertDoesNotExist, assertIsDisplayed, assertIsNotDisplayed, assertIsDeactivated…
skydoves/android-testing-skills
A skill your agent uses to render every Jetpack Compose @Preview as a screenshot on a real Android device or emulator and publish a browsable HTML catalog from CI.
skydoves/android-testing-skills
A skill your agent uses to capture visual artefacts from a device for test failures, golden image generation, QA repro, and demo videos.
skydoves/android-testing-skills
A skill your agent uses to pick the correct Compose UI test entry point.
skydoves/android-testing-skills
A skill your agent uses to pick which behaviors to cover in an Android test suite using Google's five-category state vocabulary plus the explicit "what NOT to test" list from…
Works with
Categories
A skill your agent uses to enable Espresso's AccessibilityValidator against the Compose semantics tree via enableAccessibilityChecks(...) from androidx.compose.ui:ui-test-accessibility (for…. Enabling Accessibility Checks is an agent skill from skydoves/android-testing-skills.ui:ui-test-junit4-accessibility (for ComposeTestRule / AndroidComposeTestRule).
Enabling Accessibility Checks fits situations like: androidx.compose.ui:ui-test-junit4-accessibility (for ComposeTestRule / AndroidComposeTestRule); the developer asks how do I enable a11y checks in a Compose test; accessibilityChecks.enable; accessibilityValidator throws on click.
Run `npx skills add skydoves/android-testing-skills --skill enabling-accessibility-checks -a claude-code`. Or copy the skill folder (compose/debug/enabling-accessibility-checks in skydoves/android-testing-skills) into .claude/skills/enabling-accessibility-checks in your project. Claude Code loads it when a task matches its description.
Run `npx skills add skydoves/android-testing-skills --skill enabling-accessibility-checks -a codex`. Or copy the skill folder (compose/debug/enabling-accessibility-checks in skydoves/android-testing-skills) into .agents/skills/enabling-accessibility-checks 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 skydoves/android-testing-skills --skill enabling-accessibility-checks -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/enabling-accessibility-checks, .gemini/skills/enabling-accessibility-checks, .github/skills/enabling-accessibility-checks and .opencode/skills/enabling-accessibility-checks in your project.
SKILL.md names no scripts, command-line tools or credentials: Enabling Accessibility Checks is instructions for the agent only.
SKILL.md names 1 domain. As links in the text: developer.android.com. 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.
Enabling Accessibility Checks 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 3.9k tokens (SKILL.md is roughly 16k 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 Enabling Accessibility Checks: Material Design 3 UI/UX Guide (skydashnet/material-design-3-ui-skill, 130 stars), Control UI (cursor/plugins, 10k stars), Frontend Artisan (nekomangaorg/Neko, 2.8k stars) and Compose UI (Meet-Miyani/compose-skill, 301 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
skydoves (a GitHub user) maintains it in skydoves/android-testing-skills, which has 333 GitHub stars. The repository holds 50 skills in this directory. The repository was last updated on May 25, 2026.
Source: skydoves/android-testing-skills on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.