Accessibility

The default profile has an Accessibility tab. Every option works in the menu with no code; the ones your game needs to react to are available from code too.

Setting What the menu does What your game can do
Menu Size (75% to 150%) Scales the whole menu canvas. Read AccessibilityState.UiScale for your own HUD.
Text Size (80% to 160%) Scales every menu text. Read AccessibilityState.TextScale.
High Contrast Switches to the theme's high-contrast variant (text contrast at least 4.5:1, checked by a test). Read AccessibilityState.HighContrast.
Reduce Motion No screen fades, slides or focus zoom; instant color changes. Read AccessibilityState.ReducedMotion; multiply camera shake by AccessibilityState.CameraShakeScale (0 with reduced motion, otherwise the Camera Shake setting).
Focus Outline (thin / normal / thick) Thickness of the frame around the selected item. Nothing needed.
Sprint: Hold / Toggle (example) Stored only (Read). HoldOrToggleSettingDefinition.IsToggle(SettingsRuntime.Current, "accessibility.sprint-mode"), or listen to SettingsController.ValueApplied. Duplicate the asset for aim, crouch and so on.
Subtitles, Subtitle Size, Subtitle Background Applied by the Subtitles prefab. Call SubtitleDisplay.Show("Line.", seconds, "Speaker").

All values are also raised through AccessibilityState.Changed.

Subtitles #

  1. Drag Content/Prefabs/Subtitles.prefab into your first scene (or a scene that stays loaded).
  2. From your dialogue code: SubtitleDisplay.Show("Where is everyone?", 3f, "Mara"); Lines queue and play in order, in unscaled time (they keep going while paused).
  3. The player's Subtitles, Subtitle Size and Subtitle Background settings apply automatically.

Keyboard, controller and mouse #

Every screen is fully usable with a keyboard or a controller; focus is always visible and is restored when you go back. Rebinding protects the menu controls, so a player can't lock themselves out.

Not supported: screen readers #

The menus are not read aloud by screen readers (Narrator, NVDA, VoiceOver, TalkBack). Unity's uGUI has no built-in screen reader support, and the kit does not add one. If your game needs a screen reader, plan for a dedicated solution.

Something unclear or wrong? Tell us · Get help