Swipe-back gesture is enabled on iOS
Why it matters
Setting gestureEnabled: false on a stack screen disables the iOS edge-swipe-back gesture for that route only — users learn to swipe back on every other screen, then hit one where it silently fails. They assume the app is broken. This pattern is most common when developers copy-paste screen options without realizing the flag's scope, and it is a specific anti-pattern called out in Apple's HIG navigation section.
Severity rationale
Medium because the back button still works, but the inconsistency trains users to distrust navigation.
Remediation
Audit every Stack.Screen and every screenOptions block for gestureEnabled: false and remove it unless there is a documented UX reason (e.g., mid-checkout to prevent accidental cancellation):
<Stack.Navigator screenOptions={{ gestureEnabled: true, gestureDirection: 'horizontal' }}>
<Stack.Screen name="Detail" component={DetailScreen} />
</Stack.Navigator>
Prefer createNativeStackNavigator over the legacy JS stack — swipe-back is native and smoother.
DetectionPro
The detection method for this pattern is part of AuditBuffet Pro.
The full method (what to look for, pass and fail conditions, and how results get reported) ships inside the Mobile UX Patterns Audit. The pattern definition, severity rationale, and remediation remain openly licensed under CC-BY-4.0.
Taxons
History
- 2026-04-18·v1.0.0·Initial import from mobile-ux-patterns·automated