Accessibility
FableFrog's accessibility features including VoiceOver support, color vision deficiency themes, system preferences, text sizing, and motor accessibility.
Overview
Accessibility in FableFrog is not an afterthought. The app is built with SwiftUI's native accessibility APIs, and every screen, control, and interaction is designed to work with assistive technologies. From dedicated color vision deficiency themes to large-target car mode, FableFrog aims to be usable by everyone.
VoiceOver
FableFrog provides comprehensive VoiceOver support throughout the app. Every button, control, slider, and interactive element has descriptive accessibility labels and hints.
Navigation Overview
VoiceOver users can navigate FableFrog using standard iOS gestures:
- Swipe left/right to move between elements on any screen
- Double-tap to activate buttons, play/pause, and select items
- Swipe up/down on sliders (speed, volume boost, scrubber) to adjust values
- Rotor actions are available on key elements for quick access to common actions
Key Interactions
- Library browsing: book covers announce the title, author, and progress percentage. Filter chips, sort options, and the index bar are all labeled and navigable.
- Player controls: play/pause, skip forward/backward, speed, volume boost, and chapter navigation are announced with current state (e.g., "Play, paused" or "Speed, 1.5 times"). The scrubber announces the current position and total duration.
- Sleep timer: preset buttons announce their duration, and the active timer state is communicated.
- Settings: all toggles, pickers, and navigation elements include descriptive labels that explain what each setting controls.
Accessibility Themes
FableFrog includes three themes specifically designed for users with visual needs that standard themes don't address. These are first-class themes built with the same care as every other theme in the app.
High Contrast
Golden yellow on pure black. This theme provides maximum contrast for users with low vision or anyone who needs text and controls to stand out as sharply as possible. The pure black background also eliminates light bleed on OLED displays. Available for free to all users.
Key characteristics:
- Pure black (
#000000) background throughout - Golden yellow primary accent color for text, icons, and interactive elements
- White secondary text for maximum readability
- No subtle gradients or translucent elements that could reduce legibility
Blue-Orange (Deuteranopia)
Optimized for red-green color vision deficiency. Deuteranopia is the most common form of color blindness, affecting the ability to distinguish red from green. This theme replaces any red/green signaling with blue and orange, ensuring all color-coded information remains distinguishable. Available for free to all users.
Key characteristics:
- Blue and orange as the primary differentiating colors
- Progress indicators, status badges, and interactive elements avoid red/green encoding
- Maintains a dark base for comfortable extended reading
Pink-Teal (Tritanopia)
Optimized for blue-yellow color vision deficiency. Tritanopia affects the ability to distinguish blue from yellow. This theme uses pink and teal as primary colors, avoiding the blue/yellow combinations that would be indistinguishable. Available with Premium.
Key characteristics:
- Pink and teal as the primary differentiating colors
- Avoids blue/yellow contrasts for status and navigation elements
- Dark base theme for comfortable use
System Preferences
FableFrog respects iOS system accessibility settings automatically. You don't need to configure anything in the app. It reads your system preferences and adapts.
Reduce Motion
When Reduce Motion is enabled in iOS Settings, FableFrog minimizes or removes animations throughout the app. Screen transitions use crossfades instead of slides, progress indicators avoid bouncing effects, and any decorative motion is suppressed. This benefits users who experience discomfort from screen animations.
Reduce Transparency
When Reduce Transparency is enabled, FableFrog eliminates translucent backgrounds and blur effects, replacing them with solid colors. This improves readability for users who find translucent overlays difficult to read through, and also provides a slight performance improvement on older devices.
Text Sizing
FableFrog offers six text size levels to accommodate different visual needs and preferences.
Available Levels
- XS: smallest text, maximizes content density
- S: slightly smaller than default, a good balance of density and readability
- M: the default size, designed for comfortable reading at arm's length
- L: larger text for users who prefer more legibility
- XL: significantly larger, reduces content per screen but greatly improves readability
- XXL: the largest option, designed for users who need maximum text size
Impact on Layout
Text size changes affect all text in the app: navigation labels, book titles and metadata, descriptions, chapter lists, player controls, and settings. The layout system reflows content to accommodate larger text rather than truncating or overlapping, so increasing text size may show fewer items per screen but never hides information.
To adjust, go to Settings > Text Size, preview the effect, and apply.
Motor Accessibility
FableFrog includes several features that benefit users with motor impairments or limited fine motor control.
Car Mode Large Targets
While car mode is designed for driving, its oversized controls are equally valuable for users who need larger tap targets. The play/pause and skip buttons in car mode are significantly larger than in the standard player, reducing the precision needed to interact with them.
Scrubber Auto-Lock
The scrubber auto-lock feature prevents accidental seeking by locking the scrubber after a configurable delay. This is particularly helpful for users who may inadvertently touch the screen while holding their phone. The scrubber requires a deliberate tap to unlock before it accepts input.
Shake Gesture Alternatives
The shake-to-extend sleep timer feature may not be accessible to all users. If shaking the device is difficult, you can extend the sleep timer by opening the app and tapping the timer controls directly. The shake feature can be disabled entirely in Settings > Playback if it's not useful for your needs. All functionality available through shake gestures is also accessible through on-screen controls.