Detailed answer
Put initial content between the textarea tags.
Unlike a single-line input, textarea does not use a value attribute for initial content. A placeholder supplies a hint, not a label or a saved value. Escape saved user content before rendering it so it cannot unexpectedly close the textarea element.
Example
<label for="bio">Project description</label><textarea id="bio" name="bio" rows="4">A small HTML project.</textarea>
Understanding the behavior
A textarea's initial text belongs between its tags, unlike an input's value attribute. Whitespace in that content can become part of the initial value, so indentation copied from a template may be visible in the field.
Practical implementation notes
Inspect both the defaultValue and the current value when debugging scripts. Updating the user's current text is different from changing the reset value that the form returns to.
How to check it
Move the initial text between the start and end tags, then reload the page.
Expected result
The initial description appears as editable content.
Watch out: Do not confuse default text with a placeholder hint.
Read the reference ↗