compose-a11y

Apply keyboard accessibility and focus management patterns to Compose Desktop UI.

Updated Apr 13, 2026
One-click install
npx skills add https://github.com/barsia/speqa --skill compose-a11y
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: compose-a11y
Source: https://github.com/barsia/speqa/tree/main/.agents/skills/compose-a11y
Command: npx skills add https://github.com/barsia/speqa --skill compose-a11y

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

Patterns to ensure that interactive UI in Compose Desktop (Jewel/IntelliJ plugin panels) is fully navigable and operable via keyboard, including focus management, visible focus indicators, and safe popup handling.

Core Features & Use Cases

  • Focus sinks, focusTarget, and Tab navigation patterns to ensure keyboard reachability for all interactive elements.
  • Focus rings and semantics to provide clear visual and screen reader cues during keyboard interaction.
  • Popup focus management, Escape handling, and Swing interop considerations to maintain a predictable keyboard workflow in complex panels.

Quick Start

Enable keyboard navigation by placing a focusTarget on interactive elements and wiring onPreviewKeyEvent for Tab handling.

Frequently Asked Questions about compose-a11y

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I make Compose Desktop UI components keyboard-accessible?

Keyboard accessibility in Compose Desktop requires focus sinks, focusTarget, and Tab navigation patterns. These ensure all interactive elements are reachable and operable via keyboard in IntelliJ plugin panels.

How does focus management work in Compose Desktop popup windows?

Focus management in Compose Desktop popups involves Escape handling and Swing interop considerations. These patterns maintain predictable keyboard workflows by properly trapping focus and returning it after popup interactions.

Does Compose Desktop support screen reader semantics for interactive elements?

Compose Desktop supports semantics for screen reader cues. Applying focus rings and semantics properties provides clear visual and screen reader cues during keyboard interaction within IntelliJ plugin panels.

What is the best way to handle Tab navigation in Compose Desktop panels?

The best way to handle Tab navigation in Compose Desktop is using onPreviewKeyEvent to intercept Tab inputs and focusTarget to manage focus sinks. This ensures reliable keyboard operation across various panel layouts.

Why does focus return fail after editing in Compose Desktop Swing interop?

Focus return fails in Compose Desktop Swing interop when focus sinks and onPreviewKeyEvent patterns are not properly applied. Implementing proper focus return patterns ensures focus reliably returns to the correct interactive element.

Do I need focusTarget to ensure keyboard reachability in Compose Desktop?

Yes, you need focusTarget to ensure keyboard reachability in Compose Desktop. Placing focusTarget on interactive elements satisfies requirements for reliable keyboard operation and proper focus management in complex panels.