# MRT-M08: QA sign-off criteria for mobile release
**Area:** Mobile-Responsive Testing
**Model:** minimax/minimax-m2.5
**Tokens:** 2,800
**Cost:** $0.0028
**Time:** 4125ms
**Timestamp:** 2026-02-16T12:17:36.287840

---

# Sunaiva Talking Widget — Mobile Release QA Sign-Off Criteria

**Document Version:** 1.0  
**Effective Date:** [Insert Date]  
**Owned By:** QA Lead / Engineering Lead  
**Applies To:** All mobile releases (iOS Safari, Android Chrome, mobile webviews)

---

## 1. Minimum Devices Tested

### Physical Devices (Mandatory)

| Device Category | Model | OS Version | Rationale |
|-----------------|-------|------------|-----------|
| **iPhone** | iPhone 14 Pro | iOS 17.x | Current-gen flagship |
| **iPhone** | iPhone 13 | iOS 16.x | Common 2-gen-old device |
| **iPhone** | iPhone SE (3rd gen) | iOS 17.x | Lowest-spec iOS supported |
| **Android** | Samsung Galaxy S24 | Android 14 | Current-gen flagship |
| **Android** | Samsung Galaxy A54 | Android 14 | Mid-range popular model |
| **Android** | Google Pixel 7a | Android 14 | Stock Android reference |
| **Android** | Motorola Moto G Play (2023) | Android 13 | Lowest-spec Android supported |

### Emulators/Simulators (Acceptable for Pre-Device Testing)

- iOS Simulator: iPhone 15, iPhone SE (3rd gen)
- Android Emulator: Pixel 7a, Moto G Play config

> **Note:** Emulator passes do not satisfy device requirements. All criteria in this document must pass on physical devices before sign-off.

---

## 2. Minimum Viewports Verified

### Portrait Orientation (Mandatory)

| Viewport Width | Device Context | Min. Testing Required |
|----------------|----------------|----------------------|
| 320px | iPhone SE / budget Android | Full widget interaction |
| 375px | iPhone 13/14 | Full widget interaction |
| 390px | iPhone 14 Pro | Full widget interaction |
| 414px | iPhone Plus / Max | Full widget interaction |
| 428px | iPhone 15 Pro Max | Full widget interaction |
| 360px | Android mid-range | Full widget interaction |
| 412px | Samsung Galaxy S series | Full widget interaction |

### Landscape Orientation (Mandatory)

| Viewport Width | Device Context | Min. Testing Required |
|----------------|----------------|----------------------|
| 568px | iPhone SE | Widget collapses correctly; audio plays |
| 667px | iPhone 13/14 | Widget collapses correctly; audio plays |
| 844px | iPhone 14 Pro Max | Widget collapses correctly; audio plays |
| 640px | Android typical | Widget collapses correctly; audio plays |
| 768px | Tablet landscape | Responsive layout; no horizontal scroll |

### Tablet (Mandatory)

| Viewport | Device Context | Min. Testing Required |
|----------|----------------|----------------------|
| 768px | iPad Mini / standard iPad | Full widget interaction |
| 1024px | iPad Pro | Full widget interaction |
| 800px | Android tablet | Full widget interaction |

### Viewport Checklist per Breakpoint

For each viewport above, verify:

- [ ] Widget renders within viewport bounds without horizontal scroll
- [ ] Widget position fixed/sticky functions correctly
- [ ] All touch targets ≥ 44×44px (iOS) / 48×48dp (Android)
- [ ] Text remains readable without horizontal scrolling
- [ ] Audio player controls are accessible
- [ ] Modal/drawer overlays render correctly
- [ ] No content clipping at 100%, 75%, and 50% zoom levels

---

## 3. Accessibility Audit Score

### Required Scores (No Exceptions)

| Tool | Minimum Score | Notes |
|------|---------------|-------|
| **Lighthouse (Mobile)** | 90 overall, 90+ each subcategory | Run on Chrome DevTools > Lighthouse > Mobile |
| **axe DevTools** | Zero Critical / Zero Major violations | Browser extension scan |
| **WCAG 2.1 AA Compliance** | Full pass | Manual verification of automated findings |

### Accessibility Test Requirements

#### Automated Testing

- [ ] Lighthouse mobile audit: Score ≥ 90 (Performance, Accessibility, Best Practices, SEO)
- [ ] axe DevTools scan: Zero Critical, Zero Major issues
- [ ] Contrast ratio: Minimum 4.5:1 for normal text, 3:1 for large text
- [ ] All images have alt text (or aria-label for icon buttons)

#### Manual Testing

- [ ] Voice widget functions with TalkBack (Android) enabled
- [ ] Voice widget functions with VoiceOver (iOS) enabled
- [ ] All interactive elements focusable via keyboard (hardware keyboard connected to mobile keyboard)
- [ ] Focus order follows logical reading sequence
- [ ] Touch targets meet minimum size (44×44px iOS, 48×48dp Android)
- [ ] No content flashes more than 3 times per second
- [ ] Error messages are announced to screen readers
- [ ] Widget state changes (playing/paused/loading) are announced

#### Voice-Specific Accessibility

- [ ] Audio playback controls are accessible to screen readers
- [ ] Loading states have accessible announcements
- [ ] Error states have clear, spoken-friendly messaging
- [ ] Transcript available on request (for deaf/hard-of-hearing users)

---

## 4. Performance Budget Adherence

### Mobile Performance Targets

| Metric | Budget | Measurement Tool |
|--------|--------|------------------|
| **First Contentful Paint (FCP)** | ≤ 2.0s | Lighthouse / WebPageTest |
| **Largest Contentful Paint (LCP)** | ≤ 2.5s | Lighthouse / WebPageTest |
| **Time to Interactive (TTI)** | ≤ 3.5s | Lighthouse |
| **Total Blocking Time (TBT)** | ≤ 300ms | Lighthouse |
| **Cumulative Layout Shift (CLS)** | ≤ 0.1 | Lighthouse |
| **First Input Delay (FID)** | ≤ 100ms | Lighthouse / Field data |
| **Widget Load Time** | ≤ 1.5s (from script init) | Custom timing mark |
| **Audio Initiation Time** | ≤ 500ms from user tap | Custom timing mark |

### Bundle Size Limits

| Asset | Max Size | Gzipped Target |
|-------|----------|----------------|
| Widget Core Bundle | 150KB | ≤ 50KB |
| Voice Processing Module (if lazy-loaded) | 300KB | ≤ 100KB |
| Total Page Impact (incremental) | 500KB | ≤ 200KB |

### Network Conditions

Performance budgets must pass under:

- [ ] 4G (Good signal): As defined above
- [ ] 4G (Moderate): FCP ≤ 3.5s, TTI ≤ 5s
- [ ] 3G (Good signal): FCP ≤ 5s, graceful degradation acceptable
- [ ] Offline: Widget caches correctly; previous session audio available

### Lighthouse Performance Score

- **Minimum Lighthouse Mobile Score: 85**
- Score must be ≥ 85 on a throttled "Fast 3G" run to account for real-world conditions

### Performance Checklist

- [ ] No render-blocking resources above the fold
- [ ] Images optimized (WebP with fallbacks)
- [ ] Fonts subset and preloaded
- [ ] Third-party scripts lazy-loaded
- [ ] Service worker caches widget assets
- [ ] No jank during scroll (60fps maintained)
- [ ] Audio playback does not cause UI jank

---

## 5. Regression Test Pass Rate

### Minimum Pass Rates

| Test Category | Minimum Pass Rate | Notes |
|---------------|-------------------|-------|
| **Critical Path Tests** | 100% | Core widget functionality |
| **Smoke Test Suite** | 100% | Must all pass |
| **Regression Suite** | ≥ 95% | 5% tolerance for known issues |
| **New Feature Tests** | 100% | All new functionality |
| **Edge Case Tests** | ≥ 90% | Document all failures |

### Test Suite Definition

#### Critical Path (Must Pass 100%)

- Widget renders on page load
- Widget opens/closes on button tap
- Voice recording initiates
- Voice recording stops
- Audio playback plays
- Audio playback pauses
- Audio playback stops
- Widget minimises correctly
- Widget restores from minimised state
- Settings modal opens/closes
- All pricing tiers display correctly (Starter, Pro, Growth)
- Agency code field accepts input
- Network loss handling (graceful error)
- Page refresh preserves widget state

#### Smoke Test (Must Pass 100%)

All Critical Path tests +:

- Widget appears on mobile viewport (320px–428px)
- Touch target sizes ≥ 44px
- No horizontal scroll on any viewport
- Portrait and landscape orientations function
- No console errors (Error level)
- No console warnings (Warning level)
- All three pricing tiers render correctly
- Call-to-action button is visible and tappable
- Widget is accessible via screen reader

#### Regression Suite

Includes all Critical Path + Smoke +:

- All previous bugs marked as "resolved" remain fixed
- Cross-browser functionality (Safari, Chrome, Samsung Internet)
- Performance under sustained use (5+ interactions)
- Memory leak detection (no growth > 20MB over 10 interactions)
- Orientation change handling
- Keyboard visibility handling (input focus)
- Dark mode / light mode (system preference)
- Reduced motion preference respected

### Known Issue Tolerance

- Issues must be documented in JIRA with label `known-issue-mobile`
- Each known issue requires product manager approval
- Known issues cannot exceed 5% of total regression tests
- Known issues must have a target fix version

### Defect Severity Definitions

| Severity | Definition | Must Pass Before Release |
|----------|------------|--------------------------|
| **Critical** | App crashes; data loss; complete feature failure | Yes (0 allowed) |
| **High** | Major feature impaired; workaround difficult | Yes (0 allowed) |
| **Medium** | Feature impaired; workaround exists | No more than 2 |
| **Low** | Cosmetic; minor UX friction | No more than 5 |

---

## Sign-Off Requirements

### Pre-Release Checklist

Before any mobile release, confirm:

- [ ] All physical devices in Section 1 tested
- [ ] All viewports in Section 2 verified
- [ ] Accessibility scores in Section 3 met (90+ Lighthouse, zero Critical axe violations)
- [ ] Performance budgets in Section 4 met (85+ Lighthouse, all budgets pass)
- [ ] Regression pass rates in Section 5 met (100% Critical Path, 100% Smoke, ≥95% Regression)
- [ ] All Critical and High severity defects resolved
- [ ] Product Manager has reviewed and approved known issues

### Sign-Off Authority

| Role | Approval Required |
|------|-------------------|
| Standard Release | QA Lead + Engineering Lead |
| Hotfix Release | Engineering Lead (expedited sign-off permitted) |
| Major Release | QA Lead + Engineering Lead + Product Manager |

---

## Document Control

| Version | Date | Author | Changes |
|---------|------|--------|---------|
| 1.0 | [Insert Date] | [QA Lead Name] | Initial release |

---

*This document is owned by the QA function. Changes require sign-off from QA Lead and Engineering Lead. All deviations from these criteria must be documented and approved before release.*