- 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
- Understanding Understanding document (opens in a new tab)
Related scenarios
- Multi-Part Field Like a Phone Number With No Text Label
- Icon-Only Search Field With No Accessible Label
- Placeholder Text Used as the Only Label, Vanishing on Input
- Required Input Format Never Stated Until After an Error
- No Indication of Which Fields on a Form Are Required
- Radio Button Group Missing Its Question or Prompt Text