React-komponenter som uppfyller WCAG och EN 301 549 som standard
@holmdigital/components är ett React-komponentbibliotek med 29 UI-komponenter byggda för regelefterlevnad. EN 301 549 är den europeiska tekniska standarden för digital tillgänglighet som EAA och DOS-lagen hänvisar till. ARIA-attribut, tangentbordsnavigering och färgkontrast är inte tillägg du lägger till efteråt. De är inbyggda från start.
Det är skillnaden mot de flesta komponentbibliotek på marknaden. Du slipper inte köpa tillgänglighet separat, retrofita befintliga komponenter eller göra om halvfärdiga implementationer inför en DIGG-tillsyn. Du importerar en komponent och den är compliant.
Totalt 9 874 nedladdningar för alla tre paket
Vad ingår i biblioteket
Lista över komponenter
29 komponenter för de vanligaste UI-mönstren: formulärfält, knappar, modaler, navigationsmenyer, tabeller, tooltips, datumväljare och mer.
Formulär
- FormField
- Select
- Checkbox
- RadioGroup
- DatePicker
Navigation
- NavigationMenu
- Breadcrumb
- Tabs
- Pagination
- SkipLink
Feedback och overlay
- Modal
- Tooltip
- Alert
- Toast
- LoadingSpinner
Vad "compliant by default" innebär
Varje komponent har inbyggt stöd för:
- ✓ Korrekta ARIA-roller och attribut (inga glömda
aria-label, inga saknaderole) - ✓ Tangentbordsnavigering som fungerar utan mus (Tab, Enter, Escape, piltangenter)
- ✓ Kontrast som uppfyller WCAG 2.2 AA (minst 4,5:1 för text, 3:1 för stora element)
- ✓ Stöd för
prefers-reduced-motion(rörelsekänsliga användare slipper animationer de inte vill ha) - ✓ Focus management i modaler och interaktiva widgets
Allt detta testas automatiskt mot standards som styr compliance vid varje release. Biblioteket har 162 tester, alla gröna.
Design system och UI
Tillgängliga komponenter som standard.
Biblioteket uppfyller EN 301 549 och stödjer 13 språklokaler. Det fungerar med React 18 och React 19, stödjer både App Router och Pages Router i Next.js och är fullt typat i TypeScript.
29 komponenter
Formulär, modaler, navigationsmenyer, tabeller.
EN 301 549
Konformans från dag ett, ingen eftermontering.
TypeScript
Typat i minsta detalj för säker utveckling.
React 18/19
Stöd för både App Router och Pages Router.
Nyheter i v2.7.0: WCAG 2.1 AA-konformans
Version 2.7.0 stänger 14 falsk-konformans-luckor som hittades i en post-2.3.0-granskning. Flera komponenter annonserade WCAG-konformans som koden inte levererade. Alla blockerande fynd är nu åtgärdade.
Nya delade hooks
Två nya hooks i src/_hooks/ som löser focus och scroll för staplade dialogs och toasts:
- ✓
useFocusTrap: fångar fokus i containern, återställer till öppnaren vid stängning - ✓
useScrollLock: referensräknad singleton, staplade dialogs komponeras säkert
Dialog och Modal
- ✓
initialFocusRef: styr vilket element som får fokus vid öppning - ✓
closeOnBackdropClickochcloseOnEscapeprops (standard true) - ✓
variant="alert"ger nu korrektrole="alertdialog" - ✓
aria-modal="true"tillagd
Toast
- ✓ Error-toasts är sticky som standard (Infinity duration)
- ✓ Pausar vid hover och fokus, återupptar vid leave/blur
- ✓ Läshastighetsanpassad duration för icke-error-toasts
- ✓ Severity-aware aria-live: alert/assertive för error/warning, status/polite för info/success
NavigationMenu och övriga
- ✓
pattern="menubar"prop aktiverar W3C APG Menubar-kontrakt - ✓ Combobox och Select: fullständigt APG-tangentbordskontrakt (Home, End, PageUp/Down)
- ✓ Tooltip: Escape-avvisning med korrekt stopPropagation, hover-delay 100 ms
- ✓ 162 tester totalt, alla gröna
Kom igång
Installation
Grundläggande användning
Komponenterna är utformade för att fungera i alla vanliga React-setup utan att kräva specifika CSS-ramverk eller temabibliotek. Du styr utseendet med dina egna stilar.
Tillgänglighet i detalj
ARIA och tangentbordsnavigering
ARIA (Accessible Rich Internet Applications) är den tekniska standarden för hur hjälpmedel läser gränssnitt. Varje komponent implementerar korrekt ARIA-semantik, inklusive roller, tillstånd och egenskaper som skärmläsare behöver för att förstå och kommunicera gränssnittet till användaren.
Kontrastkrav
Från och med 28 juni 2025 gäller EAA för privata aktörer i Sverige. Det innebär att produkter och tjänster riktade till konsumenter måste uppfylla tillgänglighetskraven. För webbapplikationer och e-handel gäller EN 301 549 som teknisk standard.
Att bygga med components från start innebär att du inte behöver göra om arbetet när tillsynen kommer. Varje komponent är dokumenterat compliant mot EN 301 549 och WCAG 2.2 AA (uppfyller också 2.1 AA-kraven i EAA).
Öppen källkod och licens
Paketet är open source under MIT-licens. Källkoden finns på GitHub och bidrag välkomnas.
Relaterade paket
Components är byggda mot standards som styr compliance, regelverket som mappar varje komponentkrav mot gällande lag. Vill du automatisera testning av din webbplats i CI/CD finns engine som skannar live-sidor och kopplar felen till lagrummen.
Utforska biblioteket och bidra på GitHub eller kontakta oss om du behöver hjälp med implementation i ditt projekt.
Börja bygga tillgängligt idag.
Komponentbiblioteket är gratis. Behöver du hjälp med implementationen hjälper vi dig.
