Files
minecraft-account-manager/docs/accessibility.md
T
dmg ebc7c7df17
CI / validate (push) Successful in 5m24s
Release / release (push) Successful in 11m6s
feat(dashboard): refine activity telemetry and maps
2026-08-01 20:28:32 -04:00

2.4 KiB

Accessibility review

Review date: 2026-08-02

Scope

Player account management, administrator navigation, dashboard metrics and chart, user records, group management, event filtering, event details, forms, tables, and status notifications.

Implemented checks and improvements

  • Added a keyboard-visible “Skip to main content” link and consistent high-visibility :focus-visible outlines.
  • Darkened the accent color so accent text reaches at least 4.5:1 contrast on both canvas and panel backgrounds.
  • Preserved reduced-motion behavior and disabled decorative cursor animation when requested.
  • Added labels or accessible names to search, Minecraft username, settings, group, and event-filter controls.
  • Added fieldset and legend semantics to multi-select event-type filters.
  • Added table captions, column scopes, and row scopes to administrator data tables.
  • Added role=status with polite announcements for successful nickname changes and role=alert with assertive announcements for errors.
  • Added semantic time elements for audit and security activity timestamps.
  • Made event JSON keyboard-focusable so horizontally overflowing content can be reviewed without a pointer.
  • Added an accessible title, description, date labels, per-point labels, and textual values to the daily-active-user chart.
  • Added labelled, keyboard-linked world-map markers plus a complete semantic table equivalent for approximate user locations.
  • Added keyboard-operable tabs for the server-rendered overview and opt-in interactive OpenStreetMap view.
  • Added explicit new-tab context to the external Discord invite link.
  • Kept destructive account and group actions behind native keyboard-operable details confirmation disclosures.
  • Allowed administrator navigation to wrap at narrow viewport widths instead of overflowing.

Validation

  • ESLint with the Next.js ruleset passes.
  • Component rendering tests verify nickname status and error announcement roles and dismissal text.
  • The production build passes and reports database-backed player and administrator pages as dynamic server-rendered routes.
  • Color contrast was calculated for the canvas, panel, muted text, accent text, and signal combinations used by the interface.

Follow-up

Authenticated browser automation is still recommended in CI with axe-core and a test Keycloak realm. It should cover keyboard order, zoom to 200%, reflow at 320 CSS pixels, and screen-reader announcements against a running production build.