@bimetal/a11y-dom
v0.35.0
Published
Framework-free DOM a11y primitives for the BIMETAL render layers: createFocusTrap (the modal focus lifecycle — initial focus, Tab cycle, Escape, restore) and getFocusable. No framework — consumed by every -{fw}-components binding. Implements the v0.29 key
Maintainers
Readme
@bimetal/a11y-dom
Framework-freie DOM-A11y-Primitive für die BIMETAL-Render-Layer. Ein Baustein, der den
Fokus-Lebenszyklus modaler UI kapselt, ohne ein Framework zu kennen — konsumiert von jeder
@bimetal/<familie>-{fw}-components-Bindung (React/Vue/Svelte/Angular/Vanilla). Setzt den
v0.29-Tastatur-Vertrag um (doc/05-design/keyboard-v029-contract.md).
Zero externe npm-Dependencies. Zero @bimetal-Dependencies.
Installation
npm install @bimetal/a11y-domWas das Paket liefert
| Export | Zweck |
|--------|-------|
| createFocusTrap(container, options?) | Installiert den modalen Fokus-Lebenszyklus: Initial-Fokus setzen, Tab/Shift+Tab im Container zyklen, Escape routen. Gibt eine release()-Funktion (() => void) zurück — ihr Aufruf hebt die Trap auf und stellt den vorherigen Fokus wieder her. |
| getFocusable(container) | Die geordnete Liste der fokussierbaren Elemente innerhalb eines Containers (die Grundlage des Trap-Zyklus). |
| FocusTrapOptions | Optionen: onEscape (nur wenn das Event nicht schon defaultPrevented ist), restoreTo (Ziel der Fokus-Wiederherstellung) und ein Root-Fallback für den Fall, dass restoreTo weg ist. |
Die Framework-Adapter wrappen dieses Primitiv idiomatisch: useFocusTrap (React/Vue),
focusTrap-Action (Svelte), FocusTrapDirective (Angular).
Architektur
Framework-Ebene, Querschnitt A11y. Tiefe: doc/architecture/07-framework-adapter.md.
