Firefox undo/redo stack corrupted by DOM mutations during input
OS: Windows 10/11 · Device: Desktop Any · Browser: Firefox 115.0+ · Keyboard: US QWERTY
Open case →Scenario
Firefox undo/redo stack corrupted by DOM mutations during input
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-0224-firefox-undo-corruption | Windows 10/11 | Desktop Any | Firefox 115.0+ | US QWERTY | draft |
Open a case to see the detailed description and its dedicated playground.
OS: Windows 10/11 · Device: Desktop Any · Browser: Firefox 115.0+ · Keyboard: US QWERTY
Open case →Other scenarios that share similar tags or category.
When a parent element has contenteditable="true" and a child element has contenteditable="false", the inheritance behavior is inconsistent across browsers. Some browsers allow editing in the child, while others correctly prevent it. The behavior may also differ when the child has contenteditable="inherit" or no contenteditable attribute.
When a contenteditable element has CSS mix-blend-mode applied, text rendering may be affected. Text may appear with incorrect colors, selection may not be visible, and caret may not render correctly.
On Firefox with Windows 10 and Korean IME, specific key combination during IME composition causes the editor to crash. The crash occurs when typing certain sequences with the Korean IME.
The undo and redo functionality (Ctrl+Z / Ctrl+Y or Cmd+Z / Cmd+Shift+Z) behaves differently across browsers. Some browsers undo individual keystrokes, while others undo larger operations. The undo stack may also be cleared unexpectedly.
The undo/redo stack in contenteditable elements behaves inconsistently across browsers. Programmatic DOM changes may or may not be added to the undo stack, and the stack may be cleared unexpectedly. Custom undo/redo implementation is often necessary.
Have questions, suggestions, or want to share your experience? Join the discussion below.