Get accessibility preferences
Return the current accessibility preferences for the authenticated user. If the user has never set preferences explicitly, the server returns the application defaults.Example
cURL
Response — 200 OK
Example response
Set accessibility preferences
Replace all accessibility preferences for the authenticated user. You must send every field — the endpoint does not support partial updates. The response echoes back the saved preferences.Request body
string
required
Font size scaling applied across the entire app. Accepted values:
"normal", "large", "largest". Maps to CSS scale factors of 1×, 1.15×, and 1.35× respectively.string
required
Line height applied to body text. Accepted values:
"normal", "relaxed", "loose". Maps to line-height values of 1.6, 1.85, and 2.1 respectively.boolean
required
When
true, enables the high-contrast colour theme. Mirrors the OS-level prefers-contrast: more signal unless the user has explicitly overridden it.boolean
required
When
true, enables the dark colour theme. Mirrors the OS-level prefers-color-scheme: dark signal unless the user has explicitly overridden it.boolean
required
When
true, disables or minimises animations throughout the app. Mirrors the OS-level prefers-reduced-motion signal unless explicitly overridden.boolean
required
When
true, switches body text to a font designed to reduce letter confusion for readers with dyslexia.boolean
required
When
true, underlines every link so that colour is never the only visual cue distinguishing a link from surrounding text (satisfies WCAG 1.4.1).boolean
required
When
true, enforces a 48 px minimum tap/click target on all interactive controls (satisfies WCAG 2.5.8).number
required
Speech rate for the read-aloud feature, expressed as a multiplier. Must be between
0.6 (slowest) and 1.4 (fastest). The default is 0.95.Response fields
string
The saved text scale value:
"normal", "large", or "largest".string
The saved line spacing value:
"normal", "relaxed", or "loose".boolean
Whether high-contrast mode is enabled.
boolean
Whether dark mode is enabled.
boolean
Whether reduced motion is enabled.
boolean
Whether the dyslexia-friendly font is enabled.
boolean
Whether link underlining is enabled.
boolean
Whether large tap targets are enforced.
number
The saved read-aloud speech rate multiplier, clamped to the range 0.6–1.4.
Example
cURL
Response — 200 OK
Returns the full saved preferences object using the same shape as the GET response.Example response
Response — 400 Bad Request
Returned when any field is missing, of the wrong type, or outside the accepted range.Application defaults
If you have never posted preferences, the GET endpoint returns these values:The defaults for
contrast, darkMode, and reduceMotion are false at the API layer. In the web app, these three settings are seeded from OS-level media queries before a user explicitly sets them, so the app may behave differently from the raw API defaults on first load.