audit-accessibility

Asegurar que los componentes de UI personalizados del plugin sean accesibles para usuarios con lectores de pantalla y otras tecnologías de asistencia.

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.

Más skills de flutter

dart-modern-features
flutter
Para encontrar candidatos para la modernización:
flutter-fix-layout-issues
flutter
Corrige errores de diseño en Flutter (desbordamientos, restricciones ilimitadas) usando herramientas Dart y Flutter MCP. Úsalo al abordar "RenderFlex overflowed", "Vertical…
adding-release-notes
flutter
Añade descripciones de cambios visibles para el usuario a las notas de la versión de DevTools. Úsalo al documentar mejoras, correcciones o nuevas funciones en el archivo NEXT_RELEASE_NOTES.md.
reviewing-devtools-prs
flutter
Flujo de trabajo de revisión de PR específico del repositorio de DevTools que aplica las guías de estilo de DevTools y los patrones de revisión comunes. Úsalo al revisar solicitudes de extracción en el…
dart-use-primary-constructors
flutter
Ayuda a los usuarios a escribir constructores primarios sintáctica y semánticamente correctos en Dart, y a migrar/utilizar la nueva sintaxis de constructor, la sintaxis de punto y coma de cuerpo vacío,…
code-documentation
flutter
Guía para escribir documentación de código efectiva, que incluye docstrings, JSDoc, dartdoc y comentarios de implementación. Usa esta habilidad al escribir código nuevo, agregar…
api-review
flutter
Revisa el código especificado conforme a las pautas canónicas de diseño de API. Usa esta habilidad cuando el usuario solicite una revisión de API o quiera verificar el código según las pautas de diseño de API…
flutter-accessibility
flutter
Implementa los estándares de accesibilidad WCAG 2 y EN 301 549 y diseños adaptativos en aplicaciones Flutter. Aplica anotaciones semánticas, tamaños de destino táctil (mínimo 48x48 dp) y relaciones de contraste de texto (4.5:1 para texto pequeño, 3:1 para texto grande) en plataformas móviles, web y de escritorio. Proporciona lógica de decisión para la inicialización de semántica web, envoltura de widgets interactivos, cambio de diseño basado en tamaño de pantalla y manejo de entrada por teclado/ratón. Incluye gestión de enfoque de navegación mediante FocusTraversalGroup y...