Tilbage til Browser-kompatibilitet og Progressive Enhancement

3. semester / Tema 13C: Frontend Design

Progressive Enhancement og fallbacks

Tænk kompatibilitet som en strategi: basisoplevelse først, forbedringer hvor det giver mening.

Se undervisningsslides

Relevante links

Kompatibilitet er en strategiopgave

To klassiske begreber:

I praksis er progressive enhancement ofte det mest robuste mindset i UI-arbejde, fordi det tvinger dig til at tænke i basisoplevelse, før du tænker i ekstra polish.

Fallbacks kan være helt enkle

Nogle gange er en fallback bare to deklarationer i den rigtige rækkefølge:

.element {
background: #0000ff;
background: color(rec2020 0 0 1);
}

Browseren bruger den nyere værdi, hvis den kan. Hvis ikke, falder den tilbage til den første. Det er ofte nok, når forskellen kun handler om kvalitet eller farverum, ikke om funktionalitet.

Ikke-kritiske forbedringer er et godt sted at starte

Ting, der gør oplevelsen bedre uden at være afgørende for, at interfacet virker:

p {
text-wrap: pretty;
}

Med pretty undgår man "forældreløse" ord på en ny linje.

details {
interpolate-size: allow-keywords;
}

interpolate-size: allow-keywords gør det muligt at animere mellem tal og keywords som auto.

@view-transition {
navigation: auto;
}

view-transition gør det muligt at få glidende overgange mellem sider.

Hvis en browser ignorerer disse regler, er det normalt fint. Teksten kan stadig læses, accordionen kan stadig åbnes, og navigationen virker stadig. Det er præcis den slags features, der egner sig godt til progressive enhancement.

Moderne select er også progressive enhancement

appearance: base-select er et godt eksempel, fordi <select> stadig fungerer som et almindeligt native kontrolfelt uden understøttelse. Den nye feature forbedrer styling- og API-mulighederne, men den er ikke nødvendig for, at brugeren kan vælge en værdi.

Det samme gælder ::picker(select): brug det som en forbedring, ikke som et krav. Una Kravets har en god oversigt her: select updates.