Skip to content

Add A11yAgent static analysis toolchain with 32 WCAG accessibility rules#7

Open
pauljadam wants to merge 1 commit intocvs-health:mainfrom
pauljadam:feature/a11y-static-analysis-toolchain
Open

Add A11yAgent static analysis toolchain with 32 WCAG accessibility rules#7
pauljadam wants to merge 1 commit intocvs-health:mainfrom
pauljadam:feature/a11y-static-analysis-toolchain

Conversation

@pauljadam
Copy link
Copy Markdown

Summary

  • A11yAgent: CLI tool with 32 rules mapped to WCAG 2.2, supporting multiple output formats (terminal, Gradle, JSON, SARIF, HTML), baseline suppression, per-composable scoring, trend tracking, and rule documentation generation
  • lint-checks: Android Lint integration providing the same 32 rules as real-time editor squiggly underlines in Android Studio
  • ide-plugin: IntelliJ Platform plugin for inline accessibility warnings using the ExternalAnnotator API
  • gradle-plugin: Gradle task wrapper (./gradlew a11yCheck) for CI/CD integration
  • Pre-commit hook and GitHub Actions workflow for automated accessibility checks
  • Includes new Label in Name rule (WCAG 2.5.3) — ERROR if visible text not in accessible name, WARNING if present but not at start

What's included

Module Description
A11yAgent/ Kotlin CLI with 32 WCAG rules, scanner, formatters, baseline, scoring
lint-checks/ 5 Android Lint detectors (32 issues) with full test suite
ide-plugin/ IntelliJ/Android Studio plugin for real-time squiggly underlines
gradle-plugin/ Gradle plugin wrapping A11yAgent shadow JAR
.githooks/ Pre-commit hook running A11yAgent on staged .kt files
.github/workflows/ CI workflow for automated accessibility checks

Test plan

  • ./gradlew :A11yAgent:test — all unit tests pass (32 rules, scanner, baseline, scoring)
  • ./gradlew :lint-checks:test — all lint detector tests pass
  • ./gradlew :A11yAgent:shadowJar && java -jar A11yAgent/build/libs/a11y-check-android-0.1.0.jar --generate-docs — rule docs generate correctly
  • cd ide-plugin && ./gradlew buildPlugin — IDE plugin builds successfully
  • Run ./gradlew a11yCheck against app source to verify end-to-end

🤖 Generated with Claude Code

Adds a comprehensive accessibility checking system for Jetpack Compose:

- A11yAgent: CLI tool with 32 rules mapped to WCAG 2.2, supporting multiple
  output formats (terminal, Gradle, JSON, SARIF, HTML), baseline suppression,
  per-composable scoring, trend tracking, and rule documentation generation
- lint-checks: Android Lint integration providing the same 32 rules as
  real-time editor squiggly underlines in Android Studio
- ide-plugin: IntelliJ Platform plugin for inline accessibility warnings
- gradle-plugin: Gradle task wrapper for CI/CD integration
- Pre-commit hook and GitHub Actions workflow for automated checks
- Includes Label in Name rule (WCAG 2.5.3) with ERROR/WARNING severity

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant