ACC-010
Hard constraint
layer: section
Error message states problem and recovery
IF an error message appears, THEN state what happened, what remains safe or changed, and the next corrective action in non-blaming language ELSE retain.
Why the rule exists
An error is useful only when the reader can recover.
Condition
The rule fires when this evaluates true. Paths marked below must be present in the fact base; the engine reports the rest rather than guessing them.
- section.type eq "error_message"
Facts this rule reads
| Path | Source |
|---|---|
section.type |
You supply it |
Then
- complete — target
section.error_message
Else
- retain — target
current_text, No triggering condition is present.
Test cases
TST-021 · [object Object]
- Before
Invalid input.- After
Enter an email in the format name@example.com. Your other form entries are still saved.- Reason
- The error explains recovery and state.
LAKA
- Smallest sufficient intervention
- Yes
- Primary axes
Sources
-
Microsoft Writing Style Guide — Microsoft
link
Warm, clear, concise, helpful technical communication. -
Making Content Usable for People with Cognitive and Learning Disabilities — W3C
link
Clear words, simple voice and tense, explicit instructions, and supportive structure.
The raw rule record
Verbatim from 17-accessibility-rules.json. Also available at /v1/rules/ACC-010.
{
"id": "ACC-010",
"name": "Error message states problem and recovery",
"domain": "accessibility",
"layer": "section",
"strength": "hard_constraint",
"human_logic": "IF an error message appears, THEN state what happened, what remains safe or changed, and the next corrective action in non-blaming language ELSE retain.",
"when": {
"path": "section.type",
"operator": "eq",
"value": "error_message"
},
"then": [
{
"action": "complete",
"target": "section.error_message",
"fields": [
"problem",
"state_or_consequence",
"corrective_action"
],
"tone": "non_blame"
}
],
"else": [
{
"action": "retain",
"target": "current_text",
"reason": "No triggering condition is present."
}
],
"unless": [],
"because": "An error is useful only when the reader can recover.",
"diagnostics": [],
"examples": {},
"source_ids": [
"WEB-004",
"WEB-006"
],
"laka": {
"smallest_sufficient_intervention": true,
"primary_axes": [
"scope",
"depth",
"magnitude",
"reversibility"
]
}
}
Other accessibility rules
- ACC-001 Use clear words for the actual audience IF a simpler word is equally accurate, respectful, and familiar, THEN use it ELSE retain the necessary precise term with support. Context default
- ACC-002 Simple tense and voice when possible IF present active construction expresses the real time and actor, THEN prefer it ELSE use the tense and voice accuracy requires. Context default
- ACC-003 No nested double negatives IF a double negative or negative inside another condition obscures polarity, THEN rewrite with one explicit positive or negative operation ELSE retain a necessary legal distinction with explanation. Hard constraint
- ACC-004 Separate each instruction IF multiple actions appear in one block and can be completed separately, THEN make each a separate step ELSE retain a single compound action. Context default
- ACC-005 Explain implied meaning when consequential IF humor, irony, metaphor, convention, or context carries a consequential instruction or conclusion, THEN state the literal meaning too ELSE retain. Hard constraint
- ACC-006 Headings and labels are unique and descriptive IF repeated or vague headings prevent out-of-context identification, THEN rename them by topic or task ELSE retain. Hard constraint
- ACC-007 Text alternatives convey function or information IF meaningful non-text content appears, THEN provide a concise equivalent of its purpose and relevant information; IF decorative, mark it ignorable ELSE block release. Hard constraint
- ACC-008 Do not encode meaning by color alone IF color distinguishes status, category, instruction, or error, THEN add text, shape, icon, pattern, or position with an accessible label ELSE retain. Hard constraint