• Success Criterion 3.3.2
  • Conformance level A

Character Limit Enforced but Never Communicated to Users

3.3.2 — Labels or Instructions

Scenario

Setting

A hospital's patient portal appointment scheduler

What’s wrong

Character limits enforced but never communicated.

Example

<textarea id="reason" maxlength="100"></textarea>
<!-- typing simply stops accepting characters past 100 with no counter and no warning -->

Why it matters

A patient describing symptoms in detail hits an invisible wall mid-sentence and assumes the field froze or their appointment note is broken.

How to test

Type past any enforced character limit: if the field silently stops accepting input with no stated limit anywhere, it fails.

How to fix

State the limit in the label and update a live character count as the patient types.

<label for="reason">Reason for visit (100 characters max)</label>
<textarea id="reason" maxlength="100" aria-describedby="reason-count"></textarea>
<span id="reason-count" aria-live="polite">100 characters remaining</span>

Outcome

The patient writes a note that fits the limit on the first try, no cut-off surprise.

Who is affected

People with cognitive disabilities and screen reader users who get no announcement that a limit exists or how many characters remain.

Learn more