An insulated travel mug beside a wireless charging puck with a red status LED glowing, train-station motion blur behind — the visual marker for PWA accessibility in the offline-first mobile context.
Image description: An insulated travel mug beside a wireless charging puck with a red status LED glowing, train-station motion blur behind — the visual marker for PWA accessibility in the offline-first mobile context.

Engineering primer · PWA-saavutettavuus 2026

Progressiiviset verkkosovellukset ja saavutettavuus: nykytila 2026

Progressiivisten verkkosovellusten saavutettavuuden nykytila 2026: asennuskehotteen käyttöliittymä, mukautuvat kuvakkeet, ruudunlukuohjelman siirtymä verkon ja natiivisovelluksen välillä, manifest-ominaisuudet, offline-tila avustavalla teknologialla ja iOS Safarin asennuspolku iOS 16.4:n jälkeen.

Progressiiviset verkkosovellukset ja saavutettavuus:
nykytila 2026

Kuusi vuotta sen jälkeen kun Apple toimitti iOS 16.4:ssä toimivan asennuspolun, progressiivisesta verkkosovelluksesta on tullut uteliaisuuden kohteen sijaan hankintakysymys. Tämä primer on suunnattu kehitystiimeille, joiden on tiedettävä vuonna 2026, mitä PWA todella on velkaa avustavan teknologian käyttäjilleen — ja missä alusta edelleen jää aitoa natiivisovellusta jälkeen.

2023
iOS 16.4 — ensimmäinen käyttökelpoinen PWA-asennuspolku Safarissa
11
manifest-ominaisuutta, jotka vaikuttavat avustavan teknologian toimintaan
approx. 35%
Lighthouse-PWA:ista, joiden asennuspainike on nimeämätön avustavalle teknologialle
9 min lukuaika
Päivitetty toukokuu 2026

1. Mitä “PWA-saavutettavuus” tarkoittaa 2026

Progressiivinen verkkosovellus on ajon aikana kolme tavallisen verkkosivuston päälle kerrostettua asiaa: Web App Manifest, service worker ja asennettu tila, jossa selainkehys korvataan käyttöjärjestelmän omalla tehtävänvaihtajamerkinnällä. Jokainen kolmesta kerroksesta tuo mukanaan omat saavutettavuusvelvollisuutensa — ja jokainen epäonnistuu avustavan teknologian käyttäjiensä kanssa eri, erikseen debugattavalla tavalla.

Vuonna 2020 koko keskustelu tiivistyi muotoon “WCAG koskee PWA:ita”, mikä oli teknisesti oikein ja operatiivisesti hyödytöntä. Vuonna 2026 keskustelu jakaantuu neljään pintaan, joilla on todella merkitystä: asennuskehotteen käyttöliittymä, käyttöjärjestelmätason toimintoja ohjaavat manifest-ominaisuudet, siirtymä selaimen saavutettavuuspuun ja käyttöjärjestelmän saavutettavuuspuun välillä kun PWA käynnistyy standalone-tilassa, sekä service workerin offline-fallbackin toiminta avustavalla teknologialla. WCAG 2.2 koskee dokumenttia; alustaintegraatiokerros kuuluu paljon pirstaleisempaan yhdistelmään W3C:n luonnoksia, toimittajakohtaista käyttäytymistä ja verkosta periytyneitä ARIA-käytäntöjä.

Soveltamisalahuomio

Tämä primer kattaa PWA:iden alustaintegraatiopinnan — asennuskehotteen, manifest-ominaisuudet, standalone-tilan avustavan teknologian toiminnan ja offline-fallbackin. Se olettaa, että taustalla oleva dokumentti täyttää jo WCAG 2.2 AA:n vaatimukset. Saavutettamattoman sivun päälle lisätty PWA-kuori on edelleen saavutettamaton sivu.


2. Asennuskehotteen käyttöliittymä

Asennuskehotteen käyttöliittymä on PWA:n käyttäjälle näkyvin pintakerros ja vuonna 2026 edelleen huonoimmin suunniteltu. Chromiumissa kehotteen porttivartijana toimii beforeinstallprompt, joka laukeaa vasta heuristisen sitoutumiskynnyksen ylityttyä ja joka useimmiten kytketään mukautettuun “Asenna sovellus” -painikkeeseen. Juuri tämä painike on paikka, jossa saavutettavuus menee pieleen: noin joka kolmas Lighthouse-pisteytetty PWA renderöi asennustoiminnon <div>- tai tyyliteltynä <span>-elementtinä, jolla ei ole roolia, saavutettavaa nimeä eikä näppäimistökäsittelijää — näkymätön ruudunlukuohjelmalle, Tabilla tavoittamaton ja erottamaton koristekromista.

Korjaus on epäloistava mutta pakollinen: renderöi asennustoiminto oikeana <button>-elementtinä, aseta saavutettava nimi johon sisältyy verbi (“Asenna Disability World tähän laitteeseen”), näytä sama painike kaikissa syötemuodoissa ja ilmoita onnistumisesta tai epäonnistumisesta live-alueella sen jälkeen kun käyttäjä hylkää käyttöjärjestelmätason vahvistusikkunan. Sama koskee related-applications- ja beforeinstallprompt-hylätty-tiloja — molempien on tuotettava avustavalle teknologialle havaittava tilamuutos.


3. Manifest-pintakerros

Web App Manifest kasvoi hiljaisesti vuosien 2022 ja 2026 välillä, ja monilla sen uudemmista ominaisuuksista on suoria saavutettavuusvaikutuksia. Alla oleva matriisi kuvaa yksitoista manifest-ominaisuutta, jotka ovat vuorovaikutuksessa avustavan teknologian kanssa, ja sen, mitä kukin selain nykyään niillä tekee — Chrome Androidilla, Safari iOS:ssä, Edge Windowsilla ja Firefox desktopilla. Ominaisuudet kuten file_handlers, share_target ja window_controls_overlay eivät olleet olemassa missään merkityksellisessä muodossa vuonna 2021; vuonna 2026 ne määräävät, näkyykö PWA käyttöjärjestelmän jakopaneelissa, avaako se tiedostoja järjestelmän tiedostohallinnasta ja renderöikö se oman otsikkopalkin — ja kaikkia näitä ruudunlukuohjelman käyttäjän on pystyttävä havaitsemaan ja käyttämään.

Chrome (Android)Safari (iOS 16.4+)Edge (Windows)Firefox (desktop)
name näkyvissä käyttöjärjestelmän käynnistimessäKylläKylläKylläN/A
short_name kotinäytön kuvakkeen allaKylläKylläKylläN/A
description luetaan avustavalla teknologialla sovellustietodialogissaKylläOsittainKylläN/A
Mukautuvat maskattavat kuvakkeet (purpose: "maskable")KylläEiKylläN/A
lang + dir välittyvät avustavalle teknologialleKylläOsittainKylläN/A
file_handlers — avaa järjestelmän tiedostohallinnastaKylläEiKylläN/A
share_target — näkyy käyttöjärjestelmän jakopaneelissaKylläEiKylläN/A
window_controls_overlay otsikkopalkin hallintaN/AN/AKylläN/A
shortcuts — pitkä painallus käynnistinvalikossaKylläEiKylläN/A
display_override (minimal-ui, window-controls-overlay)KylläEiKylläN/A
launch_handler (focus-existing)KylläEiKylläN/A
window_controls_overlay -ansa

Kun PWA ottaa käyttöön window_controls_overlay-ominaisuuden, se ottaa haltuunsa käyttöjärjestelmän otsikkopalkin — mukaan lukien alueen, jossa natiivisovelluksessa ruudunlukuohjelma ilmoittaisi ikkunan otsikon automaattisesti. Tätä ominaisuutta käyttävien sovellusten on renderöitävä eksplisiittisesti oma kohdistettava, avustavalle teknologialle nimetty otsikkopallin hallinta turvavyöhykeinsetin sisälle, muuten ruudunlukuohjelman käyttäjät menettävät ainoat näytöllä näkyvän ankkurin “missä olen tässä sovelluksessa”.


4. Siirtymä verkosta natiiviin ruudunlukuohjelman näkökulmasta

Vaikein yksittäinen debugausongelma PWA-saavutettavuudessa vuonna 2026 on se, mitä tapahtuu kun käyttäjä ylittää saumalinjan standalone-tilan PWA-kromin ja käyttöjärjestelmän välillä. Androidilla TalkBack lukee manifest-tiedoston name-arvon kun käyttäjä kohdistaa kotinäytön kuvakkeen, ja siirtyy sitten lukemaan sovelluksen sisäistä saavutettavuuspuuta PWA:n käynnistyessä; iOS 16.4+:ssa VoiceOver toimii samoin asennetulle PWA:lle, mutta yhdellä tärkeällä poikkeuksella — ensimmäinen kohdistettava elementti käynnistyksen jälkeen ilmoitetaan ilman sovellustasoista kontekstia, jonka natiivi iOS-sovellus toimittaisi UIWindow-otsikkonsa kautta.

PWA:n kehittäjällä on yksi keino kuroa tämä aukko: kylmäkäynnistyksen yhteydessä siirretään kohdistus otsikolle tai main-alueen maamerkille, jonka saavutettavassa nimessä on sovelluksen nimi, ja asetetaan dokumentin <title> merkkijonoksi, jonka käyttöjärjestelmän tehtävänvaihtaja lukee käyttäjän vaihtaessa sovellusten välillä. Ilman tätä ruudunlukuohjelman käyttäjä menettää kontekstuaalisen vihjeen siitä, että hän on vaihtanut sovellusta — “missä olen” -ongelma, jota natiivissa sovelluksissa ei ole.

”Vuonna 2024 Bluetooth-näppäimistöä käyttävä VoiceOver-käyttäjä kertoi meille WCAG 2.2 AA -sertifioimastamme PWA:sta, että hänellä ei ollut aavistustakaan siirtyneensä Safarista sovellukseemme. Dokumentti oli saavutettava. Siirtymä ei ollut.”

— Disability World käyttäjätutkimuspäiväkirja, lokakuu 2024

5. Offline-tila ja avustava teknologia

Kun service worker tarjoaa offline-fallback-sivun, ilmenee kaksi avustavalle teknologialle ominaista virhettä: kohdistus, joka oli nyt purkautuneen sivun sisällä, pudotetaan äänettömästi dokumentin runkoon, eikä offline-sivu itsessään juuri koskaan käytä live-aluetta kertoakseen ruudunlukuohjelman käyttäjälle mitä juuri tapahtui. Tuloksena on käyttäjä, joka kuulee parhaimmillaan yhden ilmoituksen offline-sivun otsikosta ja kokee muuten täydellisen kontekstin menetyksen.

Korjaus on kohdella offline-siirtymää tilamuutoksena, ilmoittaa siitä kohteliaan aria-live-alueen kautta, palauttaa kohdistus tunnetulle maamerkille offline-sivulla ja tarjota “Yritä uudelleen” -hallinta oikeana painikkeena eikä useimpien service-worker-mallipohjien toimittamana “Lataa uudelleen” -linkkinä. Sama koskee foreground-sync-palautuspolkua: kun yhteys palautuu ja service worker tyhjentää jonon, sekin on tilamuutos, josta avustavan teknologian käyttäjälle on kerrottava.

Service-worker-tarkistuslista

Kohteliaan live-alueen kautta ilmoitetaan “Olet offline” siirtymän yhteydessä. Kohdistus siirretään offline-sivun pääotsikkoon. Selkeästi nimetty <button>Yritä uudelleen</button> on ensimmäinen interaktiivinen elementti. Yhteyden palautuessa toinen kohteliaan ilmoitus sanoo “Yhteys palautettu” ja kohdistus palautetaan siihen, mitä käyttäjä viimeksi käytti.


6. iOS Safari vs. Android vs. natiivi

Kysymyksellä “toimitetaanko PWA vai natiivisovellus” on nyt myös saavutettavuusnäkökulma ominaisuuksien täydellisyyden lisäksi. Alla vertaillaan samaa hypoteettista uutistenlukulaitetta neljällä tavalla — PWA:na Androidilla, PWA:na iOS 16.4+:ssa, natiivina iOS-sovelluksena ja natiivina Android-sovelluksena — viidessä pintakerroksessa, joihin ruudunlukuohjelman käyttäjä törmää ensin.

PWA · AndroidPWA · iOS 16.4+Natiivi · iOSNatiivi · Android
Asennustoiminto löydettävissä avustavalla teknologiallaJos kehittäjä teki sen oikeinLisää kotinäytölle -valikko — löydettävissäApp Store — täysin saavutettavaPlay Store — täysin saavutettava
Sovelluksen nimi ja kuvaus käynnistinkuvakkeessaKylläKyllä (name + apple-mobile-web-app-title)Kyllä (UIKit Info.plist)Kyllä (Android manifest)
Mukautuvat kuvakkeet (teemoitettu / yksivärinen)Kyllä (maskable)EiKylläKyllä
Tehtävänvaihtajakonteksti ilmoitetaanKylläOsittainKyllä (UIWindow-otsikko)Kyllä
Käyttöjärjestelmän jakopaneelin merkintäKyllä (share_target)EiKyllä (UIActivity)Kyllä (Intent filter)
Pitkä painallus — pikavalikkoKyllä (shortcuts)EiKyllä (UIApplicationShortcutItem)Kyllä
Push-ilmoitusten saavutettava sisältöKylläKyllä (iOS 16.4 lähtien)KylläKyllä
Mukautettu roottori / pikanavigaatioN/AN/AKylläKyllä
iOS:n aukko vuonna 2026

iOS 16.4 avasi asennuspolun, push-ilmoitukset ja badging-API:n PWA:ille, ja iOS 17 kuroi perus­käynnistys­pintaa vielä lähemmäksi. Mutta file_handlers, share_target, shortcuts ja window_controls_overlay pysyvät edelleen tukemattomina. Avustavan teknologian käyttäjälle, joka luottaa käyttöjärjestelmän jakopaneeliin siirtääkseen sisältöä sovellusten välillä, iOS-PWA on edelleen selvästi pienempi pinta kuin Android-PWA tai natiivi iOS-sovellus.


Yhteenveto: vuoden 2026 toimintaohje

Toimita asennustoiminto oikeana <button>-elementtinä saavutettavalla nimellä. Kytke kohteliaan live-alueen userChoice-tulokseen. Täytä manifestissa name, short_name, description, lang ja dir, ja toimita maskattavia kuvakkeita Androidille. Jos otat käyttöön window_controls_overlay, renderöi ja nimeä oma otsikkopalkkisi; jos otat käyttöön file_handlers tai share_target, kohtele tuloksena syntyvää käynnistystä tilamuutoksena ja ilmoita siitä sovellukseen saavuttaessa.

Palauta kohdistus nimetylle maamerkille joka kerta kun ruudunlukuohjelman käyttäjä ylittää saumalinjan — kylmäkäynnistyksessä, tehtävänvaihtajasta palatessa, offline-siirtymässä, share-target-käynnistyksessä ja yhteyden palautuessa. Kohtele jokainen ylitys erillisenä tapahtumana, joka on velkaa käyttäjälle havaittavan ilmoituksen ja tunnetun kohdistusankkurin. Mikään tässä ei ole vaikeaa; lähes mitään ei toimiteta johdonmukaisesti.

PWA voi vuonna 2026 olla avustavan teknologian käyttäjälle hyvin lähellä natiivia sovellusta — Androidilla. iOS:llä se on lähempänä kuin ennen, mutta todellinen aukko on edelleen olemassa. Aukko sulkeutuu suunnilleen yksi manifest-ominaisuus vuodessa. Hankintatiimeille, jotka valitsevat PWA:n ja natiivisovelluksen välillä, saavutettavuuskysymys ei ole enää “voiko PWA olla saavutettava?” — se voi. Kysymys on, onko tiimi lukenut yllä olevat yksitoista manifest-riviä ja hyväksynyt, että jokainen niistä on osa toimitettavaa kokonaisuutta.

”PWA-kuori ei vapauta tiimiä alustaintegraatiotyöstä. Se lisää yksitoista uutta saavutettavuuspintaa ja pyytää tiimiä käsittelemään jokaisen niistä jokaisella alustalle, jolle se toimitetaan.”

— Disability World engineering desk