$npx -y skills add Owl-Listener/inclusive-design-skills --skill gesture-alternativesDesign alternatives to gesture-based and motion-based interactions. Use when designing swipe actions, pinch-to-zoom, shake-to-undo, tilt controls, multi-finger gestures, or any interaction that requires specific physical movements. Triggers on: gesture, swipe, pinch, shake, tilt,
| 1 | # Gesture Alternatives |
| 2 | |
| 3 | Every gesture-based interaction must have a simpler alternative. Gestures |
| 4 | that require specific physical movements exclude people with motor |
| 5 | disabilities, limb differences, tremors, or limited range of motion. |
| 6 | |
| 7 | ## Core Principle |
| 8 | |
| 9 | Gestures are shortcuts, not gatekeepers. The feature they activate must |
| 10 | always be reachable another way. |
| 11 | |
| 12 | ## Gesture Types and Required Alternatives |
| 13 | |
| 14 | ### Path-Based Gestures (swipe, draw, drag) |
| 15 | These require tracing a specific path. Many users cannot perform them. |
| 16 | - Swipe to delete → visible delete button |
| 17 | - Swipe to navigate → previous/next buttons |
| 18 | - Draw a shape → select from a menu of shapes |
| 19 | - Drag to reorder → move up/down buttons or numbered input |
| 20 | |
| 21 | ### Multi-Point Gestures (pinch, rotate, two-finger scroll) |
| 22 | These require multiple simultaneous contact points. |
| 23 | - Pinch to zoom → zoom buttons (+/−) and text input for zoom level |
| 24 | - Two-finger rotate → rotation buttons or degree input |
| 25 | - Two-finger scroll → single-finger scroll or visible scrollbar |
| 26 | - Three-finger swipe → visible button or menu option |
| 27 | |
| 28 | ### Device Motion (shake, tilt, rotation) |
| 29 | These require moving the entire device. |
| 30 | - Shake to undo → visible undo button (always) |
| 31 | - Tilt to steer → on-screen directional controls |
| 32 | - Device rotation for content → manual rotation toggle |
| 33 | |
| 34 | ### Timed Gestures (long press, double tap) |
| 35 | These require precise timing. |
| 36 | - Long press for context menu → visible menu trigger (⋮ or ⋯) |
| 37 | - Double tap to zoom → zoom button |
| 38 | - Press and hold to record → toggle start/stop buttons |
| 39 | |
| 40 | ## Design Patterns |
| 41 | |
| 42 | ### Progressive Enhancement |
| 43 | - Build the button-based version first |
| 44 | - Add gesture support as an enhancement on top |
| 45 | - This guarantees the alternative always exists |
| 46 | |
| 47 | ### Discoverability |
| 48 | - Gesture shortcuts should be documented but not required |
| 49 | - Show a hint on first use ("You can also swipe to delete") |
| 50 | - Provide a gesture guide in settings or help |
| 51 | - Never assume users know a gesture exists |
| 52 | |
| 53 | ### Customisation |
| 54 | - Allow users to disable gesture controls entirely |
| 55 | - Allow remapping of gestures where possible |
| 56 | - Respect system-level gesture settings |
| 57 | |
| 58 | ## Assessment Questions |
| 59 | |
| 60 | 1. Does every gesture have a visible, single-action alternative? |
| 61 | 2. Can users who cannot perform multi-point gestures complete |
| 62 | every task? |
| 63 | 3. Are device-motion interactions optional with on-screen |
| 64 | alternatives? |
| 65 | 4. Can timed gestures be replaced with untimed actions? |