Så fungerar @holmdigital/standards
Tillgänglighetslagstiftning är spridd. WCAG, riktlinjerna för tillgängligt webbinnehåll, är en gemensam standard. Men varje land har egna lagar och egna tillsynsmyndigheter, och kraven kan skilja sig mellan offentlig och privat sektor. @holmdigital/standards samlar uppgifter om lagarna i maskinläsbar form, så att du kan slå upp dem i din egen kod.
Vad paketet gör
@holmdigital/standards är dataskiktet under engine och Components. Det kopplar WCAG 2.1 AA och de första kriterierna i WCAG 2.2 till EN 301 549 och till nationella lagar. Du kan slå upp uppgifterna på två sätt:
- Per WCAG-regel får du kriterierna i WCAG och EN 301 549. Standarddatan är på engelska och namnger ingen lag, men den svenska datan har en referens till DOS-lagen för de regler den gäller.
- Per land och sektor får du de uppgifter om lag, tillsyn och sanktioner som lagposten innehåller.
Vad en lagpost innehåller
En lagpost beskriver en lag eller ett regelverk i ett land. Den innehåller bland annat:
- ett kort namn och ett fullständigt namn
- vilken sektor posten gäller: offentlig, privat eller båda
- om lagen har trätt i kraft
- länk till lagtexten samt uppgifter om tillsyn och sanktioner, där datan har dem
Två exempel visar hur det ser ut.
Sverige. Lagposten för offentlig sektor gäller DOS-lagen och anger Digg som tillsynsmyndighet. Lagposten för tillgänglighetslagen, LPTT, gäller vissa produkter och tjänster. Den anger PTS, som är en av flera tillsynsmyndigheter för lagen, och en sanktionsavgift på högst 10 000 000 kronor.
Frankrike. Här syns att en lagpost inte alltid är en lag. Posten för offentlig sektor gäller RGAA, som är ett referensramverk och inte en lag, och anger DINUM, som ger ut RGAA. Posten för vissa produkter och tjänster pekar på Code de la consommation, artikel L. 412-13, och anger DGCCRF, en av flera kontrollmyndigheter.
Uppgifterna i en lagpost hjälper dig att hitta lagtexten. De är inte ett juridiskt besked om vad som gäller för din verksamhet. Öppna länken och kontrollera att sidan visar den lag du letar efter innan du bygger vidare på uppgiften.
Så slår du upp en lagpost
Du anger landskod och sektor med getNationalLawForSector. Du får tillbaka lagposten om datan har en för den kombinationen, annars null. Exemplet visar vad datan innehåller i version 4.1.1.
import {
getNationalLawForSector,
getEnforcementBody,
getMaxSanction
} from '@holmdigital/standards';
getNationalLawForSector('SE', 'public')?.law;
// → "DOS-lagen"
getEnforcementBody('SE', 'public');
// → "Digg (Myndigheten för digital förvaltning)"
getMaxSanction('SE');
// → { law: "Tillgänglighetslagen / LPTT", amount: 10000000, currency: "SEK" }
getMaxSanction returnerar null för ett land där datan saknar ett belopp.
EU:s två ramverk
EU-nivån finns i paketet som två ramverk:
- Webbdirektivet, EU-direktivet om tillgänglighet för offentliga myndigheters webbplatser och mobila applikationer, gäller offentlig sektor.
- EAA, direktivet om tillgänglighetskrav för produkter och tjänster, tillämpas sedan 28 juni 2025 och omfattar ett urval av dem.
Genomförande, tillsyn och sanktioner skiljer sig per land.
Standards har en lagpost per land och sektor där datan har en. En del poster gäller båda sektorerna, och för vissa kombinationer av land och sektor finns ingen post.
Manuella kontroller
Allt går inte att testa automatiskt. Standards innehåller därför också manuella kontroller mappade till EN 301 549, som du hämtar med getICTManualChecklist(). Engine och components använder inte de kontrollerna, så du tar in dem i ditt eget arbetsflöde.
Exempel på det som kräver mänsklig bedömning: kognitiv belastning, språklig klarhet, användarflöden och hur hjälpmedel faktiskt beter sig. Där erbjuder vi manuell tillgänglighetsanalys som komplement till automatisk skanning.
Lagdatan i engine och components
Engine använder standards för att koppla WCAG-fel till en lagreferens. Components använder datan när den skapar tillgänglighetsredogörelser på flera språk, med lagreferenser ur standards. Bygger du egna verktyg kan du använda standards direkt som datakälla.
Lagdatan ligger i standards. Engine och components har egna mallar per språk och några fasta reservtexter för när datan saknar en uppgift.
Kom igång
Installera paketet med npm:
npm install @holmdigital/standards
Skriver du TypeScript fångas felaktiga landskoder och sektorsnamn vid kompilering. Koden är öppen under MIT-licens.
