Why macOS Autocorrect Gets It Wrong

macOS autocorrect is dictionary-based and tuned conservatively. It misses most typing errors, occasionally changes words that were already correct, and stops working entirely in Electron apps like Slack and VS Code. Understanding why requires looking at the system underneath: NSSpellChecker, a spell-checking framework that has not received a significant architectural update in over a decade and was never designed for the way most people use their Macs today.

Why does macOS autocorrect miss so many errors?

The core technology behind macOS autocorrect is NSSpellChecker, a framework that compares typed words against a static dictionary. It is not a machine learning model. It has no understanding of context, no probability model for common typing patterns, and no ability to learn from the specific errors you make most often.

The dictionary covers approximately 10,000 common English words. Words outside this list are either silently ignored or flagged with a red squiggle, but not corrected. This means technical terms, product names, proper nouns, domain-specific vocabulary, and any word Apple's team did not include in the dictionary are simply invisible to the system. A developer who types "useState" or "querySelector" every day gets no help. A medical professional typing medication names receives nothing.

Apple tuned NSSpellChecker to minimise false corrections rather than to maximise catch rate. The reasoning is defensible: aggressively correcting words users meant to type is worse than missing some genuine errors. The result, however, is a system that catches only approximately 40% of typos in practice. That means 6 out of every 10 mistakes reach the recipient.

A dictionary-based system also cannot distinguish between wrong-word errors and correct words. Typing "their" when you meant "there" returns no correction. Both words exist in the dictionary. The entire class of homophone substitution errors, which accounts for a significant portion of professional writing mistakes, is beyond NSSpellChecker's capability by design.

Why does it change words that were already correct?

The false-correction problem is the flip side of the conservative tuning. When NSSpellChecker does decide to make a correction, it is working from dictionary proximity rather than semantic understanding. If a word you typed is not in the dictionary, the system selects the closest dictionary match by character distance and substitutes it.

This produces the classic "autocorrect fail" experience: a correctly spelled word that happens not to be in the dictionary gets replaced with the closest-sounding dictionary word. Proper nouns are especially vulnerable. Names, company names, place names, and technical terms all sit outside the dictionary and are candidates for unwanted replacement.

Because NSSpellChecker does not understand what you are trying to say, it cannot distinguish between "I am going to meet Sven" (correct) and "I am going to meet sven" (where "sven" might be auto-corrected to "even"). The context that would tell a human reader which correction to apply is simply not available to a dictionary lookup system.

Why doesn't autocorrect work in Slack, VS Code, or Discord?

This is the limitation that frustrates most Mac users most often. Slack, VS Code, Discord, Notion, and many other popular Mac applications are built on Electron, a framework that packages web applications as native-looking desktop apps using the Chromium web engine.

NSSpellChecker is tightly coupled to NSTextView, Apple's native text input component. When an app uses NSTextView, spell checking is available automatically. When an app uses Chromium's web renderer for text input, which Electron apps do by default, NSTextView is not involved and NSSpellChecker cannot hook into the text stream at all. The spell checker simply does not know text is being typed.

73% of Mac apps that handle text input use Electron or web rendering. The productivity applications that knowledge workers spend the most time in - their Slack workspace, their VS Code editor, their Notion notes - are exactly the apps where macOS autocorrect is absent. Apple's built-in solution protects text entry in native apps like Notes and Mail, but those represent a shrinking fraction of where professionals actually write.

Apple's response to the Electron problem is Apple Intelligence, the writing tools introduced in macOS 15. However, Apple Intelligence requires both macOS 15 Sequoia and an Apple Silicon Mac. Anyone on macOS 14 Sonoma, or on an Intel Mac, receives no benefit from this improvement. The fundamental NSSpellChecker limitation for Electron apps is unchanged for the majority of Mac users.

What can you use instead?

The architectural problem with macOS autocorrect, specifically the combination of dictionary-only matching and NSTextView dependency, requires a different approach to solve.

Charm uses the macOS Accessibility API instead of NSSpellChecker. The Accessibility API gives Charm visibility into text input across all applications regardless of how they render text. An Electron app, a web view, a native text field, a PDF form - the Accessibility API sees them all. This is how Charm provides real-time correction in Slack, VS Code, Discord, and every other app on your Mac where macOS autocorrect silently fails.

On the accuracy side, Charm uses a machine learning model rather than a dictionary lookup. The model understands common error patterns: transposition errors, adjacent key substitutions, phonetic similarity, and homophones. It catches approximately 85% of typos compared to macOS autocorrect's 40%. The ML model also handles technical terms and proper nouns more gracefully, because it uses error pattern recognition rather than strict dictionary matching.

Capability macOS Autocorrect Charm
Works in Slack No Yes
Works in VS Code No Yes
Works in Discord No Yes
Works in Apple Notes Yes Yes
Typo catch rate ~40% ~85%
Grammar correction No Yes (Polish feature)
Word prediction No Yes (Oracle feature)
Uses language model No - dictionary only Yes
macOS 14 support Yes (no AI features) Yes
Intel Mac support Yes (no AI features) Yes
The bottom line: macOS autocorrect was designed for a world where most Mac apps were built natively. That world no longer exists. With 73% of text-input apps using Electron or web rendering, the built-in system is absent for most of the writing Mac users actually do. Charm solves this with the Accessibility API, working everywhere NSSpellChecker cannot reach.

Frequently asked questions

Why is Mac autocorrect so bad?

macOS autocorrect uses NSSpellChecker, a dictionary-based system with no language model. It checks words against a static list of roughly 10,000 common words with no contextual understanding. It was tuned conservatively to avoid false corrections, which means it misses approximately 60% of typos and cannot handle technical terms, proper nouns, or homophone errors.

Why doesn't autocorrect work in Slack on Mac?

Slack on Mac is an Electron app. Its text input areas are rendered by the Chromium web engine rather than native macOS NSTextView components. NSSpellChecker only hooks into NSTextView, so macOS spell checking is completely absent in all Electron-based apps. Charm solves this by using the Accessibility API instead, which works regardless of how an app renders text.

Does macOS autocorrect work in VS Code?

No. VS Code is an Electron app, and its text editor uses Chromium's web renderer, not NSTextView. macOS autocorrect does not function in VS Code at all. Charm works in VS Code because it uses the Accessibility API rather than NSSpellChecker, giving it visibility into text input in any app regardless of how it is built.

How do I get better autocorrect on Mac?

Charm is the most practical upgrade. It works in every app including Electron apps like Slack and VS Code, uses a machine learning model instead of a dictionary, and catches approximately 85% of typos versus macOS autocorrect's 40%. It requires macOS 14 Sonoma or later and costs $9.99 as a one-time purchase, with no subscription or account needed.

When did Mac autocorrect last improve?

NSSpellChecker has not received a significant architectural update in over a decade. Apple Intelligence (macOS 15, Apple Silicon only) adds ML-based writing suggestions as a separate feature, but it does not replace or improve NSSpellChecker for users on macOS 14 or Intel Macs. The core dictionary-based autocorrect system remains essentially unchanged for most users.

Get autocorrect that actually works everywhere on your Mac.

Charm corrects spelling in Slack, VS Code, Discord, and every other app. ML-powered, on-device, $9.99 once.

Learn more about Charm Get Charm for Mac $9.99