Työkalut

axe-core

Katso myös: axe

Deque'n avoimen lähdekoodin automatisoitu saavutettavuuden testausmoottori, jota käyttävät selainlaajennukset (axe DevTools, Accessibility Insights), CI-skriptit ja Lighthouse. Havaitsee arviolta 30–40 % WCAG-ongelmista.

axe-core on Deque Systemsin kehittämä avoimen lähdekoodin automatisoitu saavutettavuuden testausmoottori. Se voimistaa laajan testaustyökalujen ekosysteemin — selainlaajennukset (axe DevTools, Accessibility Insights), CI-skriptit (axe-cli, jest-axe, cypress-axe, playwright-axe) ja erityisesti Lighthhousen saavutettavuusauditoinnin.

Viime vuosikymmenen ajan axe-core on ollut eniten käytetty automatisoitu saavutettavuuden tarkistin maailmassa. Useimmat tämän päivän tuotannossa olevat saavutettavuuteen liittyvät CI-putket käyttävät axe-corea taustalla, usein ilman että tiimi on siitä tietoinen.

Missä axe-core on vahva

axe-coren sääntöjoukko on tarkoituksella konservatiivinen: sääntö sisällytetään vain silloin, kun sen väärän positiivisen tuloksen osuus on käytännössä nolla. Tämä tekee axe-coresta luotettavan CI-portin — kun se merkitsee rikkomuksen, rikkomus on todellinen, ja tiimi voi toimia sen perusteella ilman huolta epäluotettavista tarkistuksista.

Sääntöjä, jotka axe-core havaitsee luotettavasti:

  • Puuttuvat tai tyhjät tunnisteet lomake-elementeissä.
  • Puuttuvat alt-attribuutit (ja ilmeisen turhat alt-tekstit, kuten tiedostonimet).
  • Riittämätön värikontrasti (teksti ja käyttöliittymäkomponentit).
  • Virheellinen ARIA — olemattomat roolit, puuttuvat pakolliset ominaisuudet, kielletyt lapsirakenteet.
  • Päällekkäiset ID:t, jotka rikkovat ARIA-viittaukset.
  • Puuttuva kieliattribuutti <html>-elementissä.
  • Painikkeet ilman saavutettavaa nimeä.
  • Lomakekentät ilman ohjelmallista tunnistetta.
  • Tyhjät linkit (<a href>...</a> ilman tekstiä tai alt-tekstiä).
  • Otsikkotasojen ohitukset ja puuttuva <h1> joissakin konfiguraatioissa.

Tämä luettelo kattaa merkittävän osuuden helposti havaittavista saavutettavuuspuutteista. axe-coren käyttäminen CI:ssä havaitsee ne koodiarvioinnin aikana eikä vasta auditoinnin yhteydessä.

Katto

axe-coren tekijät ovat selkeitä katon suhteen: automatisoidut työkalut voivat havaita enintään 30–40 % WCAG-ongelmista. Loppuosa edellyttää inhimillistä harkintaa ja avustavan teknologian testausta.

Erityisesti axe-core ei pysty havaitsemaan:

  • Virheellistä alt-tekstiä — se pystyy kertomaan, puuttuuko alt-teksti, mutta ei sitä, että alt="hamburger icon" on väärä valikon avausnapille.
  • Harhaanjohtavaa linkkitekstiä — “Klikkaa tästä” -linkit ovat spesifikaation mukaisia, mutta hyödyttömiä ruudunlukuohjelman käyttäjille.
  • Rikkinäistä kohdistusjärjestystä — taulukointijärjestys, joka ei vastaa visuaalista järjestystä, on WCAG 2.4.3 -rikkomus, jota mikään staattinen tarkistin ei pysty havaitsemaan.
  • Virheellistä otsikkorakennetta — axe-core havaitsee puuttuvan h1-otsikon ja tasohyppäykset, mutta ei pysty kertomaan, onko sivulla käytetty h2-otsikkoa siihen, mikä olisi pitänyt olla h1.
  • Sisältöä, joka toimii vain tietyille käyttäjäryhmille — WCAG:n mukainen mutta heikkonäköisille tai kognitiivisista vammoista kärsiville käyttäjille käyttökelvoton.

Sivusto, joka saa axe-coresta nolla rikkomusta, on saavutettavuuden kannalta välttämätön muttei riittävä edellytys. Jäljellä oleva työ — kohdistusjärjestys, sisällön laatu, ruudunlukuohjelman käyttäytyminen, todellisten käyttäjien testaus — on se, mihin todellisessa työssä kuluu eniten aikaa.

Miten axe-corea käytetään käytännössä

Kolme käyttöönottotapaa toimivat hyvin yhdessä:

  1. Editorissa. axe DevTools ja Accessibility Insights suoritetaan pyydettäessä renderöityä DOM:ia vastaan selaimen välilehdessä. Käytetään kehityksen aikana.
  2. CI:ssä. axe-cli, jest-axe, cypress-axe tai playwright-axe keskeyttää buildin uusien rikkomusten ilmetessä. Käytetään regressioiden estämiseen.
  3. Auditoinnin yhteydessä. Ulkoiset auditoijat käyttävät axe-corea lähtöpisteenä ja lisäävät manuaalisen testauksen päälle. Käytetään automaattisen peruslinjan vahvistamiseen.

Yhdistelmä pitää automaattisesti havaittavissa olevat ongelmat nollassa samalla kun todellinen saavutettavuusohjelma hoitaa lopun.