Blogg

Graderat webbläsarstöd, eller hur vi hanterar olika webbläsare

  • 15 juni 2018
  • 0

För länge sedan, när webben var ung, fanns det i huvudsak två olika webbläsare att bry sig om – Netscape och lite senare Internet Explorer. Besökarna använde antingen Windows eller Mac OS. Nej, det var inte riktigt så enkelt men poängen är att det inte var en omöjlig uppgift att testa i tillräckligt många kombinationer av webbläsare och operativsystem för att täcka in nästan alla användare.

Artikelverktyg:

Men nu är det annorlunda. Det finns mängder av olika webbläsare i mängder av versioner som används på ännu fler olika plattformar. Att garantera (och därmed testa) att allt fungerar och ser ut exakt som det är tänkt i alla tänkbara kombinationer blir helt ohållbart.

Runt millennieskiftet var det inte ovanligt att man endast släppte in vissa webbläsare och aktivt utestängde alla som inte använde till exempel Internet Explorer på Windows. Så vill inte vi göra. Men vi kan inte heller testa i allt.

Vi har sedan tidigt 00-tal anammat Progressive Enhancement när vi bygger webblösningar. Det fungerar bra, men vi har också känt att gränserna blir lite otydliga ibland. På något sätt behöver vi avgöra vad vi behöver testa i, och vad som menas med att ”stödja” en viss version av en viss webbläsare.

Gradering av webbläsare

Sedan en tid delar vi in webbläsare i olika klasser på det sätt som Yahoo! beskriver i Graded Browser Support. Det gör det tydligare för alla vad som gäller när man talar om vilka webbläsare vi har stöd för, och vad stöd innebär.

Vi använder oss av följande klasser:

  • Klass A: webbläsare som explicit stöds. Vi testar löpande i dessa webbläsare och att åtgärda funktionella eller visuella buggar i dem har hög prioritet. Det vi levererar ska fungera och se rätt ut (men ”rätt” innebär inte ”exakt likadant”).
  • Klass C: webbläsare som explicit inte stöds. Dessa webbläsare får endast HTML, vissa bilder och grundläggande CSS, men ingen JavaScript.
  • Klass X: webbläsare som hör till en av dessa kategorier:
  • Äldre versioner av Klass A-webbläsare, men inte tillräckligt gamla för att graderas som Klass C.
  • Webbläsare som inte nämns i vår graderingstabell men använder samma renderingsmotor (till exempel WebKit eller Blink) som en Klass A-webbläsare. Klass X-webbläsare får och antas kunna hantera samma CSS och JavaScript som Klass A-webbläsare, men vi testar inte nödvändigtvis i dem. Om det visar sig att en Klass X-webbläsare används av många och är lika kapabel som aktuella Klass A-webbläsare kan den bli uppgraderad till Klass A. Omvänt kan en Klass X-webbläsare som inte hanterar CSS och JavaScript på ett fullgott sätt bli nedgraderad till Klass C. Aktuella exempel på Klass X-webbläsare som är lika kapabla som de webbläsare vi har Klass A-stöd för är Opera och Vivaldi.

I tabellform ser det ut som följer för olika versioner av de vanligast förekommande webbläsarna:

Webbläsare

Klass A

Klass X

Klass C

Chrome

Senaste och föregående version

Äldre än föregående version

Äldre än version 29

Edge

Senaste och föregående version

Äldre än föregående version

Ej applicerbart

Firefox

Senaste och föregående version

Äldre än föregående version

Äldre än version 29

Internet Explorer

11

Ej applicerbart

Äldre än version 11

Safari för iOS

Senaste och föregående version

Äldre än föregående version

Äldre än version 7

Safari för MacOS

Senaste och föregående version

Äldre än föregående version

Äldre än version 6.1

Android (Chromium)

Senaste version

Äldre än senaste version

Äldre än version 4.4

Förtydliganden

  • Med ”senaste version” menas den senaste publikt tillgängliga versionen. Andra versioner som speciella utvecklarversioner eller dagliga releaser räknas inte.
  • I nuläget finns ingen explicit Klass C-version av Edge.
  • På grund av tekniska begränsningar kan vi inte i nuläget förhindra att IE10 applicerar CSS. Det betyder att IE10 får samma CSS som Klass A-webbläsare, men vi stödjer den inte explicit. Om och när vi hittar ett sätt att utesluta IE10 kan detta ändras. IE10 får däremot ingen JavaScript.
  • Graderingen är inte satt i sten – webbläsare och webbläsarversioner kan upp- eller nedgraderas på projektbasis. Dock är det vår utgångspunkt och vad som gäller om vi inte kommer överens om annat i ett projekt.

I praktiken

Rent praktiskt använder vi ett test snarlikt det som BBC:s utvecklare kallar för Cutting the mustard för att avgöra om en webbläsare håller måttet och därmed ska få den fullständiga ”upplevelsen”. Här börjar det låta lite som att precis som förr utestänga allt som inte var godkänt. Den stora skillnaden är att vi ger alla något, men vad varierar.

Webbläsare som inte klarar testet får endast grundläggande styling – bakgrunds- och textfärg samt övergripande typografi och marginaler. Tack vare att vi använder Progressive Enhancement fungerar detta. Upplevelsen blir inte samma som i mer kapabla webbläsare och består av innehåll och navigering utan finesser. Men samtidigt, tack vare att avancerad layout och interaktivitet saknas vet vi vad resultatet blir och kan ge de besökare som använder en gammal webbläsare en kontrollerat nedskalad upplevelse. Alternativet är att låta alla webbläsare få samma CSS och JavaScript, vilket med stor sannolikhet leder till en visuellt kraschad layout som i bästa fall är svårläst och ful, i värsta fall kraschar webbläsaren.

Enklare och tydligare

Vi hoppas att graderat webbläsarstöd ska hjälpa oss och våra kunder att fatta beslut om vilka webbtekniker vi använder, och hur vi använder dem. Genom att ge de webbläsare som inte har inbyggt stöd för nyare tekniker en mycket enklare upplevelse som i huvudsak består av semantisk HTML vet vi nästan helt säkert att det i alla fall kommer att fungera. Vi minskar därmed behovet av att skicka ännu mer kod till äldre webbläsare för att försöka fixa eller implementera funktionalitet de inte har stöd för.

Enklare för oss, bättre för slutanvändaren, tydligare för alla!

Vill du veta mer om hur vi jobbar med och resonerar kring graderat webbläsarstöd?

Tveka inte att ta en kontakt med oss via formuläret så berättar vi gärna mer.

0 kommentarer

Skriv kommentar