audit-accessibility

Ensure the plugin's custom UI components are accessible to users with screen readers and other assistive technologies.

npx skills add https://github.com/flutter/flutter-intellij --skill audit-accessibility

Skill: Accessibility (A11y) Audit

You are tasked with ensuring the plugin's custom UI components are accessible to users with screen readers and other assistive technologies.

Objective

Ensure the plugin's custom UI components are accessible to users with screen readers and other assistive technologies.

Workflow Instructions

1. Baseline

  • Run ./gradlew testClasses to ensure project compilation.
  • Run ./gradlew test to ensure the project is stable.
  • Run ./gradlew verifyPlugin to ensure no verification issues.

2. Identify Custom UI

  • List all custom JPanel, JComponent, or Dialog classes in the codebase.

3. Check Properties

  • Verify that every interactive component has:
    • getAccessibleContext().setAccessibleName(...)
    • getAccessibleContext().setAccessibleDescription(...)

4. Focus Management

  • Ensure custom components handle focus traversal correctly (Tab/Shift+Tab).

5. Color Contrast

  • If custom colors are used, verify they meet WCAG contrast guidelines (especially for dark themes).

6. Verify

  • Run ./gradlew testClasses and ./gradlew test to ensure no regressions.
  • Run ./gradlew verifyPlugin to ensure strict compliance.
  • Use the "Accessibility Inspector" (if available in the SDK) or a screen reader to navigate the UI.
  • Suggest manual test steps: Check the code changes made and write test steps for a user to execute that will trigger the code paths that have changed. If needed, add logging statements to verify that the code paths have successfully run.

7. Report & Review

  • Summarize the accessibility improvements in the form of a git commit message.
  • Test Location: Explicitly state where in the IDE the user should go to test the changed functionality (e.g., "Go to Preferences > Languages & Frameworks > Flutter").
  • Action: Ask the user to review the UI changes closely.
  • Do not commit or push.

More skills from flutter

dart-modern-features
flutter
To find candidates for modernization:
flutter-fix-layout-issues
flutter
Fixes Flutter layout errors (overflows, unbounded constraints) using Dart and Flutter MCP tools. Use when addressing "RenderFlex overflowed", "Vertical…
adding-release-notes
flutter
Adds user-facing change descriptions to DevTools release notes. Use when documenting improvements, fixes, or new features in the NEXT_RELEASE_NOTES.md file.
reviewing-devtools-prs
flutter
DevTools repository-specific PR review workflow enforcing DevTools style guidelines and common review patterns. Use when reviewing pull requests in the…
dart-use-primary-constructors
flutter
Help users write syntactically and semantically correct primary constructors in Dart, and migrate/use the new constructor syntax, empty-body semicolon syntax,…
code-documentation
flutter
Guide for writing effective code documentation, including docstrings, JSDoc, dartdoc, and implementation comments. Use this skill when writing new code, adding…
api-review
flutter
Reviews the specified code against the canonical API Design guidelines. Use this skill when the user asks for an API review or to check code against API design…
flutter-accessibility
flutter
Implement WCAG 2 and EN 301 549 accessibility standards and adaptive layouts in Flutter apps. Enforces semantic annotations, tap target sizes (48x48 dp minimum), and text contrast ratios (4.5:1 for small text, 3:1 for large) across mobile, web, and desktop platforms Provides decision logic for web semantics initialization, interactive widget wrapping, screen-size-based layout switching, and keyboard/mouse input handling Includes focus traversal management via FocusTraversalGroup and...