Minlength and maxlength express length constraints for supported text controls.
HTML length limits: bound user text and explain the stored rule
Use it in a concrete workflow
A maintenance ticket asks for a concise fault summary. The limits tell the browser what to accept, while the label states the length range in plain language. Character counting can differ from a backend byte limit, especially with non-ASCII text and emoji. A product that stores this value in a database needs a server-side length policy with a clear definition and an error message that returns the user's text rather than discarding it.
<form action="/tickets/new" method="post">
<label for="fault-summary">Fault summary, 12 to 160 characters</label>
<textarea id="fault-summary" name="summary" minlength="12" maxlength="160" required></textarea>
<button type="submit">Create ticket</button>
</form>Behavior and ownership
These attributes constrain a browser control, not a database column. The server should validate the incoming text under the same product rule and protect against oversized requests independently.
Performance and maintenance
Bounding a short summary reduces accidental large submissions. The control itself is cheap; useful validation feedback and consistent Unicode handling take more care than the two attributes.
Common Mistakes
- Do not assume a database byte count equals the browser's character count.
- Do not discard text after a server rejection.
- Do not set a maximum without explaining it to the user.
