I have played with making an absolutely positioned single-char text input box in my custom editor (https://github.com/dnewcome/richie). The idea is that it forces the built-in keyboard to show but the input is caught and inserted into the DOM. I don't use contenteditable since it doesn't work on most mobile devices. My hacks are really rough but I think the technique could be polished eventually.