The Quest For a WYSIWYG Input Element

htmlArea was the original name for a widget that replaced textarea elements with a full WYSIWYG editor.

The project has since vanished into oblivion, but given that HTML editing was fundamentally broken until version 3, I started keeping a mini-directory of similar efforts here, mostly based on contentEditable.

I started doing that back in February 2009. It’s now 2016, and we still haven’t fixed this.

In short, it’s amazing how much effort people are wasting putting together (often brilliant) solutions for something that should have been sorted out early on in the history of the web browser.

Resources:

Date Link Category Notes
2016
Sep Trix Basecamp’s own editor, with its own internal representation/document model.
Slate A more generic approach for building custom editors.
2015
Aug Prosemirror A collaborative editor that uses as internal representation
2014
May Quill Another one with a sane approach at editing URLs (reached 1.0 in 2016, featuring an interesting internal document model and delta transforms for simultaneous editing).
Mar scribe yet another attempt at taming contentEditable that almost works on mobile, except for a tendency to insert non-breaking spaces.
Feb jquery-notebook A simple but effective plugin
2013
Oct Sir Trevor A very nice block-oriented editor. Depends on and a few other libraries.
Sep medium-editor Inspired by the Medium editor, no dependencies, has a companion image upload plugin.
2012
May Redactor Pretty amazing. Requires .
Jan wysihtml5 An HTML5-oriented effort, in use by XING.
Aloha Editor Unobtrusive and lightweight.
2009
Feb 13 WYMeditor a very nice What You See Is What You Mean editor.
Older Flash Text Area Flash works pretty well, even considering the formatting options are very limited
flashArea free, $5 for source code. Does images, but has a bazillion standalone .swf files for each button.
Obedit pretty good for text-only input, doesn’t do images.
Flash text editor pretty old.
Wikiwyg JavaScript Mozilla-only, very old.

This page is referenced in: