Get to know MDN better
This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015.
* Some parts of this feature may have varying levels of support.
The <textarea> HTML element represents a multi-line plain-text editing control, useful when you want to allow users to enter a sizeable amount of free-form text, for example a comment on a review or feedback form.
The above example demonstrates a number of features of <textarea>:
The <textarea> element also accepts several attributes common to form <input>s, such as autocapitalize, autocomplete, autofocus, disabled, placeholder, readonly, and required.
This element includes the global attributes.
autocapitalizeControls whether inputted text is automatically capitalized and, if so, in what manner.
autocompleteControls whether entered text can be automatically completed by the browser. Possible values are:
<textarea> elements that don't specify the autocomplete attribute inherit the autocomplete on or off status set on the <textarea>'s form owner. The form owner is either the <form> element that this <textarea> element is a descendant of or the form element whose id is specified by the form attribute of the input element. For more information, see the autocomplete attribute in <form>.
autocorrectControls whether automatic spelling correction and processing of text is enabled while the user is editing this textarea. Permitted values are:
onEnable automatic spelling correction and text substitutions.
offDisable automatic spelling correction and text substitutions.
autofocusThis Boolean attribute lets you specify that a form control should have input focus when the page loads. Only one form-associated element in a document can have this attribute specified.
colsThe visible width of the text control, in average character widths. If it is specified, it must be a positive integer. If it is not specified, the default value is 20.
dirnameThis attribute is used to indicate the text directionality of the element contents. For more information, see the dirname attribute.
disabledThis Boolean attribute indicates that the user cannot interact with the control. If this attribute is not specified, the control inherits its setting from the containing element, for example <fieldset>; if there is no containing element when the disabled attribute is set, the control is enabled.
formThe form element that the <textarea> element is associated with (its "form owner"). The value of the attribute must be the id of a form element in the same document. If this attribute is not specified, the <textarea> element must be a descendant of a form element. This attribute enables you to place <textarea> elements anywhere within a document, not just as descendants of form elements.
maxlengthThe maximum string length (measured in UTF-16 code units) that the user can enter. If this value isn't specified, the user can enter an unlimited number of characters.
minlengthThe minimum string length (measured in UTF-16 code units) required that the user should enter.
nameThe name of the control.
placeholderA hint to the user of what can be entered in the control. Carriage returns or line-feeds within the placeholder text must be treated as line breaks when rendering the hint.
Note: Placeholders should only be used to show an example of the type of data that should be entered into a form; they are not a substitute for a proper <label> element tied to the input. See <input> labels for a full explanation.
This Boolean attribute indicates that the user cannot modify the value of the control. Unlike the disabled attribute, the readonly attribute does not prevent the user from clicking or selecting in the control. The value of a read-only control is still submitted with the form.
requiredThis attribute specifies that the user must fill in a value before submitting a form.
rowsThe number of visible text lines for the control. If it is specified, it must be a positive integer. If it is not specified, the default value is 2.
spellcheckSpecifies whether the <textarea> is subject to spell-checking by the underlying browser/OS. The value can be:
Indicates how the control should wrap the value for form submission. Possible values are:
If this attribute is not specified, soft is its default value.
<textarea> is a replaced element — it has intrinsic dimensions, like a raster image. By default, its display value is inline-block. Compared to other form elements it is relatively easy to style, with its box model, fonts, color scheme, etc. being easily manipulable using regular CSS.
Styling HTML forms provides some useful tips on styling <textarea>s.
The HTML specification doesn't define where the baseline of a <textarea> is, so different browsers set it to different positions. For Gecko, the <textarea> baseline is set on the baseline of the first line of the textarea, on another browser it may be set on the bottom of the <textarea> box. Don't use vertical-align: baseline on it; the behavior is unpredictable.
In most browsers, <textarea>s are resizable — you'll notice the drag handle in the right-hand corner, which can be used to alter the size of the element on the page. This is controlled by the resize CSS property — resizing is enabled by default, but you can explicitly disable it using a resize value of none:
Valid and invalid values of a <textarea> element (e.g., those within, and outside the bounds set by minlength, maxlength, or required) can be highlighted using the :valid and :invalid pseudo-classes. For example, to give your textarea a different border depending on whether it is valid or invalid:
The following example shows a textarea with a set number of rows and columns, some default content, and CSS styles that prevent users from resizing the element more than 500px wide and 130px high:
This example has a minimum and maximum number of characters — of 10 and 20 respectively. Try it and see.
Note that minlength doesn't stop the user from removing characters so that the number entered goes past the minimum, but it does make the value entered into the <textarea> invalid. Also note that even if you have a minlength value set (3, for example), an empty <textarea> is still considered valid unless you also have the required attribute set.
This example has a placeholder set. Notice how it disappears when you start typing into the box.
Note: Placeholders should only be used to show an example of the type of data that should be entered into a form; they are not a substitute for a proper <label> element tied to the input. See <input> labels for a full explanation.
This example shows two <textarea>s — one is readonly and one is disabled. You cannot edit the contents of either element, but the readonly element is focusable and its value is submitted in forms. The disabled element's value is not submitted and it's not focusable.
| Flow content, phrasing content, Interactive content, listed, labelable, resettable, and submittable form-associated element. |
| Text |
| None, both the starting and ending tag are mandatory. |
| Any element that accepts phrasing content. |
| textbox |
| No role permitted |
| HTMLTextAreaElement |
| HTML # the-textarea-element |
Enable JavaScript to view this browser compatibility table.
This page was last modified on Apr 24, 2026 by MDN contributors.
Your blueprint for a better internet.
Visit Mozilla Corporation’s not-for-profit parent, the Mozilla Foundation.
Portions of this content are ©1998–2026 by individual mozilla.org contributors. Content available under a Creative Commons license.