I’m a big fan of Javascript-based WYSIWYG editors as a way of creating rich content for webpages. They’re a much nicer solution than using BBCodes, Wiki codes or Textile-like markup languages. My favourite rich text editor at the moment is TinyMCE which I’m using on this blog. TinyMCE supports a lot more browsers than most of the other rich text editors and is quite nice to work with.
Many of these scripts will use hacks such as taking a textarea, hiding it, creating a new iframe with a blank document with designmode on, and then when the form is submitted copying the HTML from the rich text editor to the original textarea.
The browsers provide quite a low level way so scripts which implement rich text editors such as TinyMCE may be as much as 150KB.
<htmlarea>
It’d be great if a standard tag, similar to textarea but with HTML rich text editing capabilities, could be created. The "htmlarea" will just have to provide a very simple high-level API to make it really easy to add buttons to bold text, insert images, etc. The tag and API could be standardized through the WHATWG in a similar way to canvas (this tag could do for text what canvas did for images).
As more and more rich "Web 2.0" apps allow people to submit their own content, often including multimedia such as videos, flash, pictures and links, this could be a really useful extension to HTML.
Possible benefits:
- For web developers, they’d have a great browser-supported and standardized way of creating rich text editors which should be less buggy and work better than editors such as TinyMCE.
- The rich text editor should be more accessible to those without Javascript.
- The browser could have an "expert mode" which allows people to choose to always edit their HTML by hand rather than using rich text.
- There are no constraints by the license of the WYSIWYG editor script.
- No need to download 150KB from every site that wants a rich text editor.
- No iframe, copying content hacks.
- Right click > Edit in [Dreamweaver, Nvu, Frontpage…]
- Works with the browsers built in spell checker properly (Firefox 2.0 or later)