This spec is incomplete and it is not expected that it will advance beyond draft status. Authors should not use most of these features directly, but instead use JavaScript editing libraries. The features described in this document are not implemented consistently or fully by user agents, and it is not expected that this will change in the foreseeable future. There is currently no alternative to some execCommand actions related to clipboard content and contentEditable=true is often used to draw the caret and move the caret in the block direction as well as a few minor subpoints. This spec is to mean to help implementations in standardizing these existing features. It is predicted that in the future both specs will be replaced by Content Editable and Input Events.

We need to figure out whether we want to continue working on this document or not. If we keep the current division between execCommand and contentEditable=True, we should likely move those things that are only contentEditable related from the execCommand spec to this document. For example, some of the text concerning deletion of content may be more related to contentEditable = True.

This specification defines the expected behaviors for for elements with the contenteditable attribute set to true or plaintext-only. This specification builds on HTML5.

Problem and Use Cases

The problems solved by and use cases for this document by this document are tracked in the Editing Explainer document.


This section is not normative.

ContentEditable elements provide a caret that can be moved with the caret, and allow for the direction insertion of text at the position of the caret via the keyboard.

ContentEditable elements can function as editing hosts for commands executed with execCommand.