1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
|
---
title: HTMLElement
slug: Web/API/HTMLElement
tags:
- API
- HTML DOM
- Interface
- NeedsNewLayout
- NeedsTranslation
- Reference
- TopicStub
translation_of: Web/API/HTMLElement
---
<div>{{ APIRef("HTML DOM") }}</div>
<p>The <strong><code>HTMLElement</code></strong> interface represents any <a href="/en-US/docs/Web/HTML" title="/en-US/docs/Web/HTML">HTML</a> element. Some elements directly implement this interface, while others implement it via an interface that inherits it.</p>
<p>{{InheritanceDiagram}}</p>
<h2 id="Properties">Properties</h2>
<p><em>Inherits properties from its parent, {{domxref("Element")}}, and implements those from {{domxref("GlobalEventHandlers")}} and {{domxref("TouchEventHandlers")}}.</em></p>
<dl>
<dt>{{domxref("HTMLElement.accessKey")}}</dt>
<dd>Is a {{domxref("DOMString")}} representing the access key assigned to the element.</dd>
<dt>{{domxref("HTMLElement.accessKeyLabel")}} {{readonlyInline}}</dt>
<dd>Returns a {{domxref("DOMString")}} containing the element's assigned access key.</dd>
<dt>{{domxref("HTMLElement.contentEditable")}}</dt>
<dd>Is a {{domxref("DOMString")}}, where a value of <code>"true"</code> means the element is editable and a value of <code>"false"</code> means it isn't.</dd>
<dt>{{domxref("HTMLElement.isContentEditable")}} {{readonlyInline}}</dt>
<dd>Returns a {{domxref("Boolean")}} that indicates whether or not the content of the element can be edited.</dd>
<dt>{{domxref("HTMLElement.contextMenu")}} {{deprecated_inline}}</dt>
<dd>Is a {{domxref("HTMLMenuElement")}} representing the contextual menu associated with the element. It may be <code>null</code>.</dd>
<dt>{{domxref("HTMLElement.dataset")}} {{readonlyInline}}</dt>
<dd>Returns a {{domxref("DOMStringMap")}} with which script can read and write the element's <a href="/en-US/docs/Web/Guide/HTML/Using_data_attributes">custom data attributes</a> (<code>data-*</code>) .</dd>
<dt>{{domxref("HTMLElement.dir")}}</dt>
<dd>Is a {{domxref("DOMString")}}, reflecting the <code>dir</code> global attribute, representing the directionality of the element. Possible values are <code>"ltr"</code>, <code>"rtl"</code>, and <code>"auto"</code>.</dd>
<dt>{{domxref("HTMLElement.draggable")}}</dt>
<dd>Is a {{jsxref("Boolean")}} indicating if the element can be dragged.</dd>
<dt>{{domxref("HTMLElement.dropzone")}} {{readonlyInline}}</dt>
<dd>Returns a {{domxref("DOMSettableTokenList")}} reflecting the <code>dropzone</code> global attribute and describing the behavior of the element regarding a drop operation.</dd>
<dt>{{domxref("HTMLElement.hidden")}}</dt>
<dd>Is a {{jsxref("Boolean")}} indicating if the element is hidden or not.</dd>
<dt>{{domxref("HTMLElement.inert")}}</dt>
<dd>Is a {{jsxref("Boolean")}} indicating whether the user agent must act as though the given node is absent for the purposes of user interaction events, in-page text searches ("find in page"), and text selection.</dd>
<dt>{{domxref("HTMLElement.innerText")}}</dt>
<dd>Represents the "rendered" text content of a node and its descendants. As a getter, it approximates the text the user would get if they highlighted the contents of the element with the cursor and then copied it to the clipboard.</dd>
<dt>{{domxref("HTMLElement.itemScope")}} {{experimental_inline}}</dt>
<dd>Is a {{jsxref("Boolean")}} representing the item scope.</dd>
<dt>{{domxref("HTMLElement.itemType")}} {{readonlyInline}}{{experimental_inline}}</dt>
<dd>Returns a {{domxref("DOMSettableTokenList")}}…</dd>
<dt>{{domxref("HTMLElement.itemId")}} {{experimental_inline}}</dt>
<dd>Is a {{domxref("DOMString")}} representing the item ID.</dd>
<dt>{{domxref("HTMLElement.itemRef")}} {{readonlyInline}}{{experimental_inline}}</dt>
<dd>Returns a {{domxref("DOMSettableTokenList")}}…</dd>
<dt>{{domxref("HTMLElement.itemProp")}} {{readonlyInline}}{{experimental_inline}}</dt>
<dd>Returns a {{domxref("DOMSettableTokenList")}}…</dd>
<dt>{{domxref("HTMLElement.itemValue")}} {{experimental_inline}}</dt>
<dd>Returns a {{jsxref("Object")}} representing the item value.</dd>
<dt>{{domxref("HTMLElement.lang")}}</dt>
<dd>Is a {{domxref("DOMString")}} representing the language of an element's attributes, text, and element contents.</dd>
<dt>{{domxref("HTMLElement.noModule")}}</dt>
<dd>Is a {{jsxref("Boolean")}} indicating wether an import script can be executed in user agents that support module scripts.</dd>
<dt>{{domxref("HTMLElement.nonce")}}</dt>
<dd>Returns the cryptographic number used once that is used by Content Security Policy to determine whether a given fetch will be allowed to proceed.</dd>
<dt>{{domxref("HTMLElement.offsetHeight")}} {{readonlyInline}}{{experimental_inline}}</dt>
<dd>Returns a <code>double</code> containing the height of an element, relative to the layout.</dd>
<dt>{{domxref("HTMLElement.offsetLeft")}}{{readonlyInline}}{{experimental_inline}}</dt>
<dd>Returns a <code>double</code>, the distance from this element's left border to its <code>offsetParent</code>'s left border.</dd>
<dt>{{domxref("HTMLElement.offsetParent")}}{{readonlyInline}}{{experimental_inline}}</dt>
<dd>Returns a {{domxref("Element")}} that is the element from which all offset calculations are currently computed.</dd>
<dt>{{domxref("HTMLElement.offsetTop")}}{{readonlyInline}}{{experimental_inline}}</dt>
<dd>Returns a <code>double</code>, the distance from this element's top border to its <code>offsetParent</code>'s top border.</dd>
<dt>{{domxref("HTMLElement.offsetWidth")}}{{readonlyInline}}{{experimental_inline}}</dt>
<dd>Returns a <code>double</code> containing the width of an element, relative to the layout.</dd>
<dt>{{domxref("HTMLElement.properties")}} {{readonlyInline}}{{experimental_inline}}</dt>
<dd>Returns a {{domxref("HTMLPropertiesCollection")}}…</dd>
<dt>{{domxref("HTMLElement.spellcheck")}}{{ gecko_minversion_inline("1.9")}}</dt>
<dd>Is a {{jsxref("Boolean")}} that controls <a href="/en-US/docs/HTML/Controlling_spell_checking_in_HTML_forms" title="en/Controlling_spell_checking_in_HTML_forms">spell-checking</a>. It is present on all HTML elements, though it doesn't have an effect on all of them.</dd>
<dt>{{domxref("HTMLElement.style")}}</dt>
<dd>Is a {{domxref("CSSStyleDeclaration")}}, an object representing the declarations of an element's style attributes.</dd>
<dt>{{domxref("HTMLElement.tabIndex")}}</dt>
<dd>Is a <code>long</code> representing the position of the element in the tabbing order.</dd>
<dt>{{domxref("HTMLElement.title")}}</dt>
<dd>Is a {{domxref("DOMString")}} containing the text that appears in a popup box when mouse is over the element.</dd>
<dt>{{domxref("HTMLElement.translate")}} {{experimental_inline}}</dt>
<dd>Is a {{jsxref("Boolean")}} representing the translation.</dd>
</dl>
<h3 id="Event_handlers">Event handlers</h3>
<p>Most event handler properties, of the form <code>onXYZ</code>, are defined on the {{domxref("GlobalEventHandlers")}} or {{domxref("TouchEventHandlers")}} interfaces and implemented by <code>HTMLElement</code>. In addition, the following handlers are specific to <code>HTMLElement</code>.</p>
<dl>
<dt>{{ domxref("HTMLElement.oncopy") }} {{ non-standard_inline() }}</dt>
<dd>Returns the event handling code for the <code>copy</code> event ({{bug("280959")}}).</dd>
<dt>{{ domxref("HTMLElement.oncut") }} {{ non-standard_inline() }}</dt>
<dd>Returns the event handling code for the <code>cut</code> event ({{bug("280959")}}).</dd>
<dt>{{ domxref("HTMLElement.onpaste") }} {{ non-standard_inline() }}</dt>
<dd>Returns the event handling code for the <code>paste</code> event ({{bug("280959")}}).</dd>
<dt>{{domxref("TouchEventHandlers.ontouchstart")}} {{non-standard_inline}}</dt>
<dd>Returns the event handling code for the {{event("touchstart")}} event.</dd>
<dt>{{domxref("TouchEventHandlers.ontouchend")}} {{non-standard_inline}}</dt>
<dd>Returns the event handling code for the {{event("touchend")}} event.</dd>
<dt>{{domxref("TouchEventHandlers.ontouchmove")}} {{non-standard_inline}}</dt>
<dd>Returns the event handling code for the {{event("touchmove")}} event.</dd>
<dt>{{domxref("TouchEventHandlers.ontouchenter")}} {{non-standard_inline}}</dt>
<dd>Returns the event handling code for the {{event("touchenter")}} event.</dd>
<dt>{{domxref("TouchEventHandlers.ontouchleave")}} {{non-standard_inline}}</dt>
<dd>Returns the event handling code for the {{event("touchleave")}} event.</dd>
<dt>{{domxref("TouchEventHandlers.ontouchcancel")}} {{non-standard_inline}}</dt>
<dd>Returns the event handling code for the {{event("touchcancel")}} event.</dd>
</dl>
<h2 id="Methods">Methods</h2>
<p><em>Inherits methods from its parent, {{domxref("Element")}}.</em></p>
<dl>
<dt>{{domxref("HTMLElement.blur()")}}</dt>
<dd>Removes keyboard focus from the currently focused element.</dd>
<dt>{{domxref("HTMLElement.click()")}}</dt>
<dd>Sends a mouse click event to the element.</dd>
<dt>{{domxref("HTMLElement.focus()")}}</dt>
<dd>Makes the element the current keyboard focus.</dd>
<dt>{{domxref("HTMLElement.forceSpellCheck()")}} {{experimental_inline}}</dt>
<dd>Runs the spell checker on the element's contents.</dd>
</dl>
<h2 id="Specifications">Specifications</h2>
<table class="standard-table">
<thead>
<tr>
<th scope="col">Specification</th>
<th scope="col">Status</th>
<th scope="col">Comment</th>
</tr>
</thead>
<tbody>
<tr>
<td>{{SpecName('CSSOM View', '#extensions-to-the-htmlelement-interface', 'HTMLElement')}}</td>
<td>{{Spec2('CSSOM View')}}</td>
<td>Added the following properties: <code>offsetParent</code>, <code>offsetTop</code>, <code>offsetLeft</code>, <code>offsetWidth</code>, and <code>offsetHeight</code>.</td>
</tr>
<tr>
<td>{{SpecName('HTML WHATWG', 'elements.html#htmlelement', 'HTMLElement')}}</td>
<td>{{Spec2('HTML WHATWG')}}</td>
<td>Added the following properties: <code>translate</code>, <code>itemScope</code>, <code>itemType</code>, <code>itemId</code>, <code>itemRef</code>, <code>itemProp</code>, <code>properties</code>, and <code>itemValue</code>.<br>
Added the following method: <code>forceSpellcheck()</code>.<br>
Moved the <code>onXYZ</code> attributes to the {{domxref("GlobalEventHandlers")}} interface and added an inheritance from it.</td>
</tr>
<tr>
<td>{{SpecName('HTML5 W3C', 'dom.html#htmlelement', 'HTMLElement')}}</td>
<td>{{Spec2('HTML5 W3C')}}</td>
<td>Added the following properties: <code>dataset</code>, <code>hidden</code>, <code>tabindex</code>, <code>accessKey</code>, <code>accessKeyLabel</code>, <code>draggable</code>, <code>dropzone</code>, <code>contentEditable</code>, <code>isContentEditable</code>, <code>contextMenu</code>, <code>spellcheck</code>, <code>commandType</code>, <code>commandLabel</code>, <code>commandIcon</code>, <code>commandHidden</code>, <code>commandDisabled</code>, <code>commandChecked</code>, <code>style</code>, and all the <code>onXYZ</code> properties.<br>
Moved the <code>id</code> and <code>className</code> properties to the {{domxref("Element")}} interface.</td>
</tr>
<tr>
<td>{{SpecName('DOM2 HTML', 'html.html#ID-011100101', 'HTMLElement')}}</td>
<td>{{Spec2('DOM2 HTML')}}</td>
<td>No change from {{SpecName('DOM2 HTML')}}</td>
</tr>
<tr>
<td>{{SpecName('DOM1', 'level-one-html.html#ID-011100101', 'HTMLElement')}}</td>
<td>{{Spec2('DOM1')}}</td>
<td>Initial definition.</td>
</tr>
</tbody>
</table>
<h2 id="Browser_compatibility">Browser compatibility</h2>
<p>{{Compat("api.HTMLElement")}}</p>
<h2 id="See_also">See also</h2>
<ul>
<li>{{domxref("Element")}}</li>
</ul>
|