# Native spellcheck is never applied to a CodeMirror 6 editing host on Chromium 152 (Electron 44)

**URL:** https://discuss.codemirror.net/t/native-spellcheck-is-never-applied-to-a-codemirror-6-editing-host-on-chromium-152-electron-44/9886
**Category:** v6
**Created:** [September 5, 2026, 8:20am UTC](https://discuss.codemirror.net/t/native-spellcheck-is-never-applied-to-a-codemirror-6-editing-host-on-chromium-152-electron-44/9886 "2026-09-05T08:20:00Z")
**Posts on this page:** 4
**Page:** 1

<div class="post-metadata">

### Author: ![mlongo](https://discuss.codemirror.net/user_avatar/discuss.codemirror.net/mlongo/32/5553_2.png) [@mlongo](https://discuss.codemirror.net/u/mlongo)
#### Post date: [September 5, 2026, 8:20am UTC](https://discuss.codemirror.net/t/native-spellcheck-is-never-applied-to-a-codemirror-6-editing-host-on-chromium-152-electron-44/9886/1 "2026-09-05T08:20:00Z")

</div>

On Chromium 152 (Electron 44), a bare `EditorView` (only `EditorView.contentAttributes.of({spellcheck: "true", lang: "en-US"})`, no other extensions) is never underlined by the native spellchecker, and the right-click menu offers no misspelled word or suggestions — while an otherwise-identical plain `contenteditable` (same `spellcheck`/`lang`, and a static copy of the same `.cm-content > .cm-line` markup with the exact attribute set CM applies) _is_ checked. It reproduces at top level — not only nested inside another editor, which is where we first hit it (a cell sub-editor inside a larger CM document).

What I ruled out while isolating it to the live editing runtime: a _static_ clone of CM’s content DOM is checked fine; mimicking CM’s per-keystroke DOM work in a plain `contenteditable` (replacing the edited text node or the whole line, re-asserting the selection, synchronously or on rAF) does **not** reproduce it; and replacing a text node/line _after_ typing does **not** remove an already-painted marker. So it does not look like markers being wiped — the marker is simply **never created** for the CM host. Chromium 152 also appears to only mark genuinely _typed_ text (attribute toggles / refocus do not trigger a re-check), so once the after-typing marking is missed there is no recovery.

Standalone repro (unmodified `@codemirror/view` 6.43.1 bundled with esbuild, no application code): [Repro: native spellcheck never applied to a CodeMirror 6 editing host on Chromium 152 (Electron 44) · GitHub](https://gist.github.com/mauriciolongo/daeff5511fdc9ea402506a917f1a83e5) — open in Electron 44 / Chrome 152 and type “recieve here” in each box: the plain contenteditable box squiggles, both CodeMirror boxes stay clean.

Is there anything in CM’s `beforeinput`/`DOMObserver`/selection-write path that could prevent Blink from completing its “mark misspellings after typing” pass for the view’s content element — and any way to nudge that pass to run? Happy to file a Chromium bug as well if this looks Blink-side from where you sit.

---

<div class="post-metadata">

### Author: ![marijn](https://discuss.codemirror.net/user_avatar/discuss.codemirror.net/marijn/32/136_2.png) [@marijn](https://discuss.codemirror.net/u/marijn)
#### Post date: [September 5, 2026, 7:59pm UTC](https://discuss.codemirror.net/t/native-spellcheck-is-never-applied-to-a-codemirror-6-editing-host-on-chromium-152-electron-44/9886/2 "2026-09-05T19:59:45Z")

</div>

I don’t see this. My Chromium 52 (Linux) spell-checks content inside CodeMirror as expected.

---

<div class="post-metadata">

### Author: ![mlongo](https://discuss.codemirror.net/user_avatar/discuss.codemirror.net/mlongo/32/5553_2.png) [@mlongo](https://discuss.codemirror.net/u/mlongo)
#### Post date: [September 6, 2026, 2:10am UTC](https://discuss.codemirror.net/t/native-spellcheck-is-never-applied-to-a-codemirror-6-editing-host-on-chromium-152-electron-44/9886/3 "2026-09-06T02:10:20Z")

</div>

Thanks for checking — you’re right, and I can now confirm it.

I re-ran the same repro page in plain Chrome 152.0.7977.82 (Linux, fresh en-US profile): all three boxes are spellchecked, including both CodeMirror editors.

The failure only reproduces under Electron 44 (same Chromium 152) — the plain contenteditable is checked but neither CM box ever gets a marker. So this is Electron’s spellchecker integration, not CodeMirror and not Blink in general.

I’m very sorry for the noise, and thanks for your attention.

I’ll take it to Electron. Leaving the repro here in case anyone else hits it in an Electron app.

---

<div class="post-metadata">

### Author: ![5e-Cleric](https://discuss.codemirror.net/user_avatar/discuss.codemirror.net/5e-cleric/32/5476_2.png) [@5e-Cleric](https://discuss.codemirror.net/u/5e-Cleric)
#### Post date: [September 9, 2026, 10:37pm UTC](https://discuss.codemirror.net/t/native-spellcheck-is-never-applied-to-a-codemirror-6-editing-host-on-chromium-152-electron-44/9886/4 "2026-09-09T22:37:31Z")

</div>

I can’t make it work either, i assumed this just didn’t work until i saw this thread today.

My implementation is very complex so i might be missing the real issue, any idea of other things that could be breaking it? modifying decorations, other extensions.. does it need the autocorrect or writingsuggestions attributes to work?

This on Chrome 152, not on electron.
