# Accessibility

> Every row on the Accessibility screen (control type, range, and default) for vision, motion, the settings app, screen reader, and touch.

URL: https://wmkeyboard.pages.dev/reference/settings/accessibility/
Section: Reference

The Accessibility screen collects every vision, motion, screen-reader, and touch accommodation WM Keyboard offers in one place, grouped exactly as they appear on screen. This page is the field reference. For the reasoning behind each option, read [Accessibility overview](https://wmkeyboard.pages.dev/accessibility/overview/) instead.

  reference/settings/accessibility-vision-group — The Vision group at the top of the Accessibility screen.

## Options

Accessibility

### Vision

Accessibility / Vision

| Setting | Control | Options / range | Default |
|---|---|---|---|
| Colour vision | Choice | Off / Deutan / Protan / Tritan / Grey | Off |
| High contrast keys | Toggle | On / Off | Off |
| Key outlines | Toggle | On / Off | Off |
| Bold key labels | Toggle | On / Off | Off |
| Readable font | Toggle | On / Off | Off |
| Text size | Opens **Appearance**, showing the current value | n/a | n/a |
| Keyboard font | Opens **Keyboard font** | n/a | n/a |

**Colour vision** applies a real-time correction for red-green (Deutan, Protan) and blue-yellow (Tritan) colour blindness, or strips colour entirely (Grey). It corrects the keyboard's own palette rather than simulating what a colour-blind person sees.

**High contrast keys** flattens the active theme to a plain black-or-white board with maximum-contrast labels, but keeps the theme's accent colour, so Shift and an active toolbar tool still stand out.

**Readable font** is a derived toggle rather than its own stored setting. It reads as on only when the keyboard's font is already Atkinson Hyperlegible. Switching it writes straight to the same font setting **Keyboard font** below uses, and that [Fonts](https://wmkeyboard.pages.dev/themes/fonts/) under Appearance uses. There's no separate default to track. It starts off because the keyboard's font starts at its system default.

**Text size** shows the key label size and opens Appearance, where the slider lives (70% up to 200% of normal). To change the size of the keys themselves, use [Size, position & one-handed use](https://wmkeyboard.pages.dev/typing/size-position/). The two are easy to confuse, and they live on different screens.

  reference/settings/accessibility-color-vision-picker — Colour vision set to Deutan, with the five filter options shown in the picker.

### Motion

Accessibility / Motion

| Setting | Control | Options / range | Default |
|---|---|---|---|
| Reduce motion | Toggle | On / Off | Off |
| Classic press-and-hold popup | Toggle | On / Off | Off |
| Animate panels | Toggle | On / Off | On |
| Animate text selection | Toggle | On / Off | On |
| Animate language switch | Toggle | On / Off | Off |
| Animate grammar and translate results | Toggle | On / Off | Off |

**Reduce motion** turns off non-essential animation across the toolbar, animated theme backgrounds, and this settings app's own transitions. Feedback that tells you something stays: the key-preview bubble, the pressed-key colour, the glide-typing trail. Removing those would make typing harder rather than easier.

**Classic press-and-hold popup** puts the long-press popup back the way it was before the first alternate moved over the key: no growing alternate, no sliding highlight, no centring on the key, and the highlight on whatever is under the finger rather than a row above it.

**Animate panels** makes a panel (clipboard, emoji, any tool) grow out of the toolbar button or the tool name you tapped to open it, and fold back into it when it closes. It is quick, under a fifth of a second. Off, panels appear and disappear at once.

**Animate text selection** slides the selection highlight to its new range and brings the selection bar's buttons in one after another. Off, both change at once.

**Animate language switch** (off by default) flips each key whose letter changes when you switch language, while keys that stay the same hold still. Only a language switch animates; changing to symbols or numbers never does.

**Animate grammar and translate results** (off by default) plays out a grammar fix on its card, the old words dimming under their strike and the new ones sliding in, before the list closes up around it. In the translate tool, the part of the translation that changed fades in while the words that stayed hold still, and the swap button turns.

All four follow **Reduce motion**: with it on, none of them animates, whatever each switch says.

[Power saving mode](https://wmkeyboard.pages.dev/typing/power-saving/) can flip this same behaviour on as a side effect of its own "Animations" toggle, without touching this switch. Check there too if animation is off and you didn't turn it off here.

### Settings app

Accessibility / Settings app

| Setting | Control | Options / range | Default |
|---|---|---|---|
| Icons in settings | Toggle | On / Off | On |
| Screen transitions | Toggle | On / Off | On |
| Keyboard test button | Toggle | On / Off | On |
| Favourites button | Toggle | On / Off | On |
| Sections open at once | Choice | No limit / 1 / 2 / 3 | No limit |

**Icons in settings** draws the coloured icon beside every setting, including the theme editor's colours and sliders and the layout editor's rows, on the home list, beside search results and in each screen's heading. Lists of your own languages, layouts, words and packs have no icons. Turn it off for plain rows with words only, the way the settings looked in earlier versions. The icons on the screen you are on shrink away as the words slide over; with **Reduce motion** on they go at once.

It affects this settings app only. The keyboard and its toolbar keep their icons, and so do lists whose icon *is* the content: the Tools list, a tool's own page heading, addons and modes.

**Screen transitions** moves a row's icon and name into the heading of the screen it opens. Turn it off if settings screens stutter on your phone: the screens then open with the plain sideways slide and skip a second layout pass, because the layer that runs those transitions lays everything out twice even when nothing is moving. Reduce motion turns these transitions off too, and so does the two-pane layout on a wide screen.

**Keyboard test button** puts a small keyboard button in the bottom corner of every settings screen. Tap it and a text field opens above the real keyboard, so you can try a change right where you made it. See [Trying a change](https://wmkeyboard.pages.dev/reference/settings/#trying-a-change). Turn it off if you don't want the button on your screens.

**Favourites button** puts a star at the top of every settings screen that opens your [favourite settings](https://wmkeyboard.pages.dev/reference/settings/#favourite-settings) and pins the screen you are on. Turn it off and the star and the **Add to favourites** entry on a setting's touch and hold are gone. Your favourites are kept for when you turn it back on.

**Sections open at once** is for screens whose sections open and close with a press on their heading, which the theme editor has a dozen of. Pick a number and a screen keeps at most that many open. Opening one more closes the section you went longest without opening or touching, so the one you just opened stays, and so does the one you were last changing something in. Sections left open on an earlier visit count as the oldest. A group's "N more settings" row is part of its group and is never closed by this. With **No limit**, the default, a section stays open until you close it.

### Screen reader

Accessibility / Screen reader

  reference/settings/accessibility-screen-reader-group — TalkBack support set to Gestures, with the Keyboard gestures service row asking to be granted.

| Setting | Control | Options / range | Default |
|---|---|---|---|
| TalkBack support | Choice | Off / Labels / Explore / Gestures | Explore |
| Keyboard gestures service *(shown only when TalkBack support is Gestures)* | Opens system Accessibility settings | n/a | n/a |

**TalkBack support** defaults to **Explore**, not Off. A fresh install already behaves the way a screen-reader user expects an IME to behave: drag to hear a key, lift to type it, with every key's name including punctuation. None of it changes anything until a screen reader is running.

Setting TalkBack support to **Gestures** reveals the **Keyboard gestures service** row. Its title and subtitle change with the system service's grant state, re-checked automatically when you return to this screen from Android's own Accessibility settings:

| Grant state | Title | Subtitle |
|---|---|---|
| Not granted | "Keyboard gestures service required" | `Turn on "WM Keyboard gestures" in Settings › Accessibility` |
| Granted | "Keyboard gestures service" | "On. The keys get your touches. TalkBack keeps the rest of the screen" |

Tap the row and a disclosure appears first, explaining what the service reads (nothing) and what it does. Continue from there and the app opens Android's Accessibility settings. Without the service granted, Gestures mode falls back to behaving like Explore.

### Touch

Accessibility / Touch

| Setting | Control | Options / range | Default |
|---|---|---|---|
| Ignore repeated presses | Slider | 0–500 ms | Off (0 ms) |
| Press and hold delay | Opens **Key press**, showing the current value | n/a | n/a |
| Key size & spacing | Opens **Layout & size** | n/a | n/a |
| Haptics & sound | Opens **Key press** | n/a | n/a |

**Ignore repeated presses** is the on-screen name for what the [overview guide](https://wmkeyboard.pages.dev/accessibility/overview/) calls debouncing. The word "debounce" itself never appears in the app. It discards a second press of the *same* key that lands within the chosen window after the first. Two different keys pressed close together are never affected.

**Key size & spacing** and **Haptics & sound** are plain navigation rows, not settings stored on this screen. They open [Layout & size](https://wmkeyboard.pages.dev/reference/settings/layout/) and [Key press](https://wmkeyboard.pages.dev/reference/settings/keypress/) respectively.

  reference/settings/accessibility-touch-group — The Touch group: ignore repeated presses and long-press delay.

## Details & edge cases

- **Screen reader default is Explore, not Off.** See the note above. This is the one default on this screen most likely to surprise you.
- **Readable font has no independent default value.** It mirrors whichever font `keyFontId` currently points to, so there's nothing to reset separately from the font itself.
- **The on-screen label for the greyscale colour-vision filter reads "Grey."** The setting's internal name is `GRAYSCALE`, but nothing you see in the app spells it that way.
- **Text size here and the key-preview popup's font scale are two different settings.** Both scale text, but changing one doesn't change the other.
- **Ignore repeated presses only filters a repeat of the same key.** It cannot slow down typing in general by blocking different keys pressed close together.
- **The gesture pass-through service needs Android 11 (API 30).** WM Keyboard's minimum supported version is Android 7.0 (API 24). Anywhere from Android 7 through Android 10 you can still grant the "WM Keyboard gestures" service, but the system call it depends on is unavailable, so the service does nothing. Gestures mode quietly behaves like Explore even with the service on.
- **Icons in settings, Screen transitions, Keyboard test button, Favourites button and Sections open at once are settings-app preferences, not keyboard ones.** Nothing you see while typing changes with them.
- **No build differences.** Every setting on this screen, and the pass-through service behind it, works the same in every build.
- **Not in the Play Store build: Gestures.** That build carries no accessibility service, so TalkBack support offers Off, Labels and Explore, and there is no service row. A Gestures choice brought over in a backup shows, and behaves, as Explore. GitHub and F-Droid builds have all four modes.

## Related pages

- [Accessibility overview](https://wmkeyboard.pages.dev/accessibility/overview/): the why behind every option here, plus one-handed and floating-keyboard accommodations that live on the [Layout & size](https://wmkeyboard.pages.dev/reference/settings/layout/) screen instead.
- [Fonts](https://wmkeyboard.pages.dev/themes/fonts/): the full font browser the **Keyboard font** row opens into. **Readable font** is a toggle, not a navigation row, and it writes the same setting without opening anything.
- [Size, position & one-handed use](https://wmkeyboard.pages.dev/typing/size-position/): for making the keys themselves bigger, not only their labels.
- [Sound & vibration](https://wmkeyboard.pages.dev/typing/feedback/): the destination of the **Haptics & sound** row.
- [Power saving mode](https://wmkeyboard.pages.dev/typing/power-saving/): another path to reduced motion, independent of the toggle on this screen.
