A library newsletter can make the problem easy to reproduce: “The library hosts a writting workshop.” Keep that intentional misspelling in a development draft while diagnosing missing suggestions. Correct spelling is only one check; the software cannot establish that the workshop details are right.
Try the browser route with its own menu
In an application where TinyMCE is already loaded, a minimal initialization for a notice field is:
tinymce.init({
selector: '#notice',
browser_spellcheck: true,
contextmenu: false
});
The page must contain the matching editable field, and your existing loading and license configuration still applies. If the application already initializes that field, update that configuration rather than creating a second editor on it.
Disabling TinyMCE's context menu makes the native right-click menu available in this example. If you retain the TinyMCE menu, the documentation describes Ctrl+right-click for access to the browser menu, unless contextmenu_never_use_native prevents it. Browser-based spell checking
Type the test sentence yourself, focus the editor, and inspect the misspelled word. If suggestions do not appear, confirm that the browser's own spelling feature and intended English dictionary are enabled. Browser behavior and dictionary availability are part of this route; TinyMCE does not supply a browser dictionary through browser_spellcheck.
Use the premium plugin when the application already has access
TinyMCE's current documentation identifies Spell Checker as available through paid subscriptions. With Tiny Cloud, the service side is configured through that route. Self-hosted installations also need a configured server-side spelling service. Confirm the application's existing entitlement and deployment before adding plugin settings. Spell Checker installation
For a current Tiny Cloud integration with access to the plugin, merge these options into the existing initialization:
// Configuration fragment, not a second tinymce.init() call.
const spellingOptions = {
plugins: 'tinymcespellchecker',
toolbar: 'spellchecker',
content_language: 'en-US',
spellchecker_active: true
};
Preserve the existing plugins and toolbar entries when merging this fragment. Replacing those lists wholesale can remove unrelated controls. Do not invent a spellchecker_rpc_url for a cloud setup or copy an old example's PHP endpoint into a current installation.
Check the proofing language rather than the toolbar language
The current documentation, checked October 23, 2026, marks spellchecker_language deprecated from TinyMCE 8.5 and recommends content_language. The latter sets the content language and serves as the default proofing language when the plugin is active. It is separate from language, which controls the editor's user interface. Use the documentation matching your installed version. Content localization
For an existing initialized notice editor, inspect the plugin's active language through its API:
const editor = tinymce.get('notice');
const spelling = editor?.plugins.tinymcespellchecker;
if (spelling) {
console.log(spelling.getLanguage());
}
The API guard distinguishes a missing plugin from a language mismatch. A user's previously chosen language can affect the active setting; inspect what the plugin reports and change it through the supported language control or API. Avoid clearing all browser storage merely to investigate a dictionary selection, because the application may keep unrelated drafts and preferences there.
Diagnose the first failed step
| Observation | Check next |
|---|---|
| Browser route has no native suggestions | Browser spelling setting, dictionary, and native context-menu access |
| Premium plugin object is absent | Plugin loading, initialization list, and available access |
| Plugin is present but checking is off | Active state and the spelling toolbar control |
| Suggestions use the wrong language | Active proofing language and the user's selected language |
| A service error appears | Actual spelling request, response, and self-hosted service configuration if applicable |
The plugin exposes SpellcheckError for service failures. Handle it visibly in the application instead of treating missing underlines as proof that the text has no errors. The plugin API and events describe that event and the language methods.
After the intended checker offers a suitable correction for “writting,” accept it and save the newsletter through the application's existing route. Reopen it to confirm “writing” survived. The TinyMCE current-content guide covers that separate synchronization step. Finally, read the whole newsletter yourself, including names, dates, and workshop details that a spelling dictionary cannot verify.