My Commitment
Aquarium Zen: Retro is designed to be a calm, focused timer experience for everyone. I have built the app to work with the accessibility features provided by iOS and iPadOS, so that users who rely on assistive technologies or who simply prefer adapted interfaces, can use the app comfortably.
I aim to follow Apple's accessibility guidelines for iOS apps and the Web Content Accessibility Guidelines (WCAG) 2.1 Level AA where applicable to in-app text and graphics.
Supported Accessibility Features
The following features are fully supported in the current version of Aquarium Zen: Retro. Each is also declared on the App Store product page under "Accessibility Nutrition Labels".
VoiceOver
All interactive elements in the app (menu buttons, settings controls, the focus timer, the privacy policy link, and the alarm dismissal button) have descriptive labels for VoiceOver. When fish are enabled, the background scene is announced as a single decorative element with a brief description; individual fish are not described, as they are ambient visual content. Settings buttons announce their selection state, and section headers are exposed to the VoiceOver rotor for quick navigation. The app also speaks focus-timer changes aloud — when the timer starts, is paused, resumed, finishes, or the alarm is dismissed — and the running countdown is exposed as a live region so VoiceOver can re-read the remaining time on request.
Voice Control
Every action in the app is reachable through a labeled, on-screen button. There are no swipe-only, long-press-only, or multi-touch gestures required to operate the app. Users of Voice Control can say "Tap Start Timer", "Tap Settings", "Tap Dismiss Alarm", and so on.
Larger Text (Dynamic Type)
All text in the app uses iOS Dynamic Type styles and scales automatically when you increase the text size in Settings > Accessibility > Display & Text Size > Larger Text. Layouts are designed to expand and remain scrollable so that no content is clipped at larger sizes.
Dark Interface
The app uses a dark visual design at all times, by intent. Text is rendered in white or high-opacity white on a black background, providing high contrast in both light and dark system appearance modes.
Differentiate Without Color Alone
No information or state in the app is communicated by color alone. Selected settings are indicated by a combination of background opacity, border, and a VoiceOver-announced selection state. The focus timer's running, paused, and alarm states are each labeled with text in addition to color. Fish types are distinguished by their individual hand-drawn artwork, not by a color code.
Sufficient Contrast
All in-app text meets WCAG AA contrast requirements against its background. Most text uses pure white on pure black (a contrast ratio of 21:1). The lowest-opacity text in the app still meets AA for large text.
Increase Contrast
If you turn on Increase Contrast in Settings > Accessibility > Display & Text Size, the settings screen drops its translucency in favor of opaque backgrounds and adds a visible border around every option, so the tappable controls stay clearly defined and legible.
Completion Haptic
When a focus session ends, the app also plays a subtle haptic on supported devices, so the end of a session is noticeable even with sound off or for users who are deaf or hard of hearing.
Reduced Motion
If you turn on Reduce Motion in Settings > Accessibility > Motion, the app responds in several ways: fish slow to a gentle drift, fish wiggle animation is paused, background particles and bubbles stop, the celebratory bubbles that rise when a timer ends are not shown at all, the alarm "tap to dismiss" pulse becomes static, and screen transitions become instant instead of fading. The app remains fully functional with motion reduced.
Features That Do Not Apply
Two App Store accessibility features are not claimed because the app does not contain content that would require them:
- Captions: The app contains no video and no spoken audio. The only sound is a short system chime when the focus timer ends, chosen from several options in Settings (or turned off entirely), accompanied by a subtle haptic on supported devices. Because there is no video and no speech, captions do not apply.
- Audio Descriptions: The app contains no video content. All visual content is procedurally drawn ambient animation.
Known Limitations
I want to be honest about what the app does not currently do:
- Individual fish are not announced by VoiceOver. The aquarium is intentionally treated as a single decorative element to avoid overwhelming VoiceOver users with a continuous stream of position updates. If you would find per-fish announcements useful, please let me know.
- Switch Control and AssistiveTouch are not specifically optimized for, but should work with the app's standard SwiftUI controls. I have not formally tested every flow with these technologies.
- Braille displays should work through VoiceOver, but I have not tested specific Braille device behavior.
Website Accessibility
This website uses standard HTML semantics, a "Skip to content" link, a logical heading structure, named landmarks, and text that scales with both browser zoom and your browser's font size setting. The current page is announced to screen readers, not just highlighted in white, and the language switcher is labelled in the language it leads to.
The site also follows your system accessibility settings:
- Reduce Motion: transitions and smooth scrolling are switched off, and the app preview video does not play automatically.
- Increase Contrast: secondary text is raised to full white and dividing lines become visible.
- Reduce Transparency: translucent buttons and cards become opaque, borders are drawn in, and lower-opacity text is raised to full white, so nothing relies on see-through layers to stay legible.
- Light or dark appearance: the site opens in its dark brand appearance, and a button in the top navigation bar switches to a light, high-contrast appearance for anyone who finds it easier to read. Your choice is remembered on this device.
The app preview video is silent and can be paused at any time with the button beneath it. Interactive targets are at least 44 pixels tall, matching Apple's recommended minimum. I am not formally certified against WCAG, but I aim to apply its principles. If you find a page on this site that is difficult to use with assistive technology, please let me know.
Feedback and Contact
Accessibility is an ongoing effort. If you encounter a problem using Aquarium Zen: Retro with an assistive technology, or if there's an accessibility feature you would like to see added, please contact me:
aquarium-zen-support@ppg-studio.com
I read every message and will address accessibility issues in future updates whenever I can.
Changes to This Statement
This statement will be updated whenever I add, change, or remove an accessibility feature. The "Last updated" date at the top of the page reflects the most recent revision.