Suggestions & prediction
The suggestion strip: completions, corrections, and next-word prediction, and how it learns from you.
The suggestion strip is the row of tappable words above the keys: completions while you’re mid-word, corrections when what you typed doesn’t look like a real word, and next-word predictions once you’ve finished one. All three come out of the same on-device engine, which also learns your own vocabulary and phrasing the more you type.
This page covers the strip itself: its layout, the completion/correction/prediction engine, and how ranking adapts to you. A few things that also live in the strip have their own pages: autocorrect’s confidence math, the personal dictionary screen, the suggestion blacklist, smart chips (calculator, currency, unit conversion), password-manager chips and smart replies, contact and app-name suggestions, and emoji suggestions. Each is linked from the relevant section below rather than repeated here. Everything on this page is about the Latin/English-style strip; a conversion IME like pinyin or kana→kanji draws a different, scrolling candidate row that isn’t covered here.
What’s on the strip
Section titled “What’s on the strip”Word candidates fill up to three slots, or as few as two and as many as six if you move Number of suggestions (see Options). By default the strongest candidate (the one autocorrect would pick) sits in the centre with the runner-up to its left, the layout most keyboards use; turning off Best suggestion in the middle ranks them all left to right instead.
Slots are equal width, so a long word gets no more room than a short one. Rather than cut it off, the strip shrinks it to fit: the point size drops first, down to about two thirds of normal, and past that the letters themselves narrow a little. Most words that would once have read “internationali…” now fit whole, just set smaller and tighter. Nothing is configurable here, and short words are never scaled — a word that already fits is drawn at full size.
Up to four predicted emoji can ride after the word chips (see Emoji in the strip), and a row of punctuation marks can ride after that (see Punctuation chips), but never both at once. The emoji tail always wins the shared space; punctuation only appears when no emoji prediction is offered.
The strip isn’t a fixed area. It’s the same row the toolbar uses, and several other features can claim it instead of word candidates: a smart chip (calculator, currency, unit conversion) takes the full row when it has an answer, autofill chips take it over completely on a login field, the system’s smart replies take the row when nothing is typed and ride the tail once you start typing, a “paste your last copy” or one-time-code chip can appear from the clipboard tool, and typing : turns the row into inline emoji search instead of word candidates. Any of these counts as “the strip has something to show,” so the row rests on suggestions rather than falling back to the toolbar. Suggestion strip always visible (see Options) keeps the strip as the resting view even before any of them has anything to offer.
Completions, corrections, and predictions
Section titled “Completions, corrections, and predictions”One engine produces everything in the word-candidate slots, drawing from several sources depending on what you’ve typed:
- Completions. While you’re mid-word, every source that has a word starting with what you’ve typed contributes a candidate: the active dictionary, any downloaded or custom-imported dictionary, a secondary language’s dictionary if you type bilingually, your own personal dictionary of learned words, and (if you’ve turned them on) contacts, contact emails, and app names. If the word you’ve typed isn’t a space away from being real but splitting it is (for example, “ofthe”), a “of the” candidate is offered too.
- Corrections. If what you’ve typed doesn’t match a known word anywhere, the engine also generates every word one edit away (one letter dropped, doubled, swapped, or substituted) and scores each by how plausible that slip is on your active keyboard layout. The best-scoring one appears as an ordinary tappable candidate (not just as a silent autocorrect target), so a genuinely ambiguous typo like “helo” (evenly split between “hello” and “help”) still gets you both real words to pick from, even when autocorrect itself stays quiet because neither candidate clearly wins.
- Predictions. With nothing composing (right after you finish a word), the strip instead predicts what comes next: your own learned word pairs first, then the next part of a contact’s name if the previous word matched one, then a small bundled set of common English pairs to give a fresh install something to offer before you’ve typed anything of your own.
Candidates from every source are merged into one ranked list, and the sources don’t count equally. Each is weighted well above plain dictionary frequency, so a source that’s more clearly you (or more clearly what you’re looking for) dominates once it has anything to offer:
| Source | Weight |
|---|---|
| Bundled/downloaded dictionary | baseline |
| Custom-imported dictionary | ×100 |
| Secondary-language dictionary | ×40, scaled 0.5×–2× by how much you actually mix that language in |
| Your personal dictionary | ×500 |
| App names | ×400 |
| Contact names | ×3,000 |
| Contact emails (2+ character prefix) | flat 4,000 |
Tap a candidate to insert it (see Options for the space that follows), and it’s cased to match what you typed: a leading capital gives you a capitalized candidate (“Hte” → “The”), typing in all caps gives you the candidate in all caps (“HTE” → “THE”), and anything else is inserted as stored.
Punctuation chips
Section titled “Punctuation chips”Turn on Punctuation suggestions (off by default) and a short row of marks (. , ? ! ’) rides after the word candidates, set off by a thin divider. Tapping one commits it exactly as typing that key would, so a full stop or comma is one tap away without switching to the symbols layout.
The row only appears while word candidates are already showing, and only when no emoji prediction has claimed the tail instead. The two features share one slot and never draw at the same time.
Shift re-cases the strip live
Section titled “Shift re-cases the strip live”Holding Shift re-cases every chip in the strip in real time (lowercase → Title Case → UPPERCASE) to match what would actually be typed if you tapped it right then, and reverts the moment you let go. It applies to the whole row, not just the top candidate, with one exception: a contact-email suggestion (anything containing @) is left alone, since an address isn’t meant to change case.
This is a display rule only. It doesn’t reject or change which candidate is offered, and it’s unrelated to reverting an autocorrected word with backspace.
Emoji in the strip
Section titled “Emoji in the strip”Matching emoji append to the end of the word candidates once you finish typing a whole word, and the same mechanism can offer an emoji on an empty buffer once it’s learned that a word you often type is usually followed by one. This is a fuller feature with its own settings and its own page (see Emoji suggestions while typing for the toggle, the default, and how tapping one behaves). The only thing worth knowing here is that the emoji tail and the punctuation chips above share one slot at the end of the strip, and emoji always wins it when both would otherwise apply.
Learning from what you type
Section titled “Learning from what you type”Every word you commit and every pair of words you type back to back feeds a private, on-device vocabulary that both the completion ranking above and next-word prediction draw from. How strongly a word is taught depends on how deliberately you typed it: tapping a suggestion from the strip teaches harder than a word that was merely typed and committed, and a word autocorrect chose for you earns no credit at all, only the word pair around it. This grading, along with adding, removing, and clearing what’s been learned, is covered in full on the Personal dictionary page. This page is only about what that learning does to ranking: a learned word carries a ×500 weight (see the table above), so it competes with genuinely common dictionary words in the strip almost immediately rather than needing to be typed dozens of times first.
Removing an unwanted suggestion
Section titled “Removing an unwanted suggestion”There’s no long-press gesture on a suggestion chip itself. Every chip in the strip responds only to a tap, nothing more. Getting rid of a word the keyboard keeps offering means one of two settings screens, depending on what you’re trying to do:
- To stop a learned word from being offered, delete it from the Personal dictionary screen.
- To make sure a word is never offered or auto-corrected to, regardless of whether it’s ever been learned, add it to the suggestion blacklist instead: that screen requires typing the word into an “Add word” dialog by hand; there’s no way to seed it directly from a suggestion you just saw.
Options
Section titled “Options”| Setting | Default |
|---|---|
| Suggestions | On |
| Punctuation suggestions | Off |
| Number of suggestions | 3 (range 2–6) |
| Suggestions in every field | On |
| Suggestion strip always visible | Off |
| Best suggestion in the middle | On |
| Space after a suggestion | On |
| Block offensive words | On |
| Context-aware suggestions | On |
| Adapt to app tone | Off |
| Suggestion blacklist | Empty |
Suggestions is the master switch for the whole strip described on this page: turning it off also stops corrections from surfacing as candidates and stops next-word prediction, though autocorrect itself is a separate toggle and keeps working. Number of suggestions is how many word slots the strip splits itself into: three suits a phone, and a tablet or a landscape screen has the room for more, at the cost of each candidate getting narrower. Suggestions in every field overrides the handful of apps that ask the keyboard to hide suggestions on an ordinary text field; password fields and structured keypads (number, phone, and similar) never show suggestions regardless of this setting. Space after a suggestion adds a trailing space when you tap a candidate, the same as finishing a word yourself would.
Three of the rows above aren’t in the Suggestions group at all. They live under WM KeyboardTypingAutomatic corrections, and they’re listed here because what they actually do is change the strip:
- Block offensive words (on, and only visible while autocorrect is on) uses the same filtering mechanism as the suggestion blacklist to keep a bundled list of profanity and slurs out of the strip, not just out of autocorrect.
- Context-aware suggestions (on, also only visible while autocorrect is on) reorders the top few candidates using the words you typed before them: your own learned word pairs, common English pairs, and words already used in this conversation. It only reorders when there’s real evidence to reorder on, so an unfamiliar context keeps the usual order, and it never changes which word autocorrect would apply.
- Adapt to app tone (off, and visible whatever autocorrect is set to) tilts ranking by where you’re typing. Chat-speak like “lol” and “gonna” ranks a little higher in messaging apps and a little lower in email apps and email fields. It’s ranking only: no word is ever hidden or blocked, and autocorrect doesn’t change.
A physical keyboard can also pick a strip candidate by number without touching the screen (see Hardware keyboard for how that’s bound).

Details & edge cases
Section titled “Details & edge cases”- A correction candidate only appears when the typed word isn’t already known. Anything in the active dictionary, a custom or secondary-language dictionary, or your personal dictionary is offered as-is. The edit-distance correction pass never runs against a word the engine already recognizes.
- A dictionary word and a contact name can collide on capitalization. A contact’s name keeps its own capitalization (“Wasi”) independent of how a dictionary word would be cased; if the same word would otherwise appear twice (once lowercase, once capitalized), only the better-scored one is shown, never both.
- Missing-space splits need a real word on both sides. “ofthe” only becomes “of the” if both halves are independently known words. An arbitrary split of an unknown word never appears as a candidate.
- Shrinking a word has a floor, and past it the ellipsis is back. The two stages together fit roughly twice the slot width. A word longer than that still ends in ”…”, and so does a slot squeezed narrow by a long smart reply or a full row of predicted emoji riding the tail.
- Only the three word candidates scale. Conversion candidates (Pinyin, kana, jyutping) keep their fixed larger size, since Han and kana need it, and they scroll instead of splitting the bar evenly. Predicted emoji, punctuation chips and the clipboard pill are all fixed-size too.
- The strip fades rather than snapping. When the composing buffer or field empties out completely (deleting back to nothing, clearing the field, backing out of a
:emoji search), the last set of candidates stays visible and fades out over a short animation instead of disappearing instantly. - A contact-email suggestion is never added to your personal dictionary, since an address isn’t a word to learn. Tapped inside a field the keyboard recognizes as an email input, it also commits with no trailing space (the address is usually the whole field); tapped from an ordinary text field it gets a trailing space like any other suggestion (see Contact-aware typing for that behavior in full).
For the word-typo confidence math and how a correction is applied automatically instead of just offered, see Autocorrect. For the full story on what gets learned, how strongly, and how to review or clear it, see Personal dictionary. To keep a specific word out of the strip entirely, see the suggestion blacklist.
