Legal

Accessibility Statement

Last updated October 6, 2026

Aimora shows you one step a day. That is the whole interface, and it is the reason accessibility is not an afterthought here: an app with a single decision on screen has no excuse for making that decision hard to reach. This page describes what Aimora supports today, how each feature was checked, and where the gaps still are.

01Supported features

VoiceOver

Every control has a label written as a phrase rather than a fragment, so a streak reads as “2 days in a row” instead of “2”. Decorative marks — the star beside the streak, the glow behind today’s node — are hidden from VoiceOver rather than announced. The path of recent days is one summary element that names how many days are done, skipped and pending, instead of a row of separate dots. Selected options carry the selected trait, so a chip announces that it is chosen.

Larger Text

Aimora scales past 200% and keeps going to the largest accessibility sizes. Text is never given a fixed height: type scales through Dynamic Type and the layouts change shape around it — the meta labels in Step history move the date onto its own line, the three plan cards keep their titles whole, and the deadline sheet becomes full-height instead of cropping the date picker. Nothing is truncated to make room.

Sufficient Contrast

All eight themes were tuned against the WCAG AA threshold rather than by eye, and the measured ratios are kept beside the colour values in the source so they cannot drift silently. Secondary text was deliberately darkened on the light themes until the worst measured pairing cleared 5:1, and body text on the free dark theme measures above 18:1.

Differentiate Without Color Alone

No state in Aimora is carried by colour on its own. A day on your path is a filled circle when it is done, a hollow circle when it was skipped, a line crossing the path when it was paused or frozen, and a diamond while it is still open — four shapes, not four hues. Step history states the status as a word in a capsule, coloured identically for every status. The theme and goal pickers use a checkmark and a filled radio. The selected subscription plan is named in words beneath the button, not only outlined.

Reduced Motion

With Reduce Motion on, decorative animation stops entirely: the one-shot twinkle of the star, the pulse on today’s node, the shimmer on loading text and the particles in the completion overlay. The same animations also stop in Low Power Mode. Nothing that conveys information depends on movement.

Dark Interface

Aimora is dark-first and ships eight themes, four of them dark. Choosing a theme also fixes the appearance of system controls and materials to match it, so nothing on screen resolves to a light surface inside a dark palette.

02What Aimora does not claim

  • Voice Control and Switch Control are not declared. Aimora is built from standard SwiftUI controls with real labels and tap targets of at least 44 points, so both are expected to work — but we have not tested them thoroughly enough to state it as a supported feature, and we would rather leave it unclaimed than overclaim it.
  • Captions and Audio Descriptions do not apply: Aimora contains no video or audio content.

03How this was checked

Contrast is measured from screenshots, pixel by pixel, at the largest accessibility text size, and the numbers are recorded in the source next to the colours they describe. Dynamic Type is checked by running the app at the largest accessibility size and looking for clipping rather than assuming there is none. Differentiation without colour was audited by walking every place in the app where a state is displayed and confirming that a shape or a word carries it. VoiceOver is checked by hand on a device.

04Found something we missed?

Please tell us. An accessibility problem is a bug, and we treat it as one: write to hello@aimora.day and describe what you were trying to do, which assistive feature you use, and what happened instead. If you can include the iOS version and whether VoiceOver, Larger Text or Reduce Motion was on, it will usually be enough to reproduce it on the first try.

We answer every report, and a confirmed accessibility defect goes to the front of the queue rather than into the backlog.