CONCEPT Cited by 1 source
Redundant error signalling¶
Definition¶
Redundant error signalling is the UI-design discipline of encoding error state across multiple perceptual channels rather than relying on any single one — classically, the "never colour alone" rule from WCAG 1.4.1 Use of Color (Level A). An error should be simultaneously indicated by:
- Colour (red / semantic-danger token) — for most sighted users.
- Icon (error glyph) — for users who cannot perceive the colour (colour-blindness; low contrast under ambient conditions).
- Text (the error message itself) — for users who want the literal description.
- Announcement to assistive tech (focus event → TalkBack / VoiceOver announces the error) — for users who cannot see the screen.
Each channel covers a different failure mode of the others. The discipline generalises beyond errors to any critical state (success, warning, required-field indication, unread-count badges).
Canonical minimal counterexample¶
From Slack's 2025-11-19 VPAT post, the P3 "Errors indicated by color alone" theme:
- Before: error text under an edit field was rendered in red. No icon. "To users unable to perceive red text, the error text is just another message on the screen and not necessarily an error."
- After: error text in red plus an error icon beside it.
The fix is small in implementation cost but high in discoverability for users unable to perceive red as a danger signal.
WCAG mapping¶
Covered by WCAG 2.1 Success Criterion 1.4.1 Use of Color (Level A): "Color is not used as the only visual means of conveying information, indicating an action, prompting a response, or distinguishing a visual element."
Compositional structure¶
Redundant error signalling composes with:
- Focus-announced errors — the component-level mechanism
on Android for layer (4) above; Slack updated
OutlinedTextFieldso TalkBack announces the inline error when focus returns, andSKBannererror variant to auto- announce. See systems/slack-kit. - Severity-gated filtering — which violations bubble up to user-visible errors at all; see concepts/severity-filtered-violation-reporting for the internal-dev-tool altitude of the same principle.
- Component-library defaults — if the component library (e.g. Slack Kit) ships the redundant signalling by default, every consumer screen picks it up without rework.
Anti-patterns¶
- Red text only, no icon — the Slack P3 before-state.
- Icon only, no text — opaque to users without visual familiarity with the iconography.
- Colour change of a border / background without text — fails for colour-blindness and for users with low-contrast displays.
- Silent error state — error indicated in the UI but not
announced to assistive tech; the Slack P1 before-state
(fixed at the
OutlinedTextField/SKBannerlayer).
Seen in¶
- sources/2025-11-19-slack-android-vpat-journey — Slack added an error icon to edit-field error messages to resolve the P3 "Errors indicated by color alone" VPAT theme (WCAG 1.4.1).
Related¶
- concepts/wcag-2-1-a-aa-scope — the compliance bar WCAG 1.4.1 lives under.
- systems/talkback — the assistive-tech channel for layer (4).
- systems/slack-kit — the component-library layer where Slack shipped its redundant-signalling defaults.
- patterns/vpat-driven-a11y-triage — the workflow that surfaced Slack's specific gap.