CONSENT CONSOLE/MK-V
DEFAULT

Telemetry consent. Operator-grade.

We capture only the signals we need to keep the site running, understand which content earns reads, and credit referral partners. You decide what stays on. Default is strict opt-in.

Privacy Policy →Terms →
JURISDICTIONOutside regulated jurisdictionsFRAMEWORKNo regional opt-in framework applied

COMPLIANCE FRAMEWORKS RECOGNIZED

GDPREU / EEA
CCPACalifornia
LGPDBrazil
PIPEDACanada
ePrivacyEU Directive
Strategia-X
L
-6dB
C
-1dB
R
-3dB
IT Strategy

Status dashboards cannot rely on color alone

Rocky ElsalaymehJul 16, 20264 min read804 words
IT StrategyOP-2491

Status dashboards cannot rely on color alone

PUB·4 MIN·804 WORDS

If your operations dashboard reports health with a red, amber, or green dot, you have made a bet that every reader sees those colors the same way. The US National Eye Institute says "About 1 in 12 men have color vision deficiency." The dot gives those readers nothing to fall back on.

This is a standards question, not only a design preference. WCAG Success Criterion 1.4.1 requires that "Color is not used as the only visual means of conveying information, indicating an action, prompting a response, or distinguishing a visual element." A bare status dot is color as the only means.

I build Team-X, an open-source, local-first desktop app for running AI-agent organizations. In v3.4.0 we rebuilt every surface of it on one status rule: state is a stencil word in a lamp tile (GO, HOLD, NO-GO, STBY, EXEC), and color is a second channel. Here is what that rule is built on, and where we got it wrong.

What do regulated industries do instead?

They assign color a job and then protect it. The US rule on flightcrew alerting, 14 CFR 25.1322, requires a convention: "Red for warning alert indications. (ii) Amber or yellow for caution alert indications." It also limits the spend: "Use of the colors red, amber, and yellow on the flight deck for functions other than flightcrew alerting must be limited and must not adversely affect flightcrew alerting."

Process industries worry about volume rather than hue. The UK Health and Safety Executive's COMAH guidance says: "The alarms should be processed in such a manner as to avoid operator overload at all times (alarm floods)." Both bodies reach the same operating principle. A signal channel is a scarce resource, and you do not give it away to decoration.

What does this look like in a product?

Three rules, all written down in the Team-X design system:

  • Words carry state. The design system's rule is "Stencil words, not icons, for status." The color supports the word and never replaces it.
  • Red has a form. Steady red means live. Blinking red means an unacknowledged warning that demands an answer. A failure nobody needs to acknowledge uses a separate steady NO-GO tone.
  • No lamp without a signal. The checklist bans decorative LEDs, meters, and lamps. The alert rail derives five lamps (QUE, GGUF, BUDG, APPR, MTG) from real signals, and missing data resolves to a calm lamp.

I should be direct about one tension. The flight-deck rule assigns red to warnings, and Team-X spends steady red on "live". That regulation governs airplanes, not desktop software, but it means red carries two jobs here and only form separates them. If you copy this pattern, copy the discipline with it.

What did we get wrong?

Quite a lot, and the v3.4.0 changelog records it. A word does not rescue text on a bad surface, and contrast is where we slipped:

DefectObservedFix
Status text on the silver chassis, privacy provider listAbout 1.9:1 contrastRendered as the recessed display well; AA restored in both themes
Muted text in always-dark displays, Day Shift themeAbout 3.1:1 contrastNew token at about 5.9:1, applied at 24 sites
Employee status dotSteady error used the blink-only redSteady faults use the NO-GO token
Add Provider dialogEscape did not close itKeydown listener scoped to the open state

The floor we missed is WCAG 1.4.3: "The visual presentation of text and images of text has a contrast ratio of at least 4.5:1, except for the following:" We are in common company. The 2026 WebAIM Million reports that "Low contrast text, below the WCAG 2 AA thresholds, was found on 83.9% of home pages, an increase from 79.1% in 2025."

Two limits belong in the record. At this release the privacy provider list still pairs a check icon with its word, which breaks our own no-icons rule. And the changelog lists the failures we found, not a clean bill for every screen.

What should an operations or product lead do?

  1. Audit your status columns for color-only encoding. Add the word next to every dot.
  2. Write each color's meaning as one sentence. If a color means two things, make the form differ and document it.
  3. Test contrast in every theme you ship. Both of our contrast failures were Day Shift failures, not dark-default ones.
  4. Separate settled failures from alerts that need an answer. They are different states and should not look alike.
  5. Add a regression guard. We now have a test that fails when a dialog lacks a description. Your equivalent will pay for itself the next time a sweep touches every screen.

The full argument, the token table, and the rail details are in the original post: Status is a word, not a color. The design rules are public in DESIGN.md at the v3.4.0 tag.

-Rocky

#TeamX #StatusDesign #Accessibility #EngineeringDreams #StrategiaX

Originally published on Team-X Blog.

Team-X Status Design Accessibility WCAG Dashboards Alarm Management Design Systems

/Rocky