Aegix Global, LLC

SMS Web — VPAT 2.5

Aegix Platform — Safety and Incident Management · Last reviewed 2026-04-03

Last reviewed 2026-04-03

VPAT 2.5 - Aegix SMS (Safety Management System Web App)

Product Information

FieldValue
Product NameAegix SMS Web
Product VersionCurrent (as of 2026-04-07)
Product DescriptionEnterprise Safety Management System for site configuration, protocol management, drill scheduling, event monitoring, user/role administration, and compliance reporting
Report Date2026-04-07
ContactAegix Global
Evaluation MethodsCode review, static analysis against WCAG 2.1 AA criteria, eslint-plugin-jsx-a11y
Applicable StandardsWCAG 2.1 Level AA, Section 508 (Revised)

Conformance Level Key

TermDescription
SupportsThe functionality of the product has at least one method that meets the criterion without known defects or meets with equivalent facilitation
Partially SupportsSome functionality of the product does not meet the criterion
Does Not SupportThe majority of product functionality does not meet the criterion
Not ApplicableThe criterion is not relevant to the product

Application Overview

Aegix SMS is a React web application (~226 source files) focused on enterprise safety management:

  • Sites - Site/building/floor/room hierarchy management with floorplan uploads
  • Protocols - Safety protocol configuration with guidance steps
  • Drills - Drill scheduling and execution tracking
  • Events - Event monitoring and detail views
  • Admin - User management, roles, SSO configuration, billing, document management
  • Reporting - District readiness dashboards
  • Reunification - Student/family reunification event management
  • Kiosk - Visitor self-service check-in mode
  • Plan Templates - Emergency plan template management

Table 1: WCAG 2.1 Report

Principle 1: Perceivable

CriteriaConformance LevelRemarks and Explanations
1.1.1 Non-text Content (Level A)Partially SupportsLogo images have alt text. Icon-only buttons in PageHeader, drawers, and data tables now have aria-labels. StatusBadge color dots marked aria-hidden with adjacent text labels. Some icon-only actions in admin panels (UsersContent, RolesContent, TypesContent) may still lack text alternatives.
1.2.1 Audio-only and Video-only (Level A)Not ApplicableNo audio or video content.
1.2.2 Captions (Prerecorded) (Level A)Not ApplicableNo prerecorded media.
1.2.3 Audio Description or Media Alternative (Level A)Not ApplicableNo prerecorded video.
1.2.4 Captions (Live) (Level AA)Not ApplicableNo live media.
1.2.5 Audio Description (Level AA)Not ApplicableNo prerecorded video.
1.3.1 Info and Relationships (Level A)Partially SupportsForm inputs in Login, SiteDrawer, BuildingDrawer, FloorDrawer, RoomDrawer, ProtocolDrawer, DrillScheduleDrawer, ProtocolReportStepEditor, ProtocolGuidanceEditor, ProtocolGroupSelector, PlanTemplateForm, KioskActivation, KioskExitDialog, and UserSitesSection now have proper associations. DataTable has scope="col" on column headers, aria-sort on sortable columns, and keyboard-operable sort. Heading hierarchy maintained with h1 on PageHeader and h3 on SubHeader. Admin configuration forms (SsoConfig, BillingContent, AuthorizationContent, DocumentsContent, TypesContent, ConfigurableTypeManager) still need label associations.
1.3.2 Meaningful Sequence (Level A)SupportsDOM order follows visual presentation. Tab-based navigation presents content in logical order.
1.3.3 Sensory Characteristics (Level A)SupportsStatusBadge includes text labels alongside color dots. Drill schedule status indicators include text alternatives. Protocol guidance steps use numbered sequences.
1.3.4 Orientation (Level AA)SupportsNo orientation lock. Responsive design present.
1.3.5 Identify Input Purpose (Level AA)Partially SupportsLogin form has autoComplete="email" and autoComplete="current-password". KioskExitDialog and some site forms have autocomplete. Admin configuration forms (SSO, billing, authorization) still lack autocomplete attributes.
1.4.1 Use of Color (Level A)SupportsStatusBadge color dots marked aria-hidden with adjacent text labels. Drill schedule status uses text alongside color. District readiness reporting uses text labels with color indicators.
1.4.2 Audio Control (Level A)Not ApplicableNo auto-playing audio.
1.4.3 Contrast (Minimum) (Level AA)SupportsTheme tokens updated for AA compliance: text.tertiary darkened to gray.700, text.action to teal.700 (light) / lightBlue.600 (dark), text.danger to red.700 (light) / darkRed.200 (dark). Dark mode tokens (text.reunification, text.drill) updated. surface.menuSelect opacity increased from 8% to 15%. SubHeader uses neutral.600 (borderline for 12px text).
1.4.4 Resize Text (Level AA)SupportsChakra UI supports resizing. Login page now uses responsive width (maxW={{ base: '100%', sm: '448px' }}).
1.4.5 Images of Text (Level AA)SupportsNo images of text.
1.4.10 Reflow (Level AA)SupportsLogin page uses responsive maxW. Layouts use Chakra responsive breakpoints. Data-heavy admin pages may require horizontal scroll for wide tables.
1.4.11 Non-text Contrast (Level AA)SupportsFocus indicators use 2px solid outlines with border-action color token across all interactive elements. Global *:focus-visible rule provides consistent focus visibility.
1.4.12 Text Spacing (Level AA)Partially SupportsNo explicit handling for forced text spacing overrides. DataTable cells and badges may clip with increased spacing.
1.4.13 Content on Hover or Focus (Level AA)SupportsNo significant hover-revealed content. Drawer components slide in on user action (not hover). Menu dropdowns follow Chakra’s accessible patterns.

Principle 2: Operable

CriteriaConformance LevelRemarks and Explanations
2.1.1 Keyboard (Level A)SupportsKeyboard event handlers (Enter/Space) added to interactive non-button elements: DrillScheduleList, ProtocolsList, ResourcesList, DrawerSideMenu, TransferList. Login password toggle converted to accessible IconButton. DataTable sortable headers are keyboard-operable. Kiosk visitor cards support keyboard selection. RowActionsMenu and TableOptions export items are keyboard accessible.
2.1.2 No Keyboard Trap (Level A)SupportsDrawerComponent implements role="dialog", aria-labelledby, close button with aria-label, and focus management. Chakra drawers and dialogs handle focus trapping. KioskExitDialog uses proper dialog patterns. Escape key closes all overlays.
2.1.4 Character Key Shortcuts (Level A)SupportsNo single-character shortcuts.
2.2.1 Timing Adjustable (Level A)SupportsKiosk mode implements WCAG 2.2.1 compliant timeout warnings: KioskResult pauses countdown at 5s with aria-live="assertive" warning and “Stay on this page” / “Return now” options. KioskCheckOut pauses at 3s with the same pattern. Both use role="alert" for screen reader announcement.
2.2.2 Pause, Stop, Hide (Level A)SupportsNo auto-updating or moving content.
2.3.1 Three Flashes or Below (Level A)SupportsNo flashing content.
2.3.3 Animation from Interactions (Level AAA)SupportsGlobal prefers-reduced-motion CSS rule disables all animations and transitions when user preference is set.
2.4.1 Bypass Blocks (Level A)SupportsSkip-to-content link added as first focusable element in AppLayout. Main content area identified with id="main-content". Link becomes visible on focus.
2.4.2 Page Titled (Level A)SupportsDynamic page titles implemented via usePageTitle hook on all page routes: Dashboard, Sites, Events, Admin, Settings, Reunification, Integrations, Visitor Management, Delivery Metrics, Not Found. Titles follow “{Page} \Aegix SMS” pattern.
2.4.3 Focus Order (Level A)SupportsTab order follows logical DOM order. Skip link provides bypass. DrawerComponent manages initial focus on open and return focus on close.
2.4.4 Link Purpose (In Context) (Level A)SupportsNavigation links are descriptive. Sidebar links clearly identify destinations.
2.4.5 Multiple Ways (Level AA)Partially SupportsSidebar navigation and URL routing. No search or sitemap for alternative navigation.
2.4.6 Headings and Labels (Level AA)SupportsPageHeader provides h1, SubHeader provides h3. Form labels properly associated with inputs in site management drawers.
2.4.7 Focus Visible (Level AA)SupportsVisible focus indicators restored across shared theme: button, checkbox, radio, sidebar links, select, searchInput, RowActionsMenu, TableOptions export items, dialog close button. Global *:focus-visible CSS rule provides fallback.
2.5.1 Pointer Gestures (Level A)SupportsNo complex gestures. Floorplan uploads use standard file picker.
2.5.2 Pointer Cancellation (Level A)SupportsStandard click events.
2.5.3 Label in Name (Level A)SupportsInteractive controls have visible text matching accessible name. Icon-only buttons have descriptive aria-label attributes.
2.5.4 Motion Actuation (Level A)Not ApplicableNo motion-based interactions.

Principle 3: Understandable

CriteriaConformance LevelRemarks and Explanations
3.1.1 Language of Page (Level A)Supportspresent.
3.1.2 Language of Parts (Level AA)SupportsEnglish throughout.
3.2.1 On Focus (Level A)SupportsNo unexpected context changes.
3.2.2 On Input (Level A)SupportsStandard form submission patterns.
3.2.3 Consistent Navigation (Level AA)SupportsSidebar navigation consistent. Tab menus consistent within sections.
3.2.4 Consistent Identification (Level AA)SupportsShared components (DataTable, DrawerComponent, PageHeader) used consistently.
3.3.1 Error Identification (Level A)Partially SupportsLogin form error messages linked to inputs. AriaLiveRegion provides screen reader announcements for status changes. Admin forms (user creation, SSO, billing) still need inline error associations.
3.3.2 Labels or Instructions (Level A)Partially SupportsSite management drawers (Site, Building, Floor, Room, Protocol, Drill, Plan Template) now have proper elements. Login has labels. Admin configuration forms (SSO, billing, authorization, types) still use placeholder-only labeling.
3.3.3 Error Suggestion (Level AA)Partially SupportsLogin shows descriptive errors (“Email is required”, “Password must be at least 6 characters”). Other forms need verification.
3.3.4 Error Prevention (Legal, Financial, Data) (Level AA)Partially SupportsKioskExitDialog provides confirmation. Some admin actions (site deletion, user removal) need confirmation verification.

Principle 4: Robust

Criteria Conformance Level Remarks and Explanations
4.1.1 Parsing (Level A) Supports React/TypeScript generates valid HTML.
4.1.2 Name, Role, Value (Level A) Supports DrawerComponent uses role="dialog", aria-labelledby. DataTable uses semantic with scope="col" and aria-sort. StatusBadge uses role="status" with aria-hidden on decorative dots. Interactive list items (DrillScheduleList, ProtocolsList, ResourcesList) have role="button", tabIndex, and keyboard handlers.
4.1.3 Status Messages (Level AA) Supports AriaLiveRegion context provider announces dynamic content changes via aria-live="polite". Kiosk timeout warnings use aria-live="assertive" with role="alert". Loading states and CRUD results announced to screen readers.

Section 508 Functional Performance Criteria

CriteriaConformance LevelRemarks
302.1 Without VisionPartially SupportsForm labels associated in site management drawers, ARIA live regions for status messages, DataTable scope attributes, dynamic page titles. Admin configuration forms still lack full label coverage.
302.2 With Limited VisionSupportsText resizing works with responsive layouts. Color contrast improved across all theme tokens including dark mode. Focus indicators visible with 2px solid outlines. Reduced-motion support available.
302.3 Without Perception of ColorSupportsStatusBadge includes text labels alongside color. Drill schedule and protocol status use text indicators.
302.4 Without HearingSupportsNo audio-dependent functionality.
302.5 With Limited HearingSupportsNo audio-dependent functionality.
302.6 Without SpeechSupportsNo speech input required.
302.7 With Limited ManipulationSupportsAll interactive elements operable via keyboard. Focus indicators visible. Skip navigation available. Kiosk buttons meet 44x44px minimum touch target.
302.8 With Limited Reach and StrengthSupportsStandard input methods supported. Full keyboard-only operation available for core workflows.
302.9 With Limited Language, Cognitive, and Learning AbilitiesSupportsConsistent layout and navigation. Kiosk timeout warnings provide pause/extend options. Error messages provide guidance.

Summary

Overall Conformance Level: Partially Supports WCAG 2.1 AA

Aegix SMS has undergone significant accessibility remediation (2026-04-07) addressing the majority of WCAG 2.1 AA criteria. Built on Chakra UI with comprehensive shared theme improvements, the application now supports keyboard navigation, screen readers, and assistive technologies across core site management and kiosk workflows.

Resolved Issues (2026-04-07)

  1. Keyboard accessibility - Keyboard handlers added to all custom interactive elements (lists, drawers, kiosk cards)
  2. Focus indicators - Visible 2px solid focus rings restored across shared theme (button, checkbox, radio, select, searchInput, sidebar, RowActionsMenu, TableOptions)
  3. Form accessibility - Proper Field.Label associations added to all site management drawers, login, kiosk, and plan template forms
  4. DataTable - scope=“col”, aria-sort, keyboard-operable sortable headers, caption support
  5. DrawerComponent - role=“dialog”, aria-labelledby, close button label, focus management
  6. StatusBadge - aria-hidden on color dots, role=“status”, text labels, dark mode contrast
  7. Dynamic page titles - usePageTitle hook on all page routes
  8. ARIA live regions - AriaLiveRegion context provider for screen reader announcements
  9. Color contrast - Theme tokens updated for AA compliance in both light and dark modes
  10. Reduced motion - Global prefers-reduced-motion CSS support
  11. Kiosk accessibility - 44x44px touch targets, keyboard-accessible cards, WCAG 2.2.1 compliant timeout warnings with pause/extend
  12. Skip navigation - Skip-to-content link in AppLayout
  13. Accessibility linting - eslint-plugin-jsx-a11y CI job for ongoing enforcement

Remaining Items

  1. Admin form labels (1.3.1, 3.3.2) - SsoConfig, BillingContent, AuthorizationContent, DocumentsContent, TypesContent, ConfigurableTypeManager, VisitorManagementContent still need Field.Label associations
  2. Admin form errors (3.3.1) - Admin forms need inline error associations with aria-describedby
  3. Text spacing (1.4.12) - No explicit handling for forced text spacing overrides
  4. Manual testing - Screen reader testing (NVDA/VoiceOver), browser zoom 200%, Windows High Contrast mode verification still needed

See the accompanying implementation plan (implementation-plan-aegix-sms.md) for the full remediation roadmap.

View this document’s source in Git ↗