```
### Step 4: Update Service Worker Registration
The service worker is already registered in [index.js](index.js:1), but ensure you're using the latest version by clearing browser cache.
### Step 5: Add Main Content ID
Ensure your main content area has an ID for skip links:
```html
```
### Step 6: Use Utility Classes
Start using the new utility classes in your templates:
```html
Title
Title
```
### Step 7: Use Responsive Grid
Update video grids to use the new responsive system:
```html
```
---
## Testing Checklist
### Accessibility Testing
#### Keyboard Navigation
- [ ] All interactive elements focusable
- [ ] Focus indicators visible (3px outline)
- [ ] Tab order is logical
- [ ] No keyboard traps
- [ ] Skip links work
- [ ] Modal focus management works
#### Screen Reader Testing
- [ ] Test with NVDA (Windows)
- [ ] Test with JAWS (Windows)
- [ ] Test with VoiceOver (macOS/iOS)
- [ ] Test with TalkBack (Android)
- [ ] All images have alt text
- [ ] ARIA labels present
- [ ] Headings hierarchy correct
#### Color Contrast
- [ ] Use WebAIM Contrast Checker
- [ ] Test all theme combinations
- [ ] Test light mode: 4.5:1 minimum
- [ ] Test dark mode: 4.5:1 minimum
- [ ] Test focus indicators: 3:1 minimum
#### Touch Targets
- [ ] Minimum 44x44px on mobile
- [ ] Test on actual mobile device
- [ ] Adequate spacing between targets
#### Forms
- [ ] All inputs have labels
- [ ] Error messages associated
- [ ] Required fields marked
- [ ] Validation messages clear
### Responsive Testing
#### Breakpoints
- [ ] Mobile (320px - 639px)
- [ ] Tablet (640px - 767px)
- [ ] Desktop (768px - 1023px)
- [ ] Large (1024px - 1279px)
- [ ] XL (1280px+)
#### Devices
- [ ] iPhone SE (375px)
- [ ] iPhone 12 Pro (390px)
- [ ] iPad (768px)
- [ ] iPad Pro (1024px)
- [ ] Desktop (1920px)
#### Orientations
- [ ] Portrait mode
- [ ] Landscape mode
- [ ] Fullscreen video in landscape
#### Safe Areas
- [ ] iPhone X+ notch
- [ ] Bottom safe area
- [ ] Left/right safe areas
### PWA Testing
#### Installation
- [ ] Can install from Chrome (desktop)
- [ ] Can install from Edge (desktop)
- [ ] Can install from Safari (iOS)
- [ ] Can install from Chrome (Android)
- [ ] App shortcuts work
- [ ] Icon displays correctly
#### Offline Support
- [ ] Offline page displays
- [ ] Cached assets load
- [ ] Graceful degradation
- [ ] Back online detection
#### Service Worker
- [ ] SW installs correctly
- [ ] Cache strategies work
- [ ] Old caches cleaned up
- [ ] Background sync works
#### Notifications
- [ ] Push notifications work
- [ ] Notification click works
- [ ] Permissions requested properly
### Theme Testing
#### Theme Switching
- [ ] Light/dark toggle works
- [ ] Smooth transitions
- [ ] All 7 colors work
- [ ] Preferences persist
- [ ] System preference detection
#### Appearance
- [ ] Meta theme color updates
- [ ] Logo changes with theme
- [ ] All components themed
- [ ] Video player themed
### Performance Testing
#### Lighthouse Scores
- [ ] Performance: 90+
- [ ] Accessibility: 100
- [ ] Best Practices: 95+
- [ ] SEO: 95+
- [ ] PWA: Pass all checks
#### Core Web Vitals
- [ ] LCP < 2.5s
- [ ] FID < 100ms
- [ ] CLS < 0.1
#### Bundle Size
- [ ] design-system.css: ~15KB
- [ ] accessibility.css: ~8KB
- [ ] responsive.css: ~12KB
- [ ] theme-switcher.js: ~10KB
### Browser Testing
#### Desktop Browsers
- [ ] Chrome (latest)
- [ ] Firefox (latest)
- [ ] Safari (latest)
- [ ] Edge (latest)
#### Mobile Browsers
- [ ] Chrome Mobile
- [ ] Safari iOS
- [ ] Firefox Mobile
- [ ] Samsung Internet
### Reduced Motion Testing
- [ ] Enable "Reduce motion" in OS
- [ ] Animations disabled
- [ ] Transitions instant
- [ ] Scroll behavior auto
### High Contrast Testing
- [ ] Enable High Contrast Mode
- [ ] Borders enhanced
- [ ] Focus rings thicker
- [ ] Text readable
---
## Browser Support
### Minimum Supported Versions
- **Chrome/Edge:** Last 2 versions
- **Firefox:** Last 2 versions
- **Safari:** Last 2 versions
- **iOS Safari:** 12+
- **Chrome Android:** Last 2 versions
### Progressive Enhancement
Features that gracefully degrade:
- Service Worker (requires HTTPS)
- CSS Grid (fallback to Flexbox)
- CSS Custom Properties (fallback values)
- Container Queries (graceful degradation)
---
## Performance Considerations
### CSS Loading Strategy
1. Load critical design system first
2. Load accessibility styles inline
3. Defer non-critical styles
4. Use media queries to load responsive styles conditionally
### JavaScript Loading
- Theme switcher loads after DOMContentLoaded
- Service worker registers asynchronously
- No blocking scripts
### Image Optimization
- Use WebP with fallbacks
- Lazy load images below fold
- Responsive images with srcset
- Proper sizing to prevent CLS
---
## Maintenance
### Adding New Components
1. Use design tokens from design-system.css
2. Follow accessibility guidelines
3. Test responsiveness at all breakpoints
4. Ensure theme compatibility
### Updating Themes
1. Update CSS variables in themes.css
2. Test all color combinations
3. Verify contrast ratios
4. Update theme-switcher.js if adding new colors
### Service Worker Updates
1. Increment CACHE_VERSION in sw.js
2. Update PRECACHE array if needed
3. Test cache strategies
4. Clear old caches
---
## Resources
### Tools
- **Accessibility Testing:**
- [WAVE Browser Extension](https://wave.webaim.org/extension/)
- [axe DevTools](https://www.deque.com/axe/devtools/)
- [Lighthouse](https://developers.google.com/web/tools/lighthouse)
- **Contrast Checking:**
- [WebAIM Contrast Checker](https://webaim.org/resources/contrastchecker/)
- [Contrast Ratio Tool](https://contrast-ratio.com/)
- **Screen Readers:**
- [NVDA (Free)](https://www.nvaccess.org/download/)
- [VoiceOver (Built into macOS/iOS)](https://www.apple.com/accessibility/voiceover/)
- **PWA Testing:**
- [PWA Builder](https://www.pwabuilder.com/)
- [Lighthouse PWA Audit](https://web.dev/pwa-checklist/)
### Documentation
- [WCAG 2.1 Guidelines](https://www.w3.org/WAI/WCAG21/quickref/)
- [MDN Web Docs - Accessibility](https://developer.mozilla.org/en-US/docs/Web/Accessibility)
- [Web.dev - PWA](https://web.dev/progressive-web-apps/)
- [Can I Use](https://caniuse.com/) - Browser compatibility
---
## Support
For questions or issues:
1. Check the testing checklist
2. Review browser console for errors
3. Use browser DevTools for debugging
4. File issues on GitHub
---
## License
Same as EasyStream main project.