Lighthouse 100/100 mutta lentovaraus mahdotonta — Finnairin saavutettavuusauditointi
Lighthouse-paradoksi: Finnair sai automaattisessa Lighthouse-testissä täydet 100/100 pistettä saavutettavuudesta. WAVE-työkalu löysi 20 virhettä. Ruudunlukijatestaus paljasti 11 kriittistä ongelmaa jotka estävät lentovarauksen tekemisen. Automaattiset työkalut löytävät vain ~10–20% saavutettavuusongelmista.
Miksi automatisointi epäonnistuu?
Lighthouse 100/100 -pisteet tarkoittavat vain sitä, että sivusto läpäisee tietyn joukon automaattisia testejä. Se ei tarkoita, että sivusto olisi saavutettava. Finnair-tapaus osoittaa, kuinka vaarallinen väärinkäsitys tämä on.
Automaattiset työkalut, kuten Lighthouse, axe DevTools ja WAVE, testaavat lähinnä teknisiä perusasioita: onko kuvilla alt-tekstit, ovatko värikontrastit riittävät ja onko otsikkorakenne oikea. Ne eivät voi varmistaa, että varausprosessi toimii loogisesti tai että maksuvaihe on turvallinen ja käytettävä. Automaattiset työkalut löytävät tyypillisesti vain noin 10–20 % kaikista saavutettavuusongelmista.
Ruudunlukijatestausta ei voi täysin automatisoida. Se vaatii ihmisen, joka käyttää ruudunlukijaa päivittäin ja ymmärtää sen logiikan. Kun ruudunlukijan käyttäjä yrittää varata lentoa Finnairilta, hän saattaa kohdata maavalikon, joka ei aukea, tai virheilmoituksia, jotka tulevat liian myöhään. Maksuvaiheessa hän ei välttämättä edes kuule, paljonko on maksamassa. Nämä ovat kriittisiä ongelmia, joita mitkään Lighthouse-pisteet eivät voi piilottaa.
Saavutettavuus on loppujen lopuksi yksinkertaista: sivusto joko toimii tai ei toimi. Jos ruudunlukijan käyttäjä ei voi varata lentoa, sivusto ei ole saavutettava – riippumatta siitä, mitä automaattiset testit sanovat.
Ruudunlukijan käyttäjä ei pysty varaamaan lentoa Finnairilta. Varausvirta pysähtyy kohdemaavalikossa, virhevalidointi puuttuu, ja maksuvaiheessa ei kerrota maksettavaa summaa — kriittinen turvallisuusriski.
Automaattinen testaus vs. todellisuus
Varausvirta — ”Voiko sokea varata lennon?”
Testattu NVDA-ruudunlukijalla Windows 11 -ympäristössä. Speech Viewer tallentaa kaiken mitä ruudunlukija sanoo.
-
Onnistui
Etusivu
Lighthouse 100/100. Navigointi toimii, Axe DevTools löysi 2 moderate-ongelmaa.
-
Epäonnistui
Maavalikko (accordion)
Ei aukea ruudunlukijalla. Enter/Space ei toimi. NVDA: ”luettelo alankomaat 1, suljettu”. Fokus hyppää takaisin. Varaus PYSÄHTYY.
-
Epäonnistui
Päivämäärävalidointi
Hyväksyy mahdottomat päivät (paluulento ennen menolentoa). Ei client-side validointia.
-
Epäonnistui
Virhevalidointi
Virheet ilmoitetaan vasta vaiheessa 4/10. Harhaanjohtava: ”odottamaton virhe” sen sijaan että ”paluulento ei voi olla ennen menolentoa”.
-
Epäonnistui
Päivämäärävalitsin
NVDA: ”maanantai 18 toukokuu”. Hinta (88 €) ei kuulu. <div> sen sijaan että <button>. Väitetty korjatuksi 15.11.2023.
-
Epäonnistui
Kielivalitsin
Orphaned form label (WAVE). NVDA: ”laajennettu” (ei kerro mitä). Valittu kieli ei ilmoiteta.
-
Epäonnistui
CarTrawler-integraatio
Logo ei linkki (HTML-todiste). Ei navigaatiota takaisin. Käyttäjä jumittuu sivulle.
-
Kriittinen
Maksuvaihe (MobilePay)
NVDA: ”Lisää numero maksaaksesi…”. SUMMA (129,48 €) EI KUULU. Käyttäjä ei tiedä paljonko maksaa. TURVALLISUUSRISKI.
-
Kriittinen
Maksuvaihe (Verkkopankki)
NVDA alkaa lukea summaa mutta keskeyttää. Automaattinen fokuksen siirto? Käyttäjä kuulee vain osan.
Kriittiset löydökset
11 dokumentoitua ongelmaa WCAG 2.2 Level A/AA -kriteerien rikkomuksista. HTML-todisteet ja Speech Viewer -lokit teknisessä liitteessä.
| # | Ongelma | Vaikutus | WCAG |
|---|---|---|---|
| 1 | Maavalikko ei aukea ruudunlukijalla | Varaus pysähtyy, ei voi valita kohdetta | 2.1.1 (A), 4.1.2 (A) |
| 2 | Virhevalidointi väärässä paikassa | Virhe vasta vaiheessa 4, harhaanjohtava viesti | 3.3.1 (A), 3.3.3 (AA) |
| 3 | Päivämäärävalidointi puuttuu | Hyväksyy mahdottomat päivät (paluu ennen menoa) | 3.3.4 (AA) |
| 4 | CarTrawler-logo ei linkki | Käyttäjä jumittuu autonvuokraussivulle | 2.4.1 (A), 3.2.3 (AA) |
| 5 | Hintataulukko ei ilmoita hintoja | Ei voi vertailla, ei kuule hintoja | 1.3.1 (A), 4.1.2 (A) |
| 6 | Päivämäärävalitsin ei ilmoita hintoja | Kalenterissa hinnat vain visuaalisesti, tabindex=”-1″ | 1.3.1 (A), 2.1.1 (A) |
| 7 | Orphaned form label (kieli) | Label ei yhdisty kenttään, WAVE-löydös | 1.3.1 (A), 4.1.2 (A) |
| 8 | Kielivalitsin ei ilmoita valintaa | NVDA: ”laajennettu” (ei kerro mitä kieli) | 4.1.2 (A), 4.1.3 (AA) |
| 9 | MobilePay ei ilmoita summaa | Käyttäjä ei tiedä paljonko maksaa — turvallisuusriski | 3.3.4 (AA), 1.3.1 (A) |
| 10 | Virheelliset aikatiedot | Lähtö 00:05, saapuminen 00:05 (mahdoton) | Data-integriteettion gelma |
| 11 | Summa keskeytyy verkkopankissa | NVDA alkaa lukea summaa, keskeyttää, hyppää eteenpäin | 4.1.3 (AA), 3.3.4 (AA) |
Keskeiset opit
1. Automaattiset työkalut eivät riitä. Lighthouse 100/100 mutta varaaminen mahdotonta. WAVE löysi 20 virhettä. NVDA-ruudunlukijatestaus 11 kriittistä. Automaattiset työkalut löytävät vain ~10–20% ongelmista.
2. Systemaattinen ongelma: <div>-elementtien väärinkäyttö. Maavalikko, päivämäärävalitsin ja kielivalitsin toteutettu <div>-elementeillä kun pitäisi käyttää semanttista HTML:ää (<button>, <select>). Kaikki custom dropdowns rikki.
3. Dokumentointi ≠ Saavutettavuus. Finnair dokumentoi ongelmia esimerkillisen läpinäkyvästi, mutta dokumentoituja ongelmia ei korjata. Päivämäärävalitsin ”korjattu 15.11.2023” mutta ongelmat jatkuvat.
4. Kolmansien osapuolten integraatiot kriittisiä. CarTrawler-integraatio ei toimi (logo ei linkki, navigaatio poistettu). Finnair vastuussa kaikesta sisällöstä EU-direktiivin mukaan.
5. Maksuvaihe turvallisuusriski. Maksusumma ei kuulu ruudunlukijalle (MobilePay) tai keskeytyy (verkkopankki). WCAG 3.3.4 Error Prevention -rikkomus. Käyttäjä voi maksaa väärän summan.
Raportit
Miksi Lighthouse-pisteet voivat olla korkeat vaikka sivusto olisi käyttäjille saavuttamaton?
Lighthouse-työkalun korkeat pisteet mittaavat tekniikan noudattamista, mutta eivät takaa käytännön saavutettavuutta. Finnairin lentovaraussivustolla tämä näkyy selvästi: hyvät tekniset pisteet eivät takaa, että näkövammaiset tai motorisesti vammaiset käyttäjät voivat varata lentoja itsenäisesti.
Mitä konkreettisia saavutettavuusongelmia Finnairilta löydettiin?
Auditoinnissa (5.–9.2.2026, WCAG 2.2 AA) havaittiin 11 kriittistä puutetta. Keskeisimmät: dynaamiset lomakekentät eivät ilmoita vaihtuvista virheistä ruudunlukijoille, interaktiiviset elementit puuttuvat näppäimistönavigoinnista, lennon valintapainikkeiden ARIA-merkinnät ovat puutteelliset. Nämä estävät käytännössä näkövammaisen käyttäjän suorittamasta varausta loppuun.
Miksi Lighthouse ei havaitse näitä ongelmia?
Lighthouse testaa automatisoituja sääntöjä, jotka havaitsevat syntaksivirheitä mutta eivät kontekstuaalisia ongelmia. WCAG 2.2 -standardin (W3C) mukaan saavutettavuus vaatii sekä automatisoitua testaamista että manuaalista käyttäjätestausta. Finnairin sivusto läpäisee automaattiset testit mutta epäonnistuu käytettävyyden tasolla.
Mikä on näkövammaisen käyttäjän kokemus varauksenteossa?
Näkövammainen käyttäjä ei saa ilmoitusta virheestä, kun jättää pakollisen kentän tyhjäksi. Näppäimistöllä liikkuva käyttäjä ei pääse painamaan ”Etsi lentoja” -nappia, koska se on piilotettu fokussiverkosta. Käytännössä ostoprosessi keskeytyy eikä varauksen tekeminen onnistu itsenäisesti.
Miten Finnairin sivusto tulisi korjata?
Neljä keskeistä korjausta: (1) lisää aria-live-alueet lomakkeisiin virheilmoituksia varten, (2) varmista kaikkien painikkeiden näppäimistötavoitettavuus, (3) korjaa lennon valintapainikkeiden ARIA-roolit ja -nimet, (4) testaa sivusto oikeilla käyttäjillä näkövammaisina ja motorisesti vammaisina. Nämä muutokset parantavat sekä saavutettavuutta että hakukonesijoitusta.
Lähteet: WCAG 2.2 -standardi (W3C); WebAIM saavutettavuustutkimus 2023; Google Developers Lighthouse-dokumentaatio; WP Saavutettavuus: Finnair-auditointi 5.–9.2.2026