Skip to main content
← Back to home

Accessibility

Designed for everyone.

Skincare is for every body. So is Layered. Every screen — on iPhone, iPad, and Apple Watch — is built from the ground up for VoiceOver, Dynamic Type up to AX5, Reduce Motion, Voice Control, Switch Control, and Dark Mode. Not bolted on.

  • 🎙 Voice
  • 👁 Vision
  • 🌊 Motion
  • 🤝 Touch

VoiceOver — every screen, every state

Every interactive element ships with a descriptive label and hint. Decorative images are hidden from VoiceOver. Combined elements (e.g. routine cards) speak as one phrase, not five separate fragments. The timer announces phase changes — 'Apply phase, 30 seconds remaining' — so users never have to guess where they are.

  • Tested manually with VoiceOver from AX1 through AX5
  • Custom rotor for the timer for fast scrubbing between steps
  • Accessibility traits set on every header, button, and tab
  • No reliance on color or icon alone — always paired with text

Dynamic Type — to AX5 without breaking

Layered Skincare scales every screen up to iOS's largest accessibility text size (AX5). Tight chrome (calendars, tab bars, statistics dashboards) is capped at xxLarge to stay legible, while body content uses adaptive HStack→VStack layouts that switch from rows to columns at accessibility sizes.

  • Adaptive layouts for routine cards, edit screens, and step rows
  • @ScaledMetric used for icon and tap-target sizing where needed
  • Capped Dynamic Type only on dense chrome — never on content
  • Verified end-to-end on iPhone, iPad, and Apple Watch

Reduce Motion — calm when you need it

When Reduce Motion is enabled, animations crossfade instead of slide, the timer's progress ring updates in steps instead of sweeps, and decorative wave loops on the onboarding hero pause entirely. The app never relies on motion to convey state — phase changes are also signaled with text, color, and (on Watch) haptics.

  • Reduce Motion respected app-wide, not just on the timer
  • Crossfade fallbacks for every spring/slide animation
  • Decorative loops paused, not just slowed
  • Phase changes communicated via text + haptics, not motion

Voice Control & Switch Control

Every interactive element has an explicit Voice Control input label — say 'Tap Add Routine' and it works. Touch targets meet the 44pt minimum, related elements are grouped for Switch Control, and the Apple Watch app is fully hands-free.

  • accessibilityInputLabels on every button
  • 44pt minimum touch targets, verified
  • Switch Control friendly grouping
  • Apple Watch as a hands-free companion

Color, Contrast, and Dark Mode

Brand orange/coral/gold gradients are the visual identity, but readable contrast comes first. Body text meets WCAG 2.1 AA on every background. Dark Mode is a true companion — not just inverted colors, but warm, calm, low-glare surfaces tuned for tired evening eyes.

  • WCAG 2.1 AA contrast across the brand palette
  • Dark Mode tuned for low-glare reading
  • No color-only state indicators
  • High-contrast mode supported via system settings

How we test

Layered Skincare is tested across the full stack of iOS accessibility tools, on real devices.

  • VoiceOver on iPhone, iPad, and Apple Watch
  • Dynamic Type at every step from XS to AX5
  • Reduce Motion ON / OFF parity
  • Voice Control flows for every interactive screen
  • Switch Control single- and two-switch navigation
  • Color contrast checked with Apple's Accessibility Inspector

Found something we can improve?

Accessibility is a never-finished project. If something doesn’t work for you, please tell us — we’ll fix it.

Email accessibility feedback