Даже Документы Google созданы на основе contentEditable. Однако они используют его по-другому, как это делают большинство редакторов.
Когда вы фокусируете область документа, кажется, что она сфокусирована из-за поддельной каретки. Фактический фокус идет на <iframe>
с настроенными слушателями событий клавиатуры. Механизм (kix) затем изменяет область документа на основе нажатых клавиш.
Это замечательно, потому что на самом деле серьезных кросс-браузерных несоответствий нет, так как браузер не тот, который модифицирует DOM.
Единственной альтернативой, которую я могу придумать, может быть простой ввод текста вместо элемента contentEditable, но зачем беспокоиться о таких проблемах, как максимальная длина, когда вы можете просто воспользоваться contentEditable; -)