Accessible shared components
Makes shared interface components resilient across interaction states, assistive technologies, long translations and enlarged text.
accessible-component-engineering
See how it helpsWhen is it useful?
Use when a design system needs accessible defaults that carry through to every screen using its components.
What does it help you do?
- Defines visible focus, loading, error, disabled and selected states consistently.
- Connects labels, hints and errors automatically through reliable component identifiers.
- Checks long labels, text zoom, touch targets and reduced motion.
Try asking this
Review our shared Button, FormField and Dialog components with German labels, enlarged text and keyboard-only navigation. Exercise loading, disabled and error states as well. A long validation message must stay associated with its field without covering the submit button.
Detailed documentation
Read the skill’s original instructions, examples and checks in their authored language.
Show less
Accessible Component Engineering
When accessibility is baked into shared design-system primitives (Button, IconButton, TextField, Select, Checkbox, Dialog, Menu, Tabs, Toast, Tooltip), every screen using those primitives inherits accessible defaults automatically; when a shared primitive is broken, it multiplies barriers across the entire product.
1. Complete Interactive State Matrix
Every interactive component in the system must define and visually distinguish its full state matrix:
default(rest): clear affordance and>= 3:1boundary contrast where applicable.hover: pointer feedback paired with cursor rules.focus-visible: high-contrast keyboard focus ring (>= 2pxoutline,outline-offset,>= 3:1contrast against adjacent surface) that survivesforced-colors: activemode.active(pressed): tactile visual confirmation on pointer down orSpace/Enteractivation.disabled/readonly: visually distinct, non-interactive (oraria-disabled="true"when focusability must be preserved), blocking click/submit side effects.loading/pending: prevents double submission (aria-busy="true"ordisabled), preserves button width so layout does not jump, and exposes accessible loading status.invalid/error(for form controls): setsaria-invalid="true", pairs border/icon indicator with color (never color alone), and links the error message ID viaaria-describedby.selected/checked/expanded/current: synchronizes visual active styling witharia-selected,aria-checked,aria-expandedoraria-current.
2. Built-In ARIA & ID Wiring
Automate repetitive accessibility plumbing inside the component primitive so feature developers cannot forget it:
FormFieldwrapper: generate a deterministic unique ID (useId()), bind<label for={id}>to the input'sid, and automatically assemblearia-describedbyfrom the helper-text ID and error-message ID whenever either is rendered.Dialog/Drawerprimitive: automatically wirerole="dialog",aria-modal="true",aria-labelledby={titleId}, initial focus placement, backgroundinert/ focus trapping,Escapedismissal and opener focus restoration.IconButtonprimitive: require an explicit accessible label (aria-labelortitle/srOnlyLabel) in the component's type signature and automatically mark the child icon<svg>witharia-hidden="true" focusable="false".
3. Content Resilience, Reflow & Localization
Test every shared component against hostile real-world content before shipping:
- Long & unbroken strings: handle 50-character German compound words, Hungarian suffixes, long email addresses and URLs via appropriate wrapping (
overflow-wrap: break-word) or truncation (text-overflow: ellipsisonly when full text remains accessible). - Multi-line button & badge labels: use
min-heightand vertical padding rather than fixedheight: 36pxso 200% text scaling or wrapped labels never clip vertically. - Touch targets & reduced motion: ensure interactive controls meet
>= 24x24px(44x44pxpreferred on touch) and transitions respect@media (prefers-reduced-motion: reduce). - Coordinate complex widget semantics and keyboard navigation patterns with the accessibility developer.
Included files 1
SKILL.md
About this skill package
accessible-component-engineering
accessible-component-engineering: Turn repeated UI patterns into a coherent design system with reusable components, themes, documentation and accessible behavior.
Show less
accessible-component-engineering
accessible-component-engineering: Turn repeated UI patterns into a coherent design system with reusable components, themes, documentation and accessible behavior.
Includes the complete skill and its supporting files (1 files). The exact authored scope is preserved below.
Original skill description (source language)
Use when building complete interactive state matrices, keyboard operability, focus management, ARIA wiring and content resilience into shared UI primitives.
Install the skill, review its source and trust settings, then enable it for the relevant project or agent.
Requirements
- Orqestria installed on your computer.
