True Baby Cost Performance & Accessibility Review
Audit date: February 21, 2026 Site: truebabycost.com
Executive Summary
Quick wins identified for both performance and accessibility.
The site is static HTML (no framework overhead) which is inherently fast, but there are optimization opportunities in font loading, image handling, and accessibility attributes.
Performance Analysis
Current Architecture: ✅ Good Foundation
- Static HTML - No JavaScript framework = fast initial load
- Cloudflare Pages - Edge caching, CDN distribution
- No external JS dependencies (except Google Fonts)
Font Loading: ⚠️ Improvement Opportunity
Current implementation:
<link href="https://fonts.googleapis.com/css2?family=Plus+Jakarta+Sans:wght@400;500;600;700;800&family=Space+Grotesk:wght@500;600;700&display=swap" rel="stylesheet">Issues:
- Render-blocking font request
- Loading many font weights (5 for Plus Jakarta, 3 for Space Grotesk)
font-display: swapis set but still delays LCP
Recommendations:
- Subset fonts - Only load weights actually used
- Preconnect (already done ✅)
- Consider self-hosting fonts for better caching
- Use
font-display: optionalfor non-critical fonts - Reduce to 2-3 weights max per font family
Estimated impact: 100-300ms improvement in LCP
Image Optimization: ⚠️ Needs Attention
Current state:
- Images directory exists (
/images/) - Not clear if images are optimized
Recommendations:
- Use WebP format with PNG/JPG fallback
- Add srcset for responsive images
- Implement lazy loading for below-fold images (
loading="lazy") - Set explicit width/height attributes to prevent CLS
- Compress images (TinyPNG, ImageOptim)
Example improvement:
<!-- Before -->
<img src="stroller.jpg">
<!-- After -->
<img
src="stroller.webp"
srcset="stroller-400.webp 400w, stroller-800.webp 800w"
sizes="(max-width: 600px) 400px, 800px"
width="400"
height="300"
loading="lazy"
alt="UPPAbaby Vista stroller in gray">CSS Optimization: Minor Improvements
Current: Inline styles in HTML files
Recommendations:
- Extract critical CSS to
<head>(keep for above-fold) - Move non-critical CSS to external file with
asyncloading - Remove unused CSS rules (audit with Chrome DevTools Coverage)
- Minify CSS (build step)
Third-Party Scripts
Google Analytics (GA4): Present
- Already using gtag.js
- Consider moving to
deferor loading after page load
Recommendations:
- Load GA4 script with
deferattribute - Consider Plausible/Fathom for lighter analytics (GDPR-friendly too)
Accessibility Analysis
Semantic HTML: ✅ Generally Good
- Using
<main>,<nav>,<footer>appropriately - Heading hierarchy seems logical
Color Contrast: ⚠️ Verify
Brand colors:
Action items:
- Test text-on-background combinations with contrast checker
- Ensure 4.5:1 ratio for normal text
- Ensure 3:1 ratio for large text
Form Accessibility: ⚠️ Check Email Capture
Review needed:
- Does email input have associated
<label>? - Is there proper
aria-labeloraria-describedby? - Focus states visible?
- Error messages accessible?
Interactive Elements: ⚠️ Needs Verification
Checklist page concerns:
- Collapsible sections - do they have
aria-expanded? - Category navigation - keyboard accessible?
- Mobile FAB - does it have proper focus management?
Recommendations:
- Add
aria-expandedto expandable sections - Ensure all interactive elements have visible focus states
- Add
role="button"where needed - Ensure keyboard navigation works (Tab, Enter, Escape)
Alternative Text: ⚠️ Unknown State
Action items:
- Verify all images have descriptive
altattributes - Decorative images should have
alt="" - Product images should describe the product
Screen Reader Testing
Recommended tests:
- Navigate site with VoiceOver (Mac) or NVDA (Windows)
- Ensure page structure is logical
- Verify form interactions are announced properly
- Check that dynamic content updates are announced
Quick Wins Checklist
Performance Quick Wins (1-2 hours)
| Task | Impact | Effort |
|---|---|---|
Add loading="lazy" to images | Medium | 15 min |
| Add explicit width/height to images | Medium | 30 min |
| Reduce Google Fonts weights | Low-Medium | 15 min |
Add defer to GA script | Low | 5 min |
| Compress images | Medium | 30 min |
Accessibility Quick Wins (1-2 hours)
| Task | Impact | Effort |
|---|---|---|
| Add missing alt text | High | 30 min |
| Add aria-expanded to collapsibles | Medium | 20 min |
| Verify color contrast | Medium | 20 min |
| Add focus styles | Medium | 20 min |
| Label form inputs | High | 15 min |
Lighthouse Audit Recommendations
Before deploying fixes, run Lighthouse:
- Chrome DevTools → Lighthouse tab
- Test both Mobile and Desktop
- Target scores: Performance >90, Accessibility >90, SEO >95
Current estimate based on code review:
- Performance: ~75-85 (font/image optimization needed)
- Accessibility: ~80-90 (minor fixes needed)
- Best Practices: ~90+ (looks clean)
- SEO: ~85-95 (canonical issues noted in SEO review)
Mobile Performance Considerations
Checklist page mobile redesign (completed Feb 20):
- Card-based layout ✅
- Tap to expand ✅
- FAB category nav ✅
- Sticky bottom bar ✅
Verify:
- Touch targets ≥44px
- No horizontal scroll
- Text readable without zoom
- Forms don’t zoom on focus (use
font-size: 16pxminimum)
Core Web Vitals Targets
| Metric | Target | Notes |
|---|---|---|
| LCP (Largest Contentful Paint) | <2.5s | Font optimization will help |
| FID (First Input Delay) | <100ms | Likely good (minimal JS) |
| CLS (Cumulative Layout Shift) | <0.1 | Add image dimensions |
Implementation Priority
This Week
- Add
loading="lazy"to all images - Add width/height to images
- Fix color contrast issues if found
- Add aria-expanded to collapsibles
Next Week
- Optimize and convert images to WebP
- Self-host fonts or reduce weights
- Full Lighthouse audit and fixes
- Screen reader testing
Later
- Service worker for offline support
- Performance monitoring (Web Vitals JS)
- A/B test page speed impact on engagement
Review completed by Reggie (subagent task) February 21, 2026
Note: This review is based on code inspection. Run actual Lighthouse audits for precise scores and additional issues.