Accessibility

Built in, then checked.

Last reviewed: August 2026 · covers version 3.0

Accessibility was part of Bubble Drift from the second phase of the rebuild rather than a pass at the end, and the work is verified rather than assumed. This page says what is supported, how it was tested, and what is currently broken — there are two things, and they are named below rather than buried. If something here does not match your experience, that is a bug and we want to hear about it.

If you use VoiceOver, the game will not work for you right now. Taps do not reach the playfield. The menus are fine; the game is not. Detail in known problems.

Larger text

Dynamic Type throughout, tested to AX5. Every piece of chrome — menus, panels, overlays, settings — uses semantic text styles rather than fixed point sizes, so it tracks the text size you set in iOS. The sweep passed on 5 July 2026: with the system set to the maximum AX5, the dashboard and HUD layouts hold and nothing clips.

Two deliberate limits are worth stating plainly. Menus, panels and overlays are capped at AX2, and the score HUD at xxxLarge, so a single number cannot push the playfield off screen mid-run. And a handful of decorative micro-labels — the tracked capitals under 9 pt — stay fixed by design; nothing you need to read is among them.

Reduced motion

Every animation in both skins routes through one gate. Repeating motion is not scattered across the art directions: each skin schedules its loops through a single MotionGate, which does nothing at all when Reduce Motion is on. The bubble keeps the still pose the skin built it in, and a skin that wants a different resting state has to say so explicitly.

That is a structural choice, not a tidy-up. It means “does this respect Reduce Motion?” has one answer for the whole game instead of one answer per art direction — so Abyss could not ship a jellyfish that pulses through the setting, and no future skin can either.

Beyond the skins, Reduce Motion also removes screen shake in favour of a flash, freezes the camera zoom steps (the milestone is still announced in the HUD), stills the background parallax, and turns banner slides into fades. Screen flashes are low-alpha and brief at all times, and are capped globally at 3 per second so that even a long bomb chain stays well clear of photosensitivity thresholds.

Contrast and colour

Colour-vision simulation re-verified across all 18 worlds on 31 July 2026. Live gameplay was captured in every world, then run through Machado protanopia, deuteranopia and tritanopia matrices plus a grayscale pass. Every world's bubbles stayed clearly visible under all four simulations, and no world needed changing.

That result is dated because the previous one had gone stale: the first pass in July verified a rim-and-specular structure that the 3.0 re-skin then replaced wholesale, along with every palette and every special silhouette. A verification that no longer describes the thing on screen is not a verification, so it was run again.

Underneath the simulation, gameplay never depends on hue alone:

  • Type is carried by shape. Each special has its own silhouette and its own face, so a bomb still reads as a bomb with every trace of red removed — angry brows, fuse, spark.
  • Visibility is carried by luminance — the bright silhouette rim and the white window panes — not by colour.
  • Lives and combo are counted and positioned, never colour-only.
  • Worlds are cosmetic. A palette changes the light, never what you have to distinguish.

The interface is dark throughout because the game is, but Increase Contrast is honoured by lifting the text opacity tokens.

One caveat on that verification: it describes the game as it draws by default, which is how it was captured and simulated. The High visibility toggle currently interferes with the rim the result rests on — see the next section.

High visibility

Known problem — we suggest leaving this off for now. The toggle draws its white outline at the same width, along the same path, as the coloured rim that carries each bubble's identity, and one layer on top of it. So it washes out the exact cue it is meant to strengthen, and it does so equally on every bubble type, which makes the field harder to read rather than easier.

That is a bug, not a design decision. It is listed under known problems below.

What the toggle is meant to do, and what it will do once that is corrected: sitting in the settings drawer alongside sound and haptics, it adds a white rim to every bubble, a dotted edge to the ghost — the one type that is deliberately faint — and halves the vignette.

Both outlines are drawn by the framework from the skin's own silhouette, which means no art direction can be more legible than another with the toggle on, and none can decline to provide it. They also deliberately ignore the per-bubble transparency, because inheriting it ran the accommodation backwards: the faintest bubbles are exactly the ones a player misses, and they were getting the faintest help.

Touch and motor

  • The tap target is forgiving by design — the hit test extends to 1.3× the bubble's drawn radius, and that number is a floor the game is not allowed to lower.
  • Every interface control is at least 44 × 44 pt, and the pause button is reachable one-handed.
  • Zen is the accessible mode. It cannot be lost, and its difficulty curve stops steepening at the 10-minute mark — so the bubbles stay a comfortable size and speed for as long as you want to play, instead of shrinking toward the end-game minimum.

VoiceOver

Known problem — the game cannot currently be played with VoiceOver switched on. Taps do not reach the playfield, so bubbles will not pop and a run cannot be played at all. The score summary also re-announces itself as the numbers change.

This affects anyone who has VoiceOver enabled, whether or not they rely on it to see. The menus are unaffected and remain fully navigable — it is only the playfield that stops responding. If you use VoiceOver, the game will not work for you as it stands, and we would rather you read that here than discover it after installing.

What does work: the menus are fully navigable. Mode cards are labelled with their descriptions and selected state, settings speak their state, theme cards speak name, lock status and milestone, and the purchase and restore flows are labelled and grouped. The HUD is grouped into two spoken summaries — score, lives and combo; time and next reward — with Pause reachable. The hidden welcome-bubble tutorial gets a labelled Start button when VoiceOver is running, so the ritual is never a barrier.

Separately from that bug, gameplay is real-time and visual, and we do not claim it is playable by listening even once input is fixed. What is announced is the part that carries meaning afterwards: the run summary on game over — score, pops, best combo, whether it is a record — and every theme unlock.

Known problems

Two things are wrong today. Both were found by playing the game with the settings switched on rather than by reading the code, which is the argument for doing that.

  1. VoiceOver blocks play. The playfield is hidden from VoiceOver instead of being marked to receive touches directly, so with VoiceOver running every tap is treated as a focus gesture and never reaches a bubble. The same cause makes the score summary re-announce on every change. Menus are unaffected.
  2. High visibility reduces contrast between bubble types. Its white outline is drawn at the same width and on the same path as each bubble's own colour-carrying rim, one layer above it, so it flattens the difference between types instead of sharpening it.

Neither is subtle once you know, and neither is on the list because it is hard — they are here because this page is worth nothing if it only records the parts that went well.

Still to verify

Three checks are implemented in code but not yet signed off on a physical device:

  • The flash-frequency cap, audited during a scripted bomb-chain stress run.
  • A full session played end to end with Reduce Motion on.
  • A full Zen session played with High visibility on — which is how the problem above was found, and which needs running again once it is fixed.

Tell us what does not work

If a setting is not honoured, a label is missing, or something is simply too hard to see, please say so — that is the most useful message we get. Email pop@bubbledrift.app or use the feedback form, and include your device and the iOS settings you have on if you can. We read every one.