ProseMirror: splitBlock crashes on specific node nesting
OS: Windows 11 · Device: Desktop Any · Browser: All Browsers n/a · Keyboard: US QWERTY
Open case →Scenario
Enter key handling, splitBlock commands, and browser-default paragraph creation differ—ProseMirror and native contenteditable can disagree, causing crashes or empty blocks at boundaries.
Enter key handling, splitBlock commands, and browser-default paragraph creation differ—ProseMirror and native contenteditable can disagree, causing crashes or empty blocks at boundaries.
Visual view of how this scenario connects to its concrete cases and environments. Nodes can be dragged and clicked.
Each row is a concrete case for this scenario, with a dedicated document and playground.
| Case | OS | Device | Browser | Keyboard | Status |
|---|---|---|---|---|---|
| ce-0576-prosemirror-splitblock-crash | Windows 11 | Desktop Any | All Browsers n/a | US QWERTY | confirmed |
Open a case to see the detailed description and its dedicated playground.
OS: Windows 11 · Device: Desktop Any · Browser: All Browsers n/a · Keyboard: US QWERTY
Open case →Other scenarios that share similar tags or category.
Browsers disagree on how empty blocks are represented (<p><br></p>, <p></p>, <div><br></div>) and how Backspace merges them. Editors that normalize on every keystroke can fight the user or create nested spans.
The same DOM edited in contenteditable may serialize to different markup strings in Safari vs Chrome—attribute order, implied tags, and span wrappers for styles.
In Chromium, programmatic DOM updates (normalization, wrapping, React reconciliation) while the user is typing can move the caret to the end of the contenteditable or to an unexpected boundary—especially when the mutation happens between keystrokes.
Using the HTML drag-and-drop API inside or alongside contenteditable regions often diverges from behavior on plain elements: default actions, `contenteditable` hit-testing, and `beforeinput`/`drop` ordering differ by browser. Custom editors must reconcile native DnD with their own selection model.
Dragging selected content inside a contenteditable region on Firefox can duplicate nodes or leave ghost fragments—different from Chrome's behavior.
Have questions, suggestions, or want to share your experience? Join the discussion below.