EMS accessibility

GRIP-EMS aims to be usable for players who rely on screen readers, play one-handed, play with tremor, play with low vision, or avoid motion in the UI. Settings live under the Accessibility subpanel (/gems settings -> Accessibility). Design vocabulary follows AbleGamers APX (Accessible Player Experiences). The in-game panel layout is modelled on Elder Scrolls Online's Accessibility Mode: one place, grouped by population.

This document lists the accessibility features EMS ships. Structural limits (things the WoW addon API does not expose) are called out separately in section 4.

Features

Vision

Motion and vestibular

Motor

Cognitive, new players, ESL

Audio

General

Note on the theming taxonomy (for users looking at the 45-class tree)

The theming apply engine uses two patterns. Persistent UI (panels, singleton overlays, the focus ring) is frame-registered: EMS holds a reference to the widget and re-skins it directly when the theme changes. Transient and construction-time UI (rows, buttons, text FontStrings, emphasis state modifiers, the global addon font) is consumer-lookup: the widget reads its spec from the current theme at the moment it renders. Both patterns produce identical visible theming. Consumer-lookup classes are not "unbound" and are not reserved; they simply apply at a different point in the widget's lifecycle.

Five overlay classes are reserved in the taxonomy for features EMS has not shipped yet: overlay.toast.info, overlay.toast.error, overlay.modal.dim, overlay.tooltip, overlay.dragPreview. Their specs are in place so future work can bind them without a taxonomy change. One panel class, panel.profileMgr, is a Blizzard-owned surface (the AceDBOptions profile picker); EMS cannot currently reach a frame handle for it, so its theming is deferred until that handle is exposed.

Compatibility with other accessibility addons

AddonCoexistsNotes
BlindSlashYesEMS TTS speaks step announcements. The chat-frame emitter pipes state into a dedicated chat-frame slot (default frame 9) for BlindSlash to parse.
ConsolePortYesDetected at login via the gamepad-detected flag. The keybind UI accepts gamepad buttons without extra config.
DialogueUIYesNo shared UI surface.
Leatrix PlusYesNo shared UI surface. Leatrix's own cursor-enhancement options are a good choice for users who want more cursor textures than EMS ships.
ElvUIYesEMS owns its own frames. Anchor the main window inside an ElvUI layout normally.
WeakAurasYesNo shared UI surface. No taint interaction.
Atkinson Hyperlegible (font addon)YesEMS bundles an in-app font switch via LibSharedMedia with Atkinson Hyperlegible included. Third-party font addons still coexist.

What EMS cannot do

These are capabilities the addon API does not expose. They are structural limits, not deferred features.

Feedback

References