Progressive enhancement
Progressive enhancement is een principe binnen webontwikkeling dat er voor zorgt dat websites en webapplicaties die moderne technologieën gebruiken, toch zullen werken in browsers waarin deze functies niet worden ondersteund.
Bij progressive enhancement wordt van een website of webapplicatie eerst een basisversie ontwikkeld die volledig werkt voor bezoekers met verouderde browsers, functiebeperkingen, die surfen terwijl ze bepaalde technieken zoals JavaScript hebben uitgeschakeld, afwijkende apparaten en schermresoluties of met een trage verbinding. Extra functionaliteit die de gebruikservaring en de werking van de gebruikersinterface verrijkt wordt toegevoegd als laag bovenop de basisversie.
Informatie en basisfunctionaliteit dient beschikbaar te zijn in alle browsers en de hoeveelheid broncode wordt beperkt gehouden en semantisch opgesteld. Verbetering en verrijking van de layout en werking gebeurt met externe stylesheets en JavaScripts, op zo’n manier dat dit een goede werking van het basisproduct niet in de weg kan staan.
Het ontwikkelen van een basisversie zonder toeters en bellen, die optioneel wordt verrijkt, komt ten goede aan de toegankelijkheid en de gebruiksvriendelijkheid van een website. Doordat deze basisversie is gebaseerd op ‘gewone’ HTML zijn websites die uitgaan van progressive enhancement doorgaans ook beter geoptimaliseerd voor zoekmachines.
Verschil met graceful degradation
Met het principe van progressieve verbetering wijkt progressive enhancement af van het concept graceful degradation. Bij graceful degradation zijn juist de mogelijkheden van de meest recente browserversies leidend, met als gevolg dat websites en applicaties in oudere browsers verminderd werken en/of er minder toonbaar uitzien.
Graceful degradation gaat er vanuit dat gebruikers voor een goed werkende website hun software maar moeten updaten. Iets dat niet altijd mogelijk is. Bij progressive enhancement is een volledig product voor alle gebruikers juist het vertrekpunt.
De opkomst van progressive enhancement als strategie is rond 2003 ingezet.
Voorbeeld: het mobiele web
Gebruikers met mobiele apparaten zoals smartphones kunnen bij het gebruik van ‘gewone’ websites tegen beperkingen aanlopen. Denk hierbij aan kleinere schermen, tragere internetverbindingen en het ontbreken van een muisaanwijzer. Nog niet zo lang geleden moesten mobiele bezoekers en gebruikers op het web steevast genoegen nemen met een sterk verminderde gebruikservaring, tenzij er van een bezochte website een aparte mobiele versie werd aangeboden.
Door bij de ontwikkeling van een website progressive enhancement toe te passen bij het ontwerpen en schrijven van de broncode en opmaakcode kan één product worden gemaakt dat voor alle bezoekers een gelijkwaardige ervaring biedt. Onder meer door de principes van responsive webdesign toe te passen kan binnen hetzelfde product worden ingespeeld op de voordelen en beperkingen van verschillende hardware, software en verbindingen.
Progressive webapps
Waar de mobiele gebruikservaring jarenlang een beperkte versie was van het bezoek van websites op conventionele computers en laptops is hierin de laatste jaren een verandering zichtbaar. Mobiele browsers hebben op dit moment juist een leidende rol in de ontwikkeling van het wereldwijde web. Niet in de laatste plaats door het ondersteunen van specifieke functies van mobiele hardware en software door middel van API’s, waaronder locatiebepaling, pushberichten en mogelijkheden voor offline gebruik.
De opkomst van de progressive webapps (PWA) zorgt ervoor dat een conventionele website, weergegeven in een webbrowser, steeds meer dezelfde functionaliteit en ervaring kan bieden als een native app. Met als grote voordelen ten opzichte van de reguliere mobiele apps dat je ze meteen kunt gebruiken zonder ze te hoeven installeren vanuit een appstore, dat je één progressive webapp ontwikkelt die in theorie zal werken op elk apparaat (ongeacht besturingssysteem) en dat de apps vindbaar zijn in zoekmachines.