EditContext
===========

**Experimental:** **This is an experimental technology**  
Check the Browser compatibility table carefully before using this in production.

The **`EditContext`** interface represents the text edit context of an element that was made editable by using the EditContext API.

The EditContext API can be used to build rich text editors on the web that support advanced text input experiences, such as Input Method Editor (IME) composition, emoji picker, or any other platform-specific editing-related UI surfaces.

Constructor
-----------

`EditContext()` 
Experimental

Returns a new `EditContext` instance.

Instance properties
-------------------

`EditContext.text` Read only  
Experimental

The editable content of the element.

`EditContext.selectionStart` Read only  
Experimental

The offset, within the editable text content, of the start of the current selection.

`EditContext.selectionEnd` Read only  
Experimental

The offset, within the editable text content, of the end of the current selection.

`EditContext.characterBoundsRangeStart` Read only  
Experimental

The offset, within the editable text content, where the last IME composition started.

Instance methods
----------------

*`EditContext` is based on the `EventTarget` interface, and includes its methods.*

`EditContext.attachedElements()` 
Experimental

An `Array` containing one `HTMLElement` object which is the element that's associated with the `EditContext` object.

`EditContext.characterBounds()` 
Experimental

The list of bounding rectangles for the characters in the `EditContext` object.

`EditContext.updateText()` 
Experimental

Updates the internal text content of the `EditContext` object.

`EditContext.updateSelection()` 
Experimental

Updates the internal state of the selection within the editable text context.

`EditContext.updateControlBounds()` 
Experimental

Informs the operating system about the position and size of the editable text region.

`EditContext.updateSelectionBounds()` 
Experimental

Informs the operating system about the position and size of the selection within the editable text region.

`EditContext.updateCharacterBounds()` 
Experimental

Informs the operating system about the position and size of the characters in the `EditContext` object.

Events
------

`textupdate` 
Experimental

Fired when the user has made changes to the text or selection.

`textformatupdate` 
Experimental

Fired when composition using an Input Method Editor (IME) window is happening and the IME decides that certain parts of the text being composed should be formatted differently to indicate the composition state.

`characterboundsupdate` 
Experimental

Fired when the operating system needs to know the size and position of certain characters within the editable text region of the `EditContext` object, in order to display an IME window.

`compositionstart` 
Experimental

Fired when composition using an IME window is starting.

`compositionend` 
Experimental

Fired when composition using an IME window is ending.

Specifications
--------------

| Specification |
| --- |
| EditContext API # dom-editcontext |

Browser compatibility
---------------------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.