PWA Readiness Module¶
Module ID: pwa | Type: Conditional | Profiles: full
The PWA Readiness module checks for web app manifest, theme colour, Apple touch icon, service worker registration, and viewport meta tag -- the baseline requirements for Progressive Web App support.
What It Checks¶
| Check | What It Looks For |
|---|---|
| Web app manifest | <link rel="manifest" href="..."> tag |
| Theme colour | <meta name="theme-color"> tag |
| Apple touch icon | <link rel="apple-touch-icon"> tag |
| Service worker | navigator.serviceWorker.register() in scripts |
| Viewport meta | Properly configured viewport meta tag |
| Manifest start_url | start_url property in manifest |
| Manifest display | display: standalone or fullscreen |
| Manifest icons | Icons at required sizes (192x192, 512x512) |
Scoring Breakdown¶
| Criterion | Deduction | Condition |
|---|---|---|
| No web app manifest | -25 | No manifest link tag |
| No theme colour | -10 | No theme-color meta tag |
| No Apple touch icon | -10 | No apple-touch-icon link |
| No service worker | -20 | No service worker registration detected |
| No viewport meta | -10 | Missing or improper viewport tag |
| Manifest missing display | -5 | No display property in manifest |
| Manifest missing icons | -10 | No icons at required sizes |
Example Findings¶
P2 MEDIUM: No web app manifest
A web app manifest is required for PWA install prompts. Without it,
the site cannot be installed as a standalone app.
Fix: Create a manifest.json with name, short_name, start_url,
display, icons, and theme_color. Link it in <head>.
Effort: Medium
P2 MEDIUM: No service worker registered
Service workers enable offline support, push notifications, and
background sync.
Fix: Create a basic service worker for caching static assets.
Effort: Medium
P3 LOW: No Apple touch icon
iOS devices use apple-touch-icon for home screen bookmarks.
Fix: Add <link rel="apple-touch-icon" href="/apple-touch-icon.png">
with a 180x180 PNG.
Effort: Low