{textarea} is {input} for a multi-line text: a <label for> when label= is given, then a <textarea> with the name and an id. The text inside is value= before a post and what was sent after a post of its {form} - escaped both times, so markup in it stays text.

The tag takes label, value, id and rules; every other item - rows=, cols=, maxlength=, placeholder=, a bare required - is an attribute of the text area.

The error the validation found for it follows the text area as for an input, with aria-invalid and aria-describedby. rules= follows the same rules as on {input}: only in a named form written in the page's own template.