Skip to content

Accessibility Conformance Report

VPAT® — Voluntary Product Accessibility Template · April 2026 · Version 2.0

47
Supports
0
Partially Supports
0
Does Not Support
8
Not Applicable

Product Information

Product Name:
Aegis Firma
Version:
2.0
Report Date:
April 2026
Contact:
support@aegisfirma.com
Conformance Target:
WCAG 2.2 Level AA
Evaluation Method:
Automated (Aegis Firma WCAG 2.2 AA scanner) + manual keyboard and screen reader testing

WCAG 2.2 Criteria

WCAG 2.2 Level A and AA criteria conformance status
CriterionLevelStatusRemarks
1.1.1 Non-text ContentASupportsAll meaningful images have alt text. Decorative images use empty alt="".
1.2.1 Audio-only / Video-onlyANot ApplicableNo audio or video content in current product.
1.2.2 Captions (Prerecorded)ANot ApplicableNo video content.
1.2.3 Audio Description or Media AlternativeANot ApplicableNo video content.
1.2.4 Captions (Live)AANot ApplicableNo live media.
1.2.5 Audio Description (Prerecorded)AANot ApplicableNo video content.
1.3.1 Info and RelationshipsASupportsSemantic HTML: landmarks, headings, lists, tables with scope, form labels via htmlFor / aria-labelledby.
1.3.2 Meaningful SequenceASupportsReading order follows DOM order throughout.
1.3.3 Sensory CharacteristicsASupportsInstructions do not rely solely on shape, colour, size, or position.
1.3.4 OrientationAASupportsLayout adapts to both portrait and landscape.
1.3.5 Identify Input PurposeAASupportsautocomplete attributes applied to all identity fields (name, email).
1.4.1 Use of ColorASupportsColour is never the sole differentiator; icons, text labels, and patterns are also used.
1.4.2 Audio ControlANot ApplicableNo audio plays automatically.
1.4.3 Contrast (Minimum)AASupportsText uses semantic tokens designed for ≥4.5:1 contrast, verified by manual contrast review. Residual cases are tracked in Known Issues below.
1.4.4 Resize TextAASupportsAll text scales to 200% without loss of content or functionality.
1.4.5 Images of TextAASupportsNo images of text are used; all text is live.
1.4.10 ReflowAASupportsDashboard reflows to single column at 320 CSS pixels width.
1.4.11 Non-text ContrastAASupportsUI components (buttons, inputs, focus rings) meet 3:1 against adjacent colours.
1.4.12 Text SpacingAASupportsIncreased letter-spacing, line-height, and word-spacing do not cause content loss.
1.4.13 Content on Hover or FocusAASupportsTooltips and popovers are dismissible (Esc), hoverable, and persistent.
2.1.1 KeyboardASupportsAll interactive elements reachable via Tab/Shift+Tab. Custom shortcuts: g+d/e/r/i and ⌘K palette.
2.1.2 No Keyboard TrapASupportsModal focus traps are intentional per ARIA pattern; Esc always dismisses.
2.1.4 Character Key ShortcutsASupportsSingle-character shortcuts (g, n, /) are suppressed inside text inputs.
2.2.1 Timing AdjustableASupportsSession expiry warning shown 10 minutes before logout; user can extend session.
2.2.2 Pause, Stop, HideASupportsLoading bar and notification badge animations can be suppressed via prefers-reduced-motion.
2.3.1 Three Flashes or Below ThresholdASupportsNo flashing content.
2.4.1 Bypass BlocksASupportsSkip-to-content link appears on first Tab press on every page.
2.4.2 Page TitledASupportsEvery page has a unique <title> set via Next.js metadata API.
2.4.3 Focus OrderASupportsFocus order follows reading order; modals return focus to trigger on close.
2.4.4 Link Purpose (In Context)ASupportsAll links have descriptive text or aria-label.
2.4.6 Headings and LabelsAASupportsOne h1 per page; heading hierarchy descends without skipping levels.
2.4.7 Focus VisibleAASupportsFocus ring: 2px indigo, offset 2px, visible on both light and dark backgrounds.
2.4.11 Focus Not Obscured (Minimum)AASupportsSticky nav does not fully obscure focused elements; partially visible focus accepted.
2.5.1 Pointer GesturesASupportsNo multi-point or path-based gestures required.
2.5.2 Pointer CancellationASupportsAll actions trigger on pointer up; down-event cancellation supported.
2.5.3 Label in NameASupportsVisible button labels match their accessible names.
2.5.4 Motion ActuationANot ApplicableNo functionality relies on device motion.
2.5.7 Dragging MovementsAASupportsSortable table columns activate via Enter/Space keyboard alternative.
2.5.8 Target Size (Minimum)AASupportsAll interactive elements have min 24×24 CSS px touch target enforced globally in CSS.
3.1.1 Language of PageASupportslang="en" set on <html> in root layout.
3.1.2 Language of PartsAANot ApplicableProduct is English-only; no multilingual text mixing.
3.2.1 On FocusASupportsNo unexpected context change on focus.
3.2.2 On InputASupportsForm submission only occurs on explicit button press; no auto-submit.
3.2.3 Consistent NavigationAASupportsSidebar, top nav, and Help button appear in the same location on every dashboard page.
3.2.4 Consistent IdentificationAASupportsSame UI components used consistently for equivalent functions across pages.
3.2.6 Consistent HelpASupportsHelp (?) button in top-right nav on every dashboard page; links to /docs/getting-started.
3.3.1 Error IdentificationASupportsAll form errors shown with role="alert" and red text identifying the invalid field.
3.3.2 Labels or InstructionsASupportsAll inputs have visible labels; required fields marked with * and aria-required.
3.3.3 Error SuggestionAASupportsError messages describe how to fix the issue, not just that it exists.
3.3.4 Error Prevention (Legal, Financial, Data)AASupportsDestructive actions (delete, clear data) require explicit confirmation dialog.
3.3.7 Redundant EntryASupportsSession refresh is silent (Supabase token refresh); re-authentication only when session is truly expired.
3.3.8 Accessible Authentication (Minimum)AASupportsMagic-link login requires no cognitive function tests. Password login has show/hide toggle.
4.1.1 ParsingASupportsReact/Next.js generates well-formed HTML. No duplicate IDs — generated via useId().
4.1.2 Name, Role, ValueASupportsAll interactive components use ARIA roles via Radix primitives. Custom elements have aria-label/aria-expanded as appropriate.
4.1.3 Status MessagesAASupportsToast notifications use aria-live="polite" (info/success) and aria-live="assertive" (errors). Form validation errors use role="alert".

Known Issues

KI-001

1.4.3 Contrast (Minimum) (Minor)

Some placeholder text in search inputs may fall below 4.5:1 at certain viewport sizes. Tracked for remediation in v2.1.

Target fix: Q3 2026

KI-002

2.4.6 Headings and Labels (Minor)

A small number of legacy dashboard sub-pages render the page title as a visually prominent div rather than a semantic h1. Being migrated to the Typography component.

Target fix: Q3 2026

Report an Accessibility Issue

If you encounter an accessibility barrier not listed above, please let us know. We aim to respond within 5 business days.

Submit accessibility feedback →

DRAFT · This conformance report reflects our best assessment. Aegis Firma is not responsible for accessibility gaps introduced by third-party browser extensions or assistive technology incompatibilities beyond our control.