# Attribute “type” not allowed on element “textarea” at this point.

> Canonical HTML version: https://rocketvalidator.com/html-validation/attribute-type-not-allowed-on-element-textarea-at-this-point
> Attribution: Rocket Validator (https://rocketvalidator.com)
> License: CC BY 4.0 (https://creativecommons.org/licenses/by/4.0/)

The `type` attribute is specific to the `<input>` element, where it determines the kind of input control rendered — such as `text`, `checkbox`, `email`, or `number`. The `<textarea>` element serves a single, distinct purpose: providing a multi-line plain-text editing area. Because it doesn't have multiple modes of operation, the HTML specification does not define a `type` attribute for it.

This error commonly occurs when developers confuse `<textarea>` with `<input>`, or when refactoring a single-line `<input type="text">` into a multi-line `<textarea>` without removing the now-invalid `type` attribute. It can also appear when using templating systems or frameworks that apply attributes generically across different form elements.

While browsers will typically ignore the unrecognized `type` attribute on a `<textarea>`, keeping it in your markup causes W3C validation errors and can lead to confusion for other developers reading the code. Invalid attributes may also interfere with CSS attribute selectors (e.g., `textarea[type="text"]` is a selector targeting invalid markup), accessibility tools, or automated testing systems that rely on well-formed HTML.

To fix this issue, remove the `type` attribute from the `<textarea>` element. If you need to differentiate between multiple textareas, use `id`, `name`, or `class` attributes instead. If you actually need a single-line text input, use `<input type="text">` rather than `<textarea>`.

## Examples

### Incorrect: `type` attribute on `<textarea>`

```html
<label for="comment">Your comment:</label>
<textarea type="text" id="comment" name="comment" rows="4" cols="50"></textarea>
```

The `type="text"` attribute is not valid on `<textarea>` and will trigger a validation error.

### Correct: `<textarea>` without `type`

```html
<label for="comment">Your comment:</label>
<textarea id="comment" name="comment" rows="4" cols="50"></textarea>
```

Simply removing the `type` attribute resolves the issue. The `<textarea>` element inherently provides a multi-line text input, so no `type` is needed.

### Correct: Using `<input>` when a single-line field is intended

If you intended a single-line text field, use `<input>` instead:

```html
<label for="username">Username:</label>
<input type="text" id="username" name="username">
```

The `type` attribute is valid and expected on `<input>` elements, where it controls the type of input control rendered.
