Ny version av standards: 2.5.1: vi granskade vår egna release och hittade tre blockerare
Efter att vi släppte 2.5.0 med stöd för HHS Section 504 körde vi en djup kodgranskning av vår egna release. Vi hittade tre blockerare och fyra varningar.
Det här inlägget går igenom vad vi hittade, vad det betytt i praktiken och hur vi fixade det i standards 2.5.1 och engine 2.5.2.
Bugg 1: TypeScript-typen och JSON-filen stämde inte överens
Compliance-deadline-strukturen för HHS Section 504 hade ett inkonsekvens-problem. JSON-filen skickade employeeThreshold som nyckel. Den publicerade TypeScript-typen deklarerade bara populationThreshold. Det är inte samma sak.
Resultatet: nedströmskonsumenter fick undefined där typen lovade number.
Varför gick testerna igenom? Typkontrollaren var konfigurerad att hoppa över testfiler. Typen testades aldrig mot faktisk JSON-data.
Vi fixade det i 2.5.1 med:
- En discriminated union för compliance-deadline-strukturen, med tydlig separation mellan trösklar baserade på anställda respektive befolkning
- Typkontroll utökad till testfiler, så den här kategorin av diskrepans fångas i CI framöver
Bugg 2: getLegalFramework() returnerade null för REHAB och DDA
REHAB lades till som ett giltigt värde i LegalFramework-unionstypen i 2.5.0. Men frameworks.json saknade posten helt. Resultatet: anrop mot getLegalFramework('REHAB') returnerade null trots att typen lovade ett värde.
Samma latenta bugg existerade för DDA sedan Australia-releasen.
Vi fixade det i 2.5.1 med:
- Fullständig metadata för REHAB och DDA inlagd i
frameworks.json - 552 REHAB-taggar över 46 WCAG 2.1 A/AA-konvergensregler i 12 språk, vilket ger full terminologisk täckning för Rehabilitation Act
getLegalFramework() fungerar nu korrekt för båda.
Bugg 3: inForce var false för lagar och regleringar som redan är aktiva
Det här är den allvarligaste buggen, och den med störst konsekvens för den nordiska marknaden.
HHS Section 504 var markerad inForce: false. Det stämmer att WCAG 2.1 AA-benchmarken börjar 11 maj 2026. Men Section 504 som lag och tillsynsram har gällt sedan 2024-07-08. Paketet saknade distinktionen.
Och för EAA? Fyra poster för privat sektor (Sverige, Finland, Tyskland, Nederländerna) hävdade fortfarande inForce: false, trots att EAA:s tillämpningsdatum passerade i juni 2025. Det är ett faktafel som påverkar alla som använder paketet för att avgöra om ett lagkrav är aktivt för deras kunder.
Vi fixade det i 2.5.1 med:
- Korrigerade
inForce-värden för samtliga berörda poster - Ny mikroföretagsundantag-metadata på alla 7 EAA-poster i privat sektor, baserat på EAA Artikel 4(5): tjänsteleverantörer med färre än 10 anställda och en omsättning på maximalt 2 MEUR är undantagna
- Datadriven
inForce-assertion i testsviten som täcker alla 16 stödda länder. Det automatiserade skyddet träffar exakt det felmönster vi hittade
Vad engine 2.5.2 ändrar
Engine dirigerar nu HHS Section 504 tillsammans med ADA Title III i tillgänglighetsredogörelser för amerikanska sjukvårdskunder. Det gäller sjukhus, federalt kvalificerade hälsocenter (FQHCs) och forskningsinstitut.
Inget beteende förändras för nordiska eller europeiska kunder.
Strukturella förbättringar
Utöver buggfixarna lade vi till:
- JSON Schema för
national-laws-datafilen med ajv-validering i testsviten, vilket ger tidig varning om datastrukturen förändras utan att typen uppdateras - 19 nya tester. 184 totalt. Alla gröna.
Uppgradera
npm install @holmdigital/standards@2.5.1 @holmdigital/engine@2.5.2
Båda paketen är semver-kompatibla med 2.5.0. Ingen breaking change.
Lärdom
Släpp. Sedan granska din egna release med samma noggrannhet som du skulle granska någon annans.
De djupaste buggarna gömmer sig i glappet mellan data och typer. Två filer som var och en ser korrekt ut, men som inte stämmer med varandra, och som ingen enskild kontroll täcker.
Vill du veta om din organisations webbplats uppfyller kraven enligt EAA eller DOS-lagen? Boka en tillgänglighetsanalys och få ett manuellt granskat underlag att arbeta med.
