[whatwg] What exactly is contentEditable for?

Ian Hickson wrote:
> On Mon, 15 Aug 2005, Lachlan Hunt wrote:
> 
>>How is [contentEditable] any different from a text area form control 
>>with a specified accept type of text/html, which would allow a UA to 
>>load any external editor (eg. XStandard) or degrade to a regular text 
>>area?
> 
> contentEditable is implemented. <textarea type="text/html"> is not.

And, as I demonstrated in an earlier e-mail with the widgEditor I linked 
to, it's not hard for an author to provide a script that converts the 
textarea to a WYSIWYG editor using the contentEditable DOM interface. 
It's not much different from the scripts that are being written to add 
support for other extensions in today's browsers.

>>That would be a far better option than using contentEditable, which is 
>>not only conceptually broken, but *all* implementations of it are so 
>>incredibly broken, that trying to standardise it is like dragging a dead 
>>horse through mud.
> 
> There may be some truth to that, but contentEditable also has other 
> benefits, like integration with the DOM, and the ability to seemlessly 
> integrate with the page. For example, on a wiki, you can be browing the 
> content, and then toggle one area so it is contentEditable, edit it, and 
> submit that, all asynchronously and without having to switch in a 
> <textarea> or anything like that.

That's a reasonable argument for standardising the DOM interface for it, 
but not for including contentEditable as an attribute in the markup, 
which is what I'm against the most.

Although I am against the use of contentEditable in general, that's 
mostly because {a) all the implementations of it are broken and (b) the 
way it was designed is too presentationally oriented for a semantic 
markup language - it basically suffers from the same design flaws as 
every other WYSIWYG editor.

Using the wiki example, a script could be provided which captures the 
events for the "edit this" links and dynamically makes the content for 
that section editable using the contentEditable DOM interface.  Scripts 
would also be used to handle the submission.

However, without script those links should fall back to the way they 
currently work, which is to load a seperate page with the editable 
markup in a textarea for the user.  Additionally, that textarea could 
have an accept="text/html" attribute, from which (even without JS 
enabled) the user agent could choose to load an HTML editor for the user 
(whether that be for just providing syntax highlighting in code view or 
a WYSIWYG style editor).

Personally, I'd like to see it better integrated with the DOM 2 Range 
interface, so the scripts could work with the nodes a little easier and 
which I'd like to see more widely implemented.

-- 
Lachlan Hunt
http://lachy.id.au/

Received on Tuesday, 23 August 2005 21:13:10 UTC