Accessibility
Shoulder Surf is designed to work for everyone in a meeting, regardless of ability. We follow Apple's Human Interface Guidelines for accessibility and go beyond the baseline wherever the app's unique audio and visual nature demands it.
1. Visual Accessibility
System Color Scheme
The app respects your system setting (light, dark, or auto). All non-camera UI uses semantic colors that adapt automatically to your appearance mode. No forced dark mode anywhere.
High Contrast Support
When you enable "Increase Contrast" in iOS Settings, the app responds with meaningfully sharper text differentiation. Active captions become fully opaque, and highlight backgrounds increase in intensity.
Dynamic Type
Text and interactive elements scale proportionally to your preferred text size. Font styles use semantic sizes rather than hardcoded point sizes.
Color Is Never the Only Signal
- The audio level meter uses ascending bar heights and color so the level is readable without color perception
- Recording state is conveyed by the level meter animation, the timer text, and the pill tint
- Speaker labels use color coding plus text labels
- Mode badges show both a colored icon and a text name
Decorative Elements Hidden
Purely decorative icons are hidden from VoiceOver so the screen reader doesn't announce redundant information.
2. Auditory Accessibility
Real-Time Audio Level Meter
A 6-bar level meter provides visual confirmation that the mic is picking up audio, critical for users who are deaf or hard of hearing. Bar colors follow professional audio metering conventions: blue (low), green (optimal), yellow (hot), red (clipping risk). VoiceOver announces the meter with a dynamic value: "Silent", "Low", "Good", or "Clipping".
Proactive Audio Level Warnings
If audio levels remain too low or too high for 8 consecutive seconds, an auto-dismissing banner suggests how to fix it. These help users who cannot hear the audio quality to optimize their setup.
VoiceOver TTS Guard
When VoiceOver is running, the app's built-in text-to-speech is suppressed to prevent two voices talking simultaneously. VoiceOver reads the response content instead, using your preferred voice and rate.
iOS Spoken Content Deference
All TTS utterances respect your iOS Accessibility spoken content voice and rate preferences. Once you manually adjust TTS speed via the in-app control, the app honors your explicit choice instead.
Haptic Feedback
Over 40 haptic events throughout the app provide tactile confirmation of actions. Every interactive element produces a distinct haptic pattern, allowing users who cannot hear UI sounds to feel the app's responses. Haptic styles are intentionally differentiated: light for confirmations, medium for significant actions, heavy for major state changes.
3. Motor Accessibility
Touch Targets
- All interactive elements meet or exceed Apple's 44pt minimum touch target
- The primary query button is 50pt for the most-used action
- Bottom bar buttons are 48pt
- Carousel mode icons are 62pt
- Landscape mode includes generous hit areas around controls to prevent accidental taps
VoiceOver Custom Actions
- The response sheet supports Dismiss and Minimize actions, no precise drag gestures required
- The recording pill supports Pause/Resume without long-press gestures
- The radial mode carousel supports navigation with simple up/down swipes instead of circular drag gestures
Reduce Motion Support
When Reduce Motion is enabled in iOS Settings:
- Spring animations are replaced with simple crossfades
- The radial carousel uses gentle easing instead of bouncing springs
- Fling physics (predictive snap) is disabled, items snap directly
- The query loader rotation is suppressed
- Recording dot pulse uses simple easing instead of continuous spring animations
4. Cognitive Accessibility and People Who Think Differently
Non-Intrusive Notifications
Audio level warnings and background-return banners auto-dismiss after 5 seconds and require no interaction. They inform and disappear, reducing cognitive load for users who may be overwhelmed by persistent alerts.
Context Window Visualization
The captions overlay clearly separates older transcript (dimmed) from the active context window (bright) with a visible separator. This helps you understand what the AI will "see" when you trigger a query.
Predictable UI States
The session view follows a clear 4-state model with predictable transitions. State changes are reinforced through multiple channels: visual (UI changes), haptic (feedback), and when applicable, auditory (TTS). A transition indicator ("Preparing your meeting summary...") prevents confusion after stopping a session.
Progressive Disclosure
Advanced features (context slot overrides, global system instructions) are tucked into collapsible sections in Settings. The mode carousel is hidden until explicitly invoked. Speaker editor, photo gallery, and mode picker appear only when needed, keeping the default interface clean.
Rolling Summary During Sessions
A summary tab in the transcript sheet shows the rolling summary while the session is active, so you can check the state of the conversation at any time without interrupting your flow.
Clear, Descriptive Labels
Over 197 accessibility labels and hints across the app provide clear descriptions of what elements do. Hints use action-oriented language and dynamic labels update based on state.
5. Languages & Localization
- Spanish is fully supported (99.8% coverage), UI, settings, tips, and accessibility labels all localized
- Transcription supports 12 languages including English, Spanish, French, German, Japanese, Korean, Chinese, Arabic, Hindi, and Russian
- On-device speech recognition assets download automatically for the selected language
- Per-app language override is supported through iOS Settings without changing the whole device
6. App Store Accessibility Features
| Feature | Supported | Details |
|---|---|---|
| VoiceOver | Yes | 197+ annotations, custom actions, TTS suppression |
| Voice Control | Partial | 35+ accessibility identifiers for automated control |
| Larger Text | Yes | Dynamic Type with scaled metrics and semantic font sizes |
| Dark Interface | Yes | Respects system color scheme with semantic colors |
| Differentiate Without Color | Yes | Audio meter, speaker labels, and recording state all use multiple signals |
| Sufficient Contrast | Yes | High contrast mode with enhanced opacities |
| Reduced Motion | Yes | 138 occurrences across 19 files |
| Captions | Yes | Real-time transcription with speaker labels |
7. Contact
If you encounter any accessibility barriers, please contact us at support@shouldersurf.com. We take accessibility feedback seriously and work to address issues quickly.