Accessibility
Inclusive by contract
HealthEye targets WCAG 2.2 AA and treats field conditions, intermittent connectivity and high-stakes interpretation as part of accessibility.
Fundamentals
Interfaces must be perceivable, operable, understandable and robust. Semantic HTML, logical order, visible focus and text alternatives are defaults.
Interactive control rules
Profile healtheye-control-aa-v1 applies to Select and every interactive control.
| Rule | Requirement | Release test |
|---|---|---|
control-name-role-value | Expose a persistent accessible name, semantic role, current value, disabled state and expanded state. | Screen-reader announcement includes label, value, role and state. |
control-keyboard | All actions work without pointer input. | Complete selection with keyboard only and verify focus returns to the trigger. |
control-target | Interactive targets are at least 44 by 44 logical pixels. | Measure trigger and every option at compact and expanded widths. |
control-contrast | Text meets 4.5:1 and boundaries, focus, checks and other UI graphics meet 3:1. | Test Pasture, Atlantic and forced/high-contrast modes. |
control-resilience | Selection remains understandable at 200% zoom, large text, narrow width and reduced motion. | Verify 320 px, 200% zoom, text scale 2.0 and reduced motion. |
Visualization rules
Profile healtheye-visualization-aa-v1 applies to every one of the 106 visualization factories on Web, Flutter, Python/ML, Figma and BI adapters.
| Rule | Requirement | Release test |
|---|---|---|
viz-purpose-summary | Every visual has a visible title and a concise plain-language interpretation that states the decision it supports. | A user can understand the main finding without inspecting marks. |
viz-equivalent-data | Every visual has an equivalent table, structured list or downloadable accessible dataset containing the same values and units. | Compare visual values with the accessible representation. |
viz-non-color | Colour is never the only carrier of series, severity, freshness, selection or missingness. | Visual remains interpretable in grayscale and simulated colour-vision deficiency. |
viz-contrast | Text meets 4.5:1; meaningful marks, axes, focus and adjacent graphical objects meet at least 3:1. | Automated token contrast plus representative rendered-image review. |
viz-keyboard | Interactive marks, filters and disclosures are keyboard operable with visible focus and logical order; otherwise the equivalent data view provides the full task. | Complete the analysis task without mouse or touch. |
viz-motion | Animation never conveys unique information, auto-advances or blocks comprehension; reduced-motion mode is static or near-instant. | Verify reduced-motion/system animation settings. |
viz-reflow | At 320 px, 200% browser zoom and text scale 2.0, titles, summaries, legends and controls reflow without loss or two-dimensional scrolling. | Audit compact, medium and expanded containers. |
viz-state-provenance | Loading, empty, delayed, stale, offline, error, missing and excluded data are explicitly named; provenance, units, aggregation and time context remain available. | Inspect every state without relying on colour or icon alone. |
viz-spatial-alternative | Maps, point clouds, camera overlays, pose skeletons and 3D scenes provide a non-spatial summary of detected entities, confidence, coordinates/region and relationships. | Complete identification and review tasks without interpreting the canvas. |
viz-cognitive-safety | Avoid deceptive perspective, unexplained acronyms, unlabeled thresholds and unsupported causal claims; use farmer-readable language for customer-facing views. | Domain comprehension review with representative farmers and operators. |
Operational states
Offline, delayed, stale, synchronized and unknown are written states. They are not represented by colour alone and are not conflated with animal health.
Testing
Every stable component requires keyboard, screen-reader naming, zoom/reflow, contrast, reduced-motion and forced-state checks before production promotion.