HTMLOutputElement
=================

The **`HTMLOutputElement`** interface provides properties and methods (beyond those inherited from `HTMLElement`) for manipulating the layout and presentation of `<output>` elements.

EventTarget

Node

Element

HTMLElement

HTMLOutputElementInstance properties
-------------------

*This interface also inherits properties from its parent, `HTMLElement`.*

`HTMLOutputElement.defaultValue`

A string representing the default value of the element, initially the empty string.

`HTMLOutputElement.form` Read only 

An `HTMLFormElement` indicating the form associated with the control, reflecting the `form` HTML attribute if it is defined.

`HTMLOutputElement.htmlFor` Read only 

A `DOMTokenList` reflecting the `for` HTML attribute, containing a list of IDs of other elements in the same document that contribute to (or otherwise affect) the calculated `value`.

`HTMLOutputElement.labels` Read only 

A `NodeList` of `<label>` elements associated with the element.

`HTMLOutputElement.name`

A string reflecting the `name` HTML attribute, containing the name for the control that is submitted with form data.

`HTMLOutputElement.type` Read only 

The string "`output`".

`HTMLOutputElement.validationMessage` Read only 

A string representing a localized message that describes the validation constraints that the control does not satisfy (if any). This is the empty string if the control is not a candidate for constraint validation (`willValidate` is `false`), or it satisfies its constraints.

`HTMLOutputElement.validity` Read only 

A `ValidityState` representing the validity states that this element is in.

`HTMLOutputElement.value`

A string representing the value of the contents of the elements. Behaves like the `Node.textContent` property.

`HTMLOutputElement.willValidate` Read only 

A boolean value indicating whether the element is a candidate for constraint validation.

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

*This interface also inherits methods from its parent, `HTMLElement`.*

`HTMLOutputElement.checkValidity()`

Checks the validity of the element and returns a boolean value holding the check result.

`HTMLOutputElement.reportValidity()`

This method reports the problems with the constraints on the element, if any, to the user. If there are problems, fires an `invalid` event at the element, and returns `false`; if there are no problems, it returns `true`.

When the problem is reported, the user agent may focus the element and change the scrolling position of the document or perform some other action that brings the element to the user's attention. User agents may report more than one constraint violation if this element suffers from multiple problems at once. If the element is not rendered, then the user agent may report the error for the running script instead of notifying the user.

`HTMLOutputElement.setCustomValidity()`

Sets a custom validity message for the element. If this message is not the empty string, then the element is suffering from a custom validity error, and does not validate.

Modes
-----

This element behaves in one of two modes: *default* mode and *value* mode.

### Default mode

Initially, the element is in default mode, and so the contents of the element represent both the value of the element and its default value.

If the element is in default mode when the descendants of the element are changed in any way, the `defaultValue` property is set to the value of the `textContent` property.

Resetting the form puts the element into default mode, and sets the `textContent` property to the value of the `defaultValue` property.

### Value mode

The element goes into value mode when the contents of the `value` property are set. The `value` property otherwise behaves like the `textContent` property. When the element is in value mode, the default value is accessible only through the `defaultValue` property.

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

| Specification |
| --- |
| HTML Standard # htmloutputelement |

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

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

See also
--------

* The HTML element implementing this interface: `<output>`.