The contenteditable
global attribute is an enumerated attribute indicating if the element should be editable by the user. If so, the browser modifies its widget to allow editing.
The source for this interactive example is stored in a GitHub repository. If you'd like to contribute to the interactive examples project, please clone https://github.com/mdn/interactive-examples and send us a pull request.
The attribute must take one of the following values:
true
or an empty string, which indicates that the element is editable.false
, which indicates that the element is not editable.
If the attribute is given without a value, like <label contenteditable>Example Label</label>
, its value is treated as an empty string.
If this attribute is missing or its value is invalid, its value is inherited from its parent element: so the element is editable if its parent is editable.
Note that although its allowed values include true
and false
, this attribute is an enumerated one and not a Boolean one.
You can set the color used to draw the text insertion caret with the CSS caret-color
property.
Specifications
Specification | Status | Comment |
---|---|---|
HTML Living Standard The definition of 'contenteditable' in that specification. |
Living Standard | No change from latest snapshot, HTML 5.2 |
HTML 5.2 The definition of 'contenteditable' in that specification. |
Recommendation | Snapshot of HTML Living Standard, no change from HTML 5.1 |
HTML 5.1 The definition of 'contenteditable' in that specification. |
Recommendation | Snapshot of HTML Living Standard, no change from HTML5 |
HTML5 The definition of 'contenteditable' in that specification. |
Recommendation | Snapshot of HTML Living Standard, initial definition. |
Browser compatibility
Desktop | Mobile | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
contenteditable | Chrome Full support Yes | Edge Full support 12 | Firefox Full support 3 | IE Full support 5.5 | Opera Full support 9 | Safari Full support Yes | WebView Android Full support Yes | Chrome Android Full support Yes | Firefox Android Full support 4 | Opera Android Full support Yes | Safari iOS Full support Yes | Samsung Internet Android Full support Yes |
contenteditable="caret" | Chrome Full support Yes | Edge Full support ≤79 | Firefox No support No | IE No support No | Opera Full support Yes | Safari No support No | WebView Android Full support Yes | Chrome Android Full support Yes | Firefox Android No support No | Opera Android Full support Yes | Safari iOS No support No | Samsung Internet Android Full support Yes |
contenteditable="events" | Chrome Full support Yes | Edge Full support ≤79 | Firefox No support No | IE No support No | Opera Full support Yes | Safari No support No | WebView Android Full support Yes | Chrome Android Full support Yes | Firefox Android No support No | Opera Android Full support Yes | Safari iOS No support No | Samsung Internet Android Full support Yes |
contenteditable="plaintext-only" | Chrome Full support Yes | Edge Full support ≤79 | Firefox No support No | IE No support No | Opera Full support Yes | Safari Full support Yes | WebView Android Full support Yes | Chrome Android Full support Yes | Firefox Android No support No | Opera Android Full support Yes | Safari iOS Full support Yes | Samsung Internet Android Full support Yes |
contenteditable="typing" | Chrome Full support Yes | Edge Full support ≤79 | Firefox No support No | IE No support No | Opera Full support Yes | Safari No support No | WebView Android Full support Yes | Chrome Android Full support Yes | Firefox Android No support No | Opera Android Full support Yes | Safari iOS No support No | Samsung Internet Android Full support Yes |
Legend
- Full support
- Full support
- No support
- No support
- Experimental. Expect behavior to change in the future.
- Experimental. Expect behavior to change in the future.