The answer here is pretty much the same as in this thread: Non-atomic inline nodes will need a bunch of scripting to behave well. ProseMirror is relying on the browser’s native cursor motion and positioning, and Chrome won’t even let you put your cursor into the span element. Firefox kind of does, and lets you type into it, but once you move out of it you cannot move back. You’d have to override cursor motion keys to make this work. Or, which is often a better solution, use a mark instead of a node.