Senast uppdaterad: 2026-09-21
Vi mäter skolor med en öppen linjal — och håller samma linjal mot oss själva. Skolkoll finns för att göra skoldata begriplig och granskningsbar. Då måste vår egen webbplats gå att använda för alla, och vi måste redovisa våra egna brister lika öppet som vi redovisar skolornas. Det här utlåtandet är den redovisningen: vad som fungerar, vad som inte gör det ännu, och hur du säger till oss.
Skolkoll tillämpar DOS-lagen fullt ut — och är i dag delvis förenlig med den. Vi rapporterar de kvarvarande bristerna i avsnitt 2. Brister på nivå A och AA får åtgärdsdatum senast 90 dagar efter senaste publicering av utlåtandet, om inget annat datum anges. Brister som avser AAA-krav ligger utanför den nivå utlåtandet utfäster; de redovisas öppet men saknar åtagandedatum, och det anges i så fall vid varje sådan punkt.
Skolkoll står bakom denna webbplats. Vi vill att så många som möjligt ska kunna använda skolkoll.se. Det här utlåtandet beskriver hur Skolkoll förhåller sig till WCAG 2.1 nivå AA — vad som uppfyller kraven och vad som inte gör det — samt hur du kan rapportera problem till oss så att vi kan åtgärda dem.
Skolkoll är en privat aktör som riktar sig till bland annat kommunal sektor (kommunlicenser för skoldata). Vi tillämpar därför kraven i EU-direktiv 2016/2102 (DOS-direktivet) och lagen (2018:1937) om tillgänglighet till digital offentlig service som om de gällde fullt ut.
1. Hur tillgänglig är webbplatsen?
Vi är medvetna om att delar av webbplatsen inte är helt tillgängliga. Skolkoll är delvis förenlig med lagen om tillgänglighet till digital offentlig service. De brister som finns beskrivs i avsnitt 2 nedan.
Den ursprungliga bedömningen gjordes 2026-04-29 mot WCAG 2.1 nivå AA. Då identifierades 16 brister — 7 allvarliga (P1), 5 betydande (P2) och 4 mindre (P3). Samtliga 7 P1-brister och samtliga 5 P2-brister är åtgärdade (se historik i avsnitt 2.5). Av de fyra P3-bristerna verifierades två bort mot produktion (1.4.12 och 2.5.5). De övriga P3-fynden i den ursprungliga bedömningen gällde 3.1.5 och 3.3.3; deras aktuella status beskrivs nedan. Den prioriteringsskalan gäller bara den bedömningen; fynd som tillkommit sedan dess har inte triagerats i samma skala och redovisas därför per WCAG-kriterium och uppmätt värde i stället för med en severity-etikett.
Aktuell status och kvarvarande verifiering:
- 1.4.3 Kontrast (minimum), nivå AA — korrigeringar ingår. En omgranskning mot det dåvarande produktionsbygget
d79fb0a87(2026-09-02) hittade text under 4,5:1. De historiska mätningarna redovisas per yta i avsnitt 2.1; ingen av ytorna tillkom efter 2026-09-03. Korrigeringarna för dessa ytor ingår i den här versionen. Det innebär inte att hela webbplatsens kontrast har verifierats på nytt. - 3.3.3 Förslag vid fel, nivå AA — verifiering återstår. Skolvalsguiden avbryter nu en sökning utan valda faktorer med ett vägledande felmeddelande. Den äldre beskrivningen av ett tomt resultat stämmer inte med nuvarande kod. Den fullständiga manuella verifieringen återstår (avsnitt 2.3).
- 3.1.5 Läsnivå, nivå AAA — öppen, utanför utlåtandets nivå. AAA-krav omfattas inte av den nivå utlåtandet utfäster och saknar därför åtagandedatum (avsnitt 2.3).
- Evidenslucka: den manuella skärmläsargranskningen, som spåras i #2229, är påbörjad men inte klar. NVDA + Firefox kördes 2026-09-12–14 av en extern testare, men inte alla protokollsteg; VoiceOver + Safari återstår helt och all testning med hjälpmedel på mobil är uppskjuten. De brister körningen hittade har implementerade rättelser, men är ännu inte omtestade med skärmläsare i drift. Granskningen kan alltså ge fler fynd (avsnitt 5).
Åtagandet för nivå AA — 1.4.3 och 3.3.3 — ligger kvar: rättelser och återstående verifiering ska vara klara senast 2026-10-16. De tidigare rapporterade fynden på nivå A har implementerade rättelser (avsnitt 2.5). Åtgärdsdatumet för en enskild brist startar inte om när utlåtandet publiceras på nytt — 90-dagarsregeln i inledningen sätter ett tak för nya brister, den förlänger inte ett datum som redan är satt.
Om ärende #2229 fortfarande anger den tidigare fristen 2026-09-16 gäller datumet i detta utlåtande. Den tidigare fristen är passerad; ärendets planering uppdateras i samband med publiceringen.
2. Innehåll som inte är tillgängligt
Nedan redovisas kvarvarande begränsningar, implementerade rättelser och historiska fynd per WCAG-kriterium. Historiska mätningar beskriver det angivna bygget, inte en ny mätning av denna version.
Om formuleringen "inga kända kvarvarande brister". Den bygger på självvärdering, automatiska kontroller i CI och den del av den manuella skärmläsartestningen som hittills är gjord. Den delen är inte klar (avsnitt 1 och 5) och kan ge fler fynd. Formuleringen är därför inte ett konformitetsintyg för kriteriet — den säger vad vi vet i dag.
2.1 Möjligt att uppfatta (Perceivable)
1.1.1 Innehåll som inte är text (nivå A)
- Inga kända kvarvarande brister. Logo-suffixet på startsidan dubblerade tidigare sidans titel för skärmläsare; från och med #2118 har logotyp-bilden tomt
altoch hela det tillgängliga namnet ligger i sr-only-spannet utan inledande bindestreck.
1.3.1 Information och relationer (nivå A)
- Inga kända kvarvarande brister. Sorterbara tabellkolumner saknade tidigare
aria-sort; från och med #2221 (åtgärdat 2026-04-29) sätter SSR-templatearia-sort="none"på alla sorterbara<th>, och aktiv kolumn promotas tillascending/descendingefter varje sort-update. Den dubbla header-strukturen på startsidan är också åtgärdad genom att home hero nu renderas som en namngiven sektion. - Implementerade rättelser; manuell omtestning återstår. Jämförelsedialogen exponerade inte sina data som tabell, saknade värden lästes som tystnad och kommunsidans nyckeltal lästes värde före etikett (#6166). Rättelserna beskrivs i avsnitt 2.5.
1.4.1 Användning av färg (nivå A)
- Inga kända kvarvarande brister. Kartans metric-färgning gick tidigare från röd till grön via gul (diskriminerande för deuteranopi/protanopi); från och med #2223 (åtgärdat 2026-05-05) används en perceptuellt uniform viridis-skala (mörklila → teal → ljusgul) som är colourblind-safe under deuteranopia, protanopia och tritanopia.
- Inga kända kvarvarande brister. Statusindikering på kartan (AKTIV/VILANDE/UPPHÖRT) visades tidigare enbart via grön/orange/röd; från och med #2223 används Okabe-Ito colourblind-safe palett (bluish green / orange / vermillion / sky blue) som är distinguerbar under samtliga vanliga color-vision deficiencies. Map-legend har dessutom textetiketter per status.
1.4.3 Kontrast (minimum) (nivå AA)
- Historiska kontrastfynd och implementerade rättelser. En omgranskning av kontrast mot produktionsbygget
d79fb0a87(2026-09-02) visade text under de 4,5:1 som kriteriet kräver för normal text. Ytorna räknas upp var för sig nedan i stället för som ett antal brister, eftersom gränsdragningen mellan enskilda fynd inte är avgjord. Värdena nedan gäller det dåvarande bygget, före rättelserna; ingen av ytorna tillkom efter 2026-09-03. Tidigare versioner av det här utlåtandet påstod motsatsen — att text och gränssnittskomponenter nådde AA-kravet — vilket var fel; se versionshistoriken i avsnitt 8.Som tolkningshjälp: 4,5:1 är gränsen för normal text. 4,48:1 ligger strax under och är läsbart men inte kravuppfyllande. 2:1 är svagt och svårläst för många. Runt 1,1:1 är texten i praktiken osynlig mot sin bakgrund.
- 3,63:1, mörkt läge. "Enterprise"-etiketten i produktkortsmodulen. Modulen används i sidmallarna för skolöversikter, kommuner och län samt de dynamiska statistiksidorna, på svenska och engelska. Fristående statistikartiklar använder inte modulen. Det gäller en enskild etikettrad i modulen, inte sidans brödtext. Historiskt fynd: #5806.
- 1,12:1, mörkt läge. Bannern "Tillsynsuppgiften kan vara inaktuell" på skolsidor. Den använde en odeklarerad
--surface-2-token, vars ljusa reservfärg blev kvar som bakgrund i mörkt läge medan texten ovanpå var ljus. Om den räknas som en egen brist eller som en del av #5806 är inte avgjort — det är ett av skälen till att vi räknar upp ytor i stället för brister. Rättelsen hör ihop med etiketten ovan, alltså med #5806, inte med #6257, trots den gemensamma mekanismen med nästa punkt. - 1,13:1, huvudsakligen mörkt läge. Åtta
--surface-*-tokens som då saknade deklarationer: deras ljusa reservfärg blev kvar som bakgrund, medan texten ovanpå blev ljus i mörkt läge — ljust på ljust. Det gäller enskilda block — nyckeltalskort, tabellhuvuden, varnings- och informationsrutor, kontaktkort — inte hela sidor; resten av texten på samma sida är opåverkad. Berörda sidor:/statistik/dubbelt-utsatta/,/statistik/friskolekoncerner/,/statistik/koncerner-vs-salsa/,/statistik/nojdhet-vs-resultat/,/statistik/skolenkaten/,/statistik/trendranking/,/upphandling/,/kunder/,/kommunlicens/,/antagning/,/antagning/<kommun>/,/antagningssimulator/,/arsrapport/,/syv-underlag/,/om/skolkoll-i-siffror/,/huvudman/<slug>/och/koncern/<slug>/, samt/en/-motsvarigheterna till de av dem som finns på engelska. Historiskt fynd: #6257. - 4,48:1, ljust läge. Små info-etiketter på
/skola/<slug>/data/och/en/school/<slug>/data/. Sidorna är inte sökindexerade, men de nås av användare via skolsidans flikar. Historiskt fynd: #6258. - 2,09:1, både ljust och mörkt läge. Okryssade historiklager-chips på samma två sidor, där bristen fanns sedan 2026-06-02. Chipsen är operabla kryssrutor, så undantaget för inaktiva gränssnittskomponenter gäller inte. Historiskt fynd: #6259.
- 1,11:1, både ljust och mörkt läge. Texten i kvalitetsmärkningens nyckeltal. Renderas på
/skola/<slug>/,/en/school/<slug>/,/kommun/<slug>/och/en/municipality/<slug>/— samtliga sökindexerade — samt på de två skoldatasidorna ovan, som inte är det. Jämförelsesidorna visar en egen, separat kodad kvalitetsmärkning som inte omfattas av det här fyndet. Historiskt fynd: #6260.
Widgetarna. Ingen av ytorna ovan renderas på de fyra inbäddningsbara widget-routesen. Det är kontrollerat i källkoden för den här publiceringen: ingen av de berörda komponenterna importeras i widget-sidorna, och ingen av de åtta odeklarerade
--surface-*-tokens används där. Den kontrollen är en källkodsgenomgång, inte en mätning i webbläsare; widgetarnas fullständiga manuella granskning återstår (avsnitt 5).Korrigeringarna ingår i den här versionen: produktkortets etikett och tillsynsbannern (#6225), sidornas yttokens (#6245), infoetiketterna (#6241), historiklager-chipsen (#6251) och kvalitetsmärkningen (#6252). Implementering och avgränsade kontroller är inte en ny helhetsgranskning. Åtagandet för dessa ytor ligger kvar till 2026-10-16; de var inte redovisade under det tidigare datumet, 2026-09-16. Endast en av ytorna (#6259) har ett verifierat datum för när den uppstod; för de övriga vet vi att de fanns i bygget
d79fb0a87men inte exakt hur länge.
1.4.10 Omformatering (nivå AA)
- Inga kända kvarvarande brister. Det daterade underlaget är textavståndssvepet 2026-08-25, som vid 375 px uppmätte 0 kontroller med klippt innehåll och ingen horisontell sidscroll (protokoll:
docs/audits/a11y-1412-textavstand-2026-08-25.md). Svepet gällde startsidans hero; omformatering är inte separat mätt per sidmall. Att mjuk scroll respekterarprefers-reduced-motionhör till 2.3.3, inte hit, och redovisas i avsnittet "Det som fungerar".
1.4.11 Icke-textuell kontrast (nivå AA)
- Inga kända kvarvarande brister. Sökrutans rensa-ikon hade tidigare för låg kontrast (vit ikon på halvtransparent-vit pill); från och med #2226 har pillen mörk-translucent bakgrund + vit kant så ikonen och dess pill båda har ≥3:1 mot omgivande hero.
1.4.12 Textavstånd (nivå AA)
- Inga kända kvarvarande brister. Tidigare rapporterades att chip-knappar i hero kunde trunkeras vid ökat textavstånd. Verifierat 2026-08-25 mot produktion — bristen finns inte. Metod: WCAG 1.4.12:s fyra värden applicerades som
!important-override (line-height: 1.5,letter-spacing: 0.12em,word-spacing: 0.16em, styckeavstånd2em) och samtliga interaktiva hero-element mättes om viascrollWidth/scrollHeightmotclientWidth/clientHeight. Urvalet togs strukturellt — samtliga synliga interaktiva element i hero, inklusive sökfältet, rensa-knappen (som renderas först när fältet har innehåll),nearby-btn,search-submitoch guide-länken. Svepet kördes i tre tillstånd — grundläge, med "Fler filter" utfällt och med "Nära mig"-pickern öppen — eftersom flera kontroller bara finns när användaren öppnat något. Resultat med samtliga tillstånd öppna: 24 kontroller vid 375 px och 26 vid 1280 px, 0 med klippt innehåll, och ingen horisontell sidscroll. Antalen skiljer sig mellan bredderna eftersom två kontroller bara finns vid skrivbordsbredd. Chip-knapparna harmin-height, inte fastheight, ochwhite-space: normal— de radbryter i stället för att klippa. Protokollet finns idocs/audits/a11y-1412-textavstand-2026-08-25.md.
2.2 Hanterbart (Operable)
2.4.3 Fokusordning (nivå A)
- Inga kända kvarvarande brister. Cookie-bannern stjäl tidigare initialfokus utan att återställa det; från och med #2224 (åtgärdat 2026-05-05) sparas föregående aktivt element i
previouslyFocusedinnan bannern visas, och fokus återförs till samma element när användaren accepterar eller avvisar. - Implementerad rättelse; manuell omtestning återstår. Jämförelsebalkens knappar låg i tab-ordningen efter hela sidfoten, och balken låg kvar ovanpå den öppna jämförelsedialogen (#6165). Rättelsen beskrivs i avsnitt 2.5.
2.5.5 Mål-storlek (nivå AAA)
- Inga kända kvarvarande brister. Utlåtandet angav tidigare att sökrutans rensa-knapp är ~31×31 px och därmed under AAA-tröskeln. Verifierat 2026-08-26 mot produktion — knappen är 44×44 px och uppfyller alltså AAA-tröskeln 44×44 i 2.5.5. (Den klarar med god marginal också 24×24-tröskeln i WCAG 2.2 SC 2.5.8 Mål-storlek (minimum), nivå AA. Det här utlåtandet deklarerar WCAG 2.1, där ingen AA-tröskel för målstorlek finns; en tidigare version kallade felaktigt 24×24 för en AA-tröskel i 2.1.)
.search-clearsätts tillwidth: 2.75rem; height: 2.75remmed 16 px rotstorlek, mätt till 44×44 px vid både 375 px och 1280 px. Den tidigare uppgiften var felaktig och togs bort i stället för att skjutas framåt.
2.3 Begripligt (Understandable)
3.1.2 Språk hos delar (nivå AA)
- Inga kända kvarvarande brister. Engelska programnamn (t.ex. "International Baccalaureate") på svenska skolsidor saknade tidigare språktagg; från och med #2226 är de inneslutna i
<span lang="en">.
3.1.5 Läsnivå (nivå AAA)
- Texten på
/-sidan ligger på svensk B1–B2-nivå. AAA kräver att texten ska vara begriplig på lägsta sekundärnivå (lättläst). Sajten siktar på AA. Kravet är AAA och ligger utanför granskningens deklarerade nivå, alltså inte en AA-blocker och inte schemalagt under utlåtandets åtagandedatum. Det finns i dag inget öppet åtgärdsspår för lättläst svenska. Utlåtandet hänvisade tidigare till #1380, men det ärendet stängdes 2026-04-28 som "genomförs inte" — dagen innan utlåtandet publicerades första gången. Hänvisningen var alltså felaktig från början och tas bort i stället för att ersättas med ett spår som inte finns. (Severity i den ursprungliga bedömningen: P3, AAA)
3.3.1 Identifiering av fel (nivå A)
- Implementerad rättelse; manuell omtestning återstår. Skolvalsguidens validering avbröt tyst: felmeddelandet visades bara visuellt, och fältet fick varken
aria-invalideller koppling till feltexten (#6163). Rättelsen beskrivs i avsnitt 2.5.
3.3.3 Förslag vid fel (nivå AA)
- Valideringen har ändrats; manuell verifiering återstår. Skolvalsguiden visar ett vägledande meddelande och avbryter sökningen när ingen faktor valts. När avstånd viktats men en plats saknas visas ett fel, adressfältet markeras med
aria-invalidoch får fokus. Rättelserna i #6167 innebär att den äldre uppgiften om ett tomt resultat utan validering inte beskriver nuvarande kod. Vi anger inte kriteriet som färdigverifierat: den återstående manuella genomgången spåras i #2229. Det tidigare åtagandedatumet var 2026-09-16, efter att ha flyttats från 2026-08-28 till 2026-09-16 den 2026-08-25; verifieringen var inte avslutad vid fristen. Åtagandet ligger kvar till 2026-10-16. (Prioritet i den ursprungliga bedömningen: P3. Bedömningen angav felaktigt AAA; kriteriets nivå rättades till AA vid uppdateringen 2026-08-25.)
2.4 Robust (Robust)
4.1.2 Namn, roll, värde (nivå A)
- Inga kända kvarvarande brister. Sticky-header renderades tidigare med
data-visible="false"men förblev i tab-ordningen så skärmläsare hörde båda navigationerna; från och med #1951 renderar SSR sticky-header med bådehiddenochinert(samtaria-hidden="true"), ochsticky-header.jstogglarinert/hiddeni takt med synligheten. - Implementerade rättelser; manuell omtestning återstår. Den manuella NVDA-körningen i september 2026 hittade tre brister mot det här kriteriet i det då testade bygget: skolvalsguidens skolforms- och viktningsknappar saknade valt-läge (#6162), och varken guiden eller kartans popup fick ett tillgängligt namn när fokus flyttades in (#6164). Rättelserna beskrivs i avsnitt 2.5.
4.1.3 Statusmeddelanden (nivå AA)
- Inga kända kvarvarande brister. Tidigare KPI-summering på startsidan annonserade vid varje uppdatering; från och med #2225 är annonseringen flyttad till en separat
role="status"-region som numera uppdateras efter 700 ms utan ny inmatning; pågående laddning och sena sökindex kan skjuta upp skrivningen, högst 5 sekunder. - Implementerade rättelser; manuell omtestning återstår. Skolvalsguidens statusrad var ett vanligt stycke utan live-region, så sök-, validerings- och platsfelsmeddelanden var tysta för skärmläsare (#6163). Jämförelsebalkens antal valda skolor annonserades inte (#6165), och startsidans sökstatus annonserades vid varje tangenttryckning från två synliga regioner, medan den avsedda statusregionen aldrig lästes upp (#6166). Rättelserna beskrivs i avsnitt 2.5.
2.5 Historik — åtgärdade brister
Sju P1-brister (allvarliga) och fem P2-brister identifierades i bedömningen 2026-04-29. Samtliga P1- och P2-brister är nu åtgärdade.
- Åtgärdat 2026-04-29: 1.3.1 Sorterbara tabellkolumner saknade
aria-sort— fixad i #2221. - Åtgärdat 2026-05-05 (P2): 1.1.1 Vapenbilder på startsidan har nu fallback-namn via
aria-labelpå länken — fixad i #2226. - Åtgärdat 2026-05-05 (P2): 1.3.1 SSR-selects för status och skolform markerar laddning med
aria-busytills alternativen är populerade — fixad i #2226. - Åtgärdat 2026-04-29: 3.1.2 Engelska programnamn (t.ex. "International Baccalaureate") på svenska skolsidor saknade språktagg — fixad i #2226.
- Åtgärdat 2026-04-28: 4.1.2
<div role="button">på#table-tools-togglemigrerad till native<button>— fixad i #2163. - Åtgärdat 2026-05-05: 4.1.3 KPI-summering annonserades för aggressivt — flyttad till debounced
role="status"-region i #2225. - Åtgärdat 2026-05-05: 1.4.1 Kartans metric-skala bytt från röd-grön till viridis (colourblind-safe) — fixad i #2223.
- Åtgärdat 2026-05-05: 1.4.1 Kartans statusfärger bytta till Okabe-Ito colourblind-safe palett — fixad i #2223.
- Åtgärdat 2026-05-05 (P2): 1.4.11 Sökrutans rensa-ikon har nu kontrasterande mörk pill-bakgrund, vit kant och vit ikon — fixad i #2226.
- Åtgärdat 2026-05-05: 2.4.3 Cookie-banner återställer nu fokus till föregående element vid accept/reject — fixad i #2224.
- Åtgärdat 2026-05-23 (P2): 4.1.2 Sticky-header renderas nu SSR med
hidden,inertocharia-hidden="true"så dolda länkar inte når tab-ordning eller skärmläsare — fixad i #1951. - Åtgärdat 2026-05-30 (P2): 1.3.1 Home hero renderas inte längre som ett andra
<header>-landmark inuti<main>, utan som en namngiven sektion — fixad i #3560.
Den manuella NVDA + Firefox-körningen 2026-09-12–14 (del av #2229) gav nya fynd som inte ingick i bedömningen 2026-04-29. Rättelserna ingår redan i produktionsversion v1.21.29 — men är ännu inte omtestade med skärmläsare i drift. Fynden har inte triagerats i P1/P2/P3-skalan ovan och redovisas därför per kriterium. Körningen gav 16 rapporterade fynd plus två observationer från ägaren: en ur talloggarna och en från en skärmbild. Tre av de rapporterade bedömdes efter omtriagering inte vara brister — korrekt ARIA, förväntat tabbeteende eller en egenhet hos skärmläsaren — och ett var inte ett eget fynd utan samma brist som ett annat. Kvar blev tolv brister plus de två observationerna; de är grupperade per kriterium nedan:
- Rättelse i v1.21.29: 3.3.1 Identifiering av fel (nivå A) — skolvalsguidens validering avbröt tyst. Klickade man "Visa resultat" utan kriterium, eller angav en plats som inte kunde slås upp, visades meddelandet bara visuellt: fältet fick varken
aria-invalideller koppling till feltexten. Rättad i #6163 via #6167. - Rättelse i v1.21.29: 4.1.2 Namn, roll, värde (nivå A) — skolvalsguidens skolforms- och viktningsknappar saknade
aria-pressed, så valt läge var oläsbart. Rättad i #6162 via #6167. - Rättelse i v1.21.29: 4.1.2 Namn, roll, värde (nivå A) — varken skolvalsguiden eller kartans popup hade ett tillgängligt namn när fokus flyttades in. Rättad i #6164 via #6167.
- Rättelse i v1.21.29: 4.1.3 Statusmeddelanden (nivå AA) — guidens statusrad saknade live-region (#6163); jämförelsebalken annonserade inte antalet valda skolor (#6165); startsidans sökstatus annonserades vid varje tangenttryckning från två synliga regioner, medan den avsedda statusregionen aldrig lästes upp (#6166).
- Rättelse i v1.21.29: 2.4.3 Fokusordning (nivå A) — jämförelsebalkens knappar låg sist i tab-ordningen, efter hela sidfoten, och balken låg kvar ovanpå den öppna jämförelsedialogen (#6165). Efter "Sök skolor" fick användaren dessutom själv leta upp resultattabellen; fokus flyttas nu till resultatrubriken (#6166).
- Rättelse i v1.21.29: 1.3.1 Information och relationer (nivå A) — jämförelsedialogen exponerade inte sina data som tabell, saknade värden lästes som tystnad och kommunsidans nyckeltal lästes värde före etikett. Rättade i #6166.
- Rättelse i v1.21.29, utan eget kriterium: jämförelsedialogen saknade en knapp för att ta bort en enskild skola. Det var inte en kriteriebrist — kryssrutan i resultattabellen fungerade redan som borttagning — men det var ett praktiskt hinder för skärmläsaranvändare, och det åtgärdades tillsammans med de övriga (#6166).
Det som fungerar
Lika viktigt som att redovisa brister är att vara tydlig med vad som faktiskt fungerar. Följande bygger på självvärderingen, de automatiska kontrollerna i CI och den del av den manuella testningen som är gjord, och gäller efter den här publiceringen. Det är inte ett konformitetsintyg: där ett kriterium har en känd öppen brist står det i punkten.
- Tangentbord och fokus. De flöden vi har gått igenom går att använda med enbart tangentbord. Det finns en hoppa-till-innehåll-länk först i tabbordningen, och fokusmarkeringen är synlig. Cookie-bannern återställer fokus till det element du stod på (2.4.3, 2.4.7). Genomgången är inte heltäckande — den manuella tangentbords- och skärmläsargenomgången är inte klar, och jämförelsebalkens tidigare fokusordningsbrist ingår i omtestningen.
- Skärmläsare. Sidor har en
<h1>och korrekt rubrikhierarki, landmärken (main,nav,header) och programmatiska namn på interaktiva element. Sorterbara tabeller exponerararia-sort, och statusuppdateringar annonseras via en debouncadrole="status"-region utan att vara påträngande (1.3.1, 4.1.2, 4.1.3). De brister den manuella NVDA-körningen hittade mot dessa kriterier har implementerade rättelser (avsnitt 2.5), men granskningen är inte klar. - Färg. Kartans skalor använder colourblind-säkra paletter (viridis för mätvärden, Okabe-Ito för status) och information förmedlas aldrig med enbart färg (1.4.1). Gränssnittskomponenter och grafik har inga kända brister mot kravet på icke-textuell kontrast (1.4.11).
- Kontrast. De historiska fynden under 4,5:1 och deras rättelser redovisas i avsnitt 2.1 (1.4.3). Rättelserna omfattar etiketter, chips, nyckeltal och bakgrunder till vissa block. Vi gör inget påstående om att alla sidor därmed har verifierats mot kontrastkravet.
- Rörelse och förstoring. Animationer och mjuk scroll respekterar
prefers-reduced-motion(2.3.3). Sidorna går att förstora, och det daterade svepet av startsidan vid 375 px gav ingen horisontell sidscroll och inget klippt innehåll (1.4.10) — men omformatering är inte separat mätt per sidmall, se avsnitt 2.1. - Mörkt läge och språk. Webbplatsen följer systemets ljusa/mörka läge. Flera av de historiska kontrastfynden i avsnitt 2.1 gällde mörkt läge; rättelserna omfattar även detta läge. Sidans språk är deklarerat och engelska inslag är märkta med
lang="en"så att skärmläsaren uttalar dem rätt (3.1.1, 3.1.2).
Samtliga sju allvarliga (P1) och fem betydande (P2) brister från den ursprungliga bedömningen är åtgärdade — se historiken i avsnitt 2.5. Kvar står verifiering och uppföljning för 1.4.3 och 3.3.3, den påbörjade men inte avslutade manuella skärmläsargranskningen samt 3.1.5 (AAA, utanför den nivå utlåtandet avser). Allt listas öppet i avsnitt 1 och 2.
3. Oproportionerlig börda
Skolkoll åberopar inte oproportionerlig börda enligt 12 § lagen (2018:1937) för någon del av denna webbplats. De tidigare rapporterade fynden på nivå A har implementerade rättelser. För 1.4.3 Kontrast (minimum) och 3.3.3 Förslag vid fel, båda nivå AA, redovisas implementerade rättelser och kvarvarande verifiering i avsnitt 2. Åtagandedatumet i avsnitt 1 ligger kvar. Den kvarvarande AAA-bristen (3.1.5) är ett krav som lagen inte ställer; den redovisas ändå öppet i avsnitt 2 i stället för att utelämnas. Den utestående evidensuppgiften — den manuella skärmläsargranskningen — spåras i #2229 och är påbörjad men inte klar; den kan ge fler fynd.
4. Innehåll som inte omfattas
Följande innehåll på skolkoll.se omfattas inte av kraven i lagen om tillgänglighet till digital offentlig service:
- Tredjepartsinnehåll utanför vår kontroll. Skolverkets, SCB:s, Bolagsverkets och Skolinspektionens öppna API:er levererar texter och dokument vars utformning vi inte kan styra. När sådant innehåll bäddas in (t.ex. dokumentlistor från Skolverket) kan tillgänglighetsbrister i källmaterialet förekomma. Detta är undantaget enligt artikel 1.4(b) i DOS-direktivet (innehåll från tredje part som inte finansieras eller utvecklas av oss).
- Inbäddade kartor (Leaflet/OpenStreetMap) i icke-navigerande syfte. Kartan på startsidan används som komplement till den sökbara tabellen. Tabellen är primär ingång för tangentbordsanvändare. Skolmarkörer i kartan är nu tangentbordsnåbara, men online-kartor undantas explicit i artikel 1.4(c) i DOS-direktivet och vi tillämpar undantaget restriktivt.
- Tredjepartsbibliotek. D3.js och Leaflet levereras lokalt från skolkoll.se. Eventuella tillgänglighetsbrister i bibliotekens egna komponenter (t.ex. Leaflets standardkontroller) ligger utanför vår kodbas men dokumenteras och rapporteras till respektive maintainer.
5. Hur vi har testat webbplatsen
Tillgänglighetsutlåtandet baseras på:
- Självvärdering via manuell kod-review mot WCAG 2.1 AA success-criteria-checklistan. Granskningen genomfördes 2026-04 av plattformsteamet och dokumenteras i
docs/audits/a11y-2026-04.md, som kan lämnas ut på begäran. - Granskningens omfattning täcker: startsida, skolsida, kommunsida, jämförelsevy, hero-navigation, Leaflet-karta, cookie-banner, samt inbäddningsbara widgets.
- Inbäddningsbara widgets: de fyra widget-routesen (kommun-nyckeltal, kommun topp-5 skolor, skolprofil och närliggande skolor) ingår i den automatiska a11y-kontrollen i CI (Pa11y
WCAG2AAsamt Lighthouse efter stagingdriftsättning och i nattlig körning). De automatiska kontrollerna passerar — men som noten nedan om räckvidd visar betyder det inte att sidan uppfyller kraven, bara att de kontroller som körs inte rapporterar något. Det finns dessutom en utkasts-bedömning,docs/audits/widget-a11y-conformance-2026-06.md, som kan lämnas ut på begäran. En fullständig manuell granskning (tangentbord + skärmläsare + reflow) för widgetarna återstår och spåras i #2229, som samlar hela den manuella genomgången; förberedelserna gjordes under #4088. Bedömningen är därför ett utkast — automatiska kontroller passerar, manuell granskning återstår — inte ett konformitetsintyg. - Granskningsprocess: Fem granskningsrundor med adversariell metodik (parallella granskare + skeptisk verifiering + slutgiltig arbitrering) — se
docs/audits/a11y-audit-methodology.md. - Manuell skärmläsartestning — påbörjad, inte klar. En extern testare körde NVDA + Firefox 2026-09-12 till 2026-09-14. Alla protokollsteg kördes för flöde 1 och 4; flöde 3 utom dess
aria-sort-steg; flöde 5 utom läget med noll träffar; flöde 2 bara delvis. VoiceOver + Safari återstår helt, och iOS är uttryckligen uppskjutet. Körningen gav 16 rapporterade fynd plus två observationer från ägaren: en ur talloggarna och en från en skärmbild. Tre bedömdes efter omtriagering inte vara brister (korrekt ARIA, förväntat tabbeteende eller en egenhet hos skärmläsaren) och ett var inte ett eget fynd; övriga har implementerade rättelser (avsnitt 2.5), men är ännu inte omtestade med skärmläsare i drift. De återstående stegen kan ge fler fynd. Körningen har dessutom egna kvalitetsbrister som vi redovisar öppet: flöde 2 och 4 kördes utan belägg för färskt samtyckesläge, flöde 5 kördes med en extra privat flik öppen trots instruktionen, Firefox-versionen är inte dokumenterad, och flöde 2, 4 och 5 fick underkänt av testaren utan att ha testats om. Protokoll och körningssammanfattning finns idocs/audits/a11y-screenreader-2026-04.md. NVDA-talloggarna ligger underdocs/audits/evidence/a11y-2229-nvda-2026-09-12/; arbetet spåras i #2229. - Automatiska kontroller — och deras räckvidd. Pa11y (HTML_CodeSniffer,
WCAG2AA) körs i CI i både ljust och mörkt läge. Lighthouse-kontrollen för tillgänglighet körs också i CI, men bara i ljust läge. En WAVE-granskning körs mot produktion efter varje release. Samtliga körs mot fasta adresslistor som skiljer sig åt och som inte täcker alla sidor — de är stickprov per sidmall, inte en genomgång. Automatiska fynd kan ge underkända kontroller, men ett godkänt stickprov är inte ett intyg om hela webbplatsen. Vilka adresser som ingår i respektive lista framgår av granskningsunderlaget, som kan lämnas ut på begäran.Den automatiska mörkerkörningen efter stagingdeployen överskred nollbaslinjen på fem sidor, vilket blev #5806. Ärendet namngav inte vilken regel som utlöste fyndet utan lämnade uttryckligen den frågan öppen; först en senare omkörning av samma granskning, med fullständiga fynd, tillskrev det "Enterprise"-etiketten och fann dessutom den inaktuella tillsynsbannern. Bannern kommer alltså från den omkörningen, inte från den första körningens rapport — det är ett av skälen till att avsnitt 2.1 säger att gränsen mellan bannern och #5806 inte är avgjord. Flertalet övriga ytor ligger på sidor som ingen lista når. Men minst en yta — kvalitetsmärkningen (#6260) — ligger på sidtyper som listorna täcker och rapporterades ändå inte. Uppföljningen spåras i #6260. Varför är under utredning; det kan bero på att märkningen inte renderas på just de adresser som ingår i listan, eller på att kontrollen inte klarar att mäta den. Ansvarig är plattformsteamet; utredningen ska vara klar senast 2026-10-16 och redovisas vid nästa publicering av utlåtandet. Tills dess vilar formuleringen "inga kända kvarvarande brister" på en kontrollkedja med ett känt hål.
- Omgranskningen av kontrast i avsnitt 2.1 gjordes mot produktionsbygget
d79fb0a87(2026-09-02) med samma motor plus beräkning ur tokenvärdena ipublic/styles.css.
Den senaste fullständiga bedömningen är gjord 2026-06-18. Den bedömningens slutsats — "fyra P3 kvarstår, ingen är en AA-blocker" — har visat sig ofullständig, vilket är vad det här utlåtandet rättar. Någon ny helhetsgranskning har inte gjorts sedan dess; nästa är planerad enligt avsnitt 8. Utlåtandet uppdateras efter varje större tillgänglighetsåtgärd samt minst årligen. (Tidigare versioner angav här att webbplatsen publicerades före 23 september 2018 — den övergångsregel i DOS-lagen som avgör vilket efterlevnadsdatum som gäller. Vi saknar underlag för uppgiften om publicering före det datumet. Uppgiften är borttagen 2026-09-21; vi gör inget anspråk på den övergångsregeln.)
6. Rapportera en brist och kontakta oss
Vi vill veta om du upptäcker brister i tillgängligheten på skolkoll.se så att vi kan åtgärda dem. Du kan också begära att få information på ett annat format om du behöver det — exempelvis en utskrivbar version eller text utan tabeller.
Rapportera en brist:
- E-post: info@skolspegeln.se — skriv gärna "Tillgänglighet" i ärenderaden så når meddelandet rätt person direkt.
- Hantering: rapporten tas emot och bedöms manuellt i den angivna e-postkanalen; ingen extern supportportal används för ny intake.
Beskriv gärna vilken sida det gäller (URL), vad som inte fungerade och vilken webbläsare eller vilket hjälpmedel du använde — det hjälper oss att återskapa och åtgärda problemet snabbare.
Vi strävar efter att svara inom 14 dagar. Om vi behöver mer tid för att åtgärda en brist meddelar vi dig en preliminär tidsplan.
7. Tillsynsförfarande
Myndigheten för digital förvaltning (DiGG) har ansvar för tillsyn av lagen om tillgänglighet till digital offentlig service. Om du inte är nöjd med hur vi hanterar dina synpunkter, eller om du har klagomål på hur webbplatsen följer lagen, kan du anmäla det till DiGG.
Anmäl bristande tillgänglighet till DiGG: digg.se/tdosanmalan
För upphandlare
Köper du Skolkoll för en kommun eller annan offentlig aktör behöver du kunna dokumentera tjänstens tillgänglighet i din egen upphandling och DOS-uppföljning. Granskningsunderlag kan lämnas ut på begäran:
Läs detta först: utlåtandet är inte ett konformitetsintyg, varken i sin helhet eller för ett enskilt kriterium. Det är en redovisning av vad vi vet i dag. Sajten är delvis förenlig (avsnitt 1), AA-rättelser och kvarvarande verifiering redovisas med åtagandedatum, och den manuella skärmläsargranskningen är inte klar. Bädda inte in ett påstående om full konformitet i din upphandlingsdokumentation med det här dokumentet som stöd.
- Detta utlåtande redovisar status, kända brister (per WCAG-kriterium) och åtgärdsplan.
- Granskningsunderlaget omfattar självvärdering mot WCAG 2.1 AA, granskningsmetodik och skärmläsartester.
- Inbäddningsbara widgetar (kommunlicens) har en separat utkasts-bedömning av konformitet; den fullständiga manuella granskningen spåras i #2229. Ingen av kontrastytorna i avsnitt 2.1 renderas på widget-routesen — se noten där för hur det kontrollerats.
- Säkerhet och dataskydd för upphandling finns samlat på vår säkerhetssida.
Behöver du underlag i ett särskilt format — exempelvis en EN 301 549-mappning eller en VPAT-motsvarighet — kontakta oss på info@skolspegeln.se så tar vi fram det.
8. Senast uppdaterad och versionering
Detta utlåtande uppdateras efter varje större tillgänglighetsåtgärd samt minst årligen. Det publicerades första gången 2026-04-29 och uppdaterades senast 2026-09-21. Den senaste fullständiga självvärderingen av hela webbplatsen gjordes 2026-06-18; uppdateringar däremellan avser enskilda, daterade kontroller och innebär inte att en ny helhetsgranskning har gjorts. Nästa planerade helhetsgranskning sker när den manuella skärmläsargranskningen i #2229 är genomförd, dock senast 2027-06-18.
Versionshistorik
- 2026-09-21: Rättelse av utlåtandet, och ett åtagandedatum som inte hölls.
- Det tidigare åtagandedatumet, 2026-09-16, passerade utan slutförd verifiering. Den manuella skärmläsargranskningen (#2229) är fortfarande inte avslutad: NVDA + Firefox kördes 2026-09-12–14 utan att alla protokollsteg hanns med, och VoiceOver + Safari återstår helt. Åtagandedatumet är nu 2026-10-16. Den missade fristen redovisas och döljs inte som en rutinmässig förlängning. Det tidigare datumet hade redan flyttats från 2026-08-28 till 2026-09-16 den 2026-08-25. För 3.3.3 finns implementerad validering, men manuell verifiering återstår.
- Kontrastfynden redovisas tillsammans med rättelserna. De historiska 1.4.3-ytorna i avsnitt 2.1 omfattades inte av det förra åtagandet eftersom de saknades i utlåtandet. De redovisas nu med sina ursprungliga mätningar, implementerade rättelser och kvarstående åtagande.
- Utlåtandet innehöll felaktiga uppgifter, som rättas här. Avsnitt 1 angav att "återstående öppna brister är 2 P3". Det var fel: kontrastbristerna ovan var i drift och oredovisade. Avsnittet "Det som fungerar" angav att "text och gränssnittskomponenter når kontrastkraven på nivå AA" och att mörkt läge följdes "med bibehållen kontrast". Båda var fel; de historiska fynden och rättelserna redovisas nu var för sig. Även avsnitt 3 skilde tidigare inte mellan implementerad rättelse och färdig verifiering.
- Nivå A. Avsnitt 2.4 angav att det inte fanns några kvarvarande brister mot 4.1.2 och 4.1.3. Det stämde inte vid den förra publiceringen: den manuella NVDA-körningen hittade brister mot 3.3.1, 4.1.2, 4.1.3, 2.4.3 och 1.3.1 som var i drift. De har implementerade rättelser och redovisas i avsnitt 2.5.
- Spårning. Hänvisningen till #1380 för lättläst svenska (3.1.5) är borttagen: ärendet stängdes som "genomförs inte" 2026-04-28, dagen innan utlåtandet publicerades första gången, så hänvisningen var felaktig hela tiden. Något ersättande spår finns inte. De historiska kontrastfynden dokumenterades i #5806, #6257, #6258, #6259 och #6260.
- Hur felet kunde stå kvar, och vad som ändrats. De tidigare påståendena byggde på att stängda ärenden togs som bevis för att bristerna var borta, och på automatiska kontroller vars adresslistor inte når de berörda sidorna — och, i minst ett fall, på en kontroll som nådde sidtypen och ändå inte rapporterade ytan (avsnitt 5). Rättelsen skiljer de daterade mätningarna av det äldre bygget från de implementerade korrigeringarna. Den är inte en ny mätning av hela webbplatsen. Två av utlåtandets spårningshänvisningar har visat sig peka på stängda ärenden (#1975 och #1380). Varje hänvisning till ett ärende är nu förtecknad i ett register i kodbasen, och registret skiljer på två slag. För de ärenden som utlåtandet i dag pekar ut som platsen där arbetet pågår kräver ett test att registret säger att ärendet är öppet och att den uppgiften kontrollerades manuellt tidigast samma dag som utlåtandet senast publicerades. Rent historiska hänvisningar — som de två nyss nämnda — förtecknas också, men något krav på att de ska vara öppna ställs inte: de är stängda, och det är det normala för en historisk uppgift. Testet frågar inte GitHub — det kräver att uppgiften dateras om vid varje ny publicering och stoppar en hänvisning vars uppgift inte har bekräftats på nytt. Att någon faktiskt slår upp ärendet kan ett test inte framtvinga; det kan bara kräva att kontrollen intygas om.
- 2026-08-26: 2.5.5 (mål-storlek) verifierad bort — sökrutans rensa-knapp är 44×44 px, inte ~31×31 som utlåtandet angav sedan 2026-04-29. Uppgiften var felaktig och togs bort i stället för att skjutas framåt. Kvarvarande brister: 2 (3.1.5 AAA utanför scope, 3.3.3 AA under åtagandet). Rättat 2026-09-21: antalet "2" var fel — kontrastbrister enligt 1.4.3 var i drift och oredovisade, och nivå A-brister som den manuella NVDA-körningen senare hittade fanns också. Posten står kvar som den publicerades; se den översta posten.
- 2026-08-25: 1.4.12 (textavstånd) verifierad bort mot produktion med daterat protokoll — bristen fanns inte. Två av de kvarvarande P3-bristerna (2.5.5 och 3.1.5) är omklassificerade som AAA-krav utanför granskningens AA-nivå och är därmed inte schemalagda under åtagandedatumet; 3.3.3 rättades samtidigt från AAA till AA och står kvar under datumet. Åtagandedatumet flyttat från 2026-08-28 till 2026-09-16 och bär nu både 3.3.3 och den manuella skärmläsargranskningen (#2229); det nya datumet ligger på taket för det 90-dagarsfönster som redan var utfäst och innebär ingen förlängning bortom det. Spårningen flyttad från den stängda epicen #1975 till #2229.
- 2026-06-18: Samtliga P1- och P2-brister åtgärdade; fyra P3 kvarstår, ingen är en AA-blocker. Lade till avsnitten "Det som fungerar" och "För upphandlare" samt versionshistorik. Rättat 2026-09-21: slutsatsen "ingen är en AA-blocker" var fel. 3.3.3 rättades till AA redan 2026-08-25, och 1.4.3-ytorna i avsnitt 2.1 var i drift och oredovisade. Posten står kvar som den publicerades; se den översta posten.
- 2026-05-30: Startsidans hero renderas inte längre som ett dubblerat
header-landmärke (1.3.1). - 2026-05-23: Sticky-header döljs nu korrekt för tangentbord och skärmläsare med
hidden/inert(4.1.2). - 2026-05-05: Colourblind-säkra kartpaletter, fokusåterställning i cookie-banner och debouncad statusannonsering (1.4.1, 2.4.3, 4.1.3).
- 2026-04-29: Första självvärderingen och publiceringen — 16 identifierade brister (7 P1, 5 P2, 4 P3).
Publikt relevanta ändringar dokumenteras också i vår ändringslogg.