Home/Docs/Accessibility
Full Docs Article

DeepSeek TUI Accessibility Docs Guide

Accessibility docs explain how a keyboard-first terminal UI stays usable for different input, output, and assistive workflows.

Upstream source: ACCESSIBILITY.mdReadable on-siteFull article embedded below

What this document actually covers

Accessibility docs explain how a keyboard-first terminal UI stays usable for different input, output, and assistive workflows.

How to use this page

  • Use the section list on the right to jump into the exact upstream section you need.
  • If you came here for one problem only, read the relevant heading first and return to the matching hub afterward.
  • If you need source verification, open the GitHub page or raw Markdown directly.

Full upstream document

Accessibility

DeepSeek-TUI runs in a terminal, so the platform's own accessibility stack (screen readers, magnifiers, terminal-level themes) does most of the work. The TUI provides a small set of toggles that reduce visual motion and density for screen-reader and low-motion users.

Quick reference

ToggleDefaultEffect
NO_ANIMATIONS=1 env varunsetAt startup, forces low_motion = true and fancy_animations = false. Overrides whatever's saved in settings.toml.
low_motion settingfalseSuppresses spinners' motion, transcript fade-ins, footer drift, and the active-cell pulse. The frame-rate limiter also slows down idle redraws so the cursor doesn't blink as aggressively.
fancy_animations settingfalseFooter water-spout strip and pulsing sub-agent counter. Off by default.
calm_mode settingfalseCollapses tool-output details by default and trims status messages. Useful for screen readers that announce every redraw.
show_thinking settingtrueSet to false to hide model reasoning_content blocks entirely.
show_tool_details settingtrueSet to false to render tool calls as one-liners without expanded payloads.

Standard env-var surface

Set these in your shell profile so they apply to every session:

# Force low-motion + no fancy animations.
export NO_ANIMATIONS=1

# Optional: respect the wider terminal-color convention.
export NO_COLOR=1            # honored by the underlying ratatui backend

NO_ANIMATIONS accepts any of 1, true, yes, or on (case-insensitive). Any other value (including 0, false, empty, or unset) leaves your saved settings alone.

The override is applied once at startup. Changing the env var mid-session has no effect — settings are only re-read on the next launch.

Configuring via /settings

The same toggles are reachable from the command palette:

  • /settings set low_motion on
  • /settings set fancy_animations off
  • /settings set calm_mode on

Settings written this way persist to ~/.config/deepseek/settings.toml. The NO_ANIMATIONS env var still wins at startup if it's set, so unsetting the env var is the way to honor your saved choice.

Notes for screen-reader users

  • low_motion slows the idle redraw loop to ~120ms per frame so the cursor isn't constantly repositioned. Combined with calm_mode, the redraw rate stays low enough that VoiceOver / Orca announcements track linearly with model output instead of re-reading the whole screen on each tick.
  • The transcript is pure text — no images or canvas rendering — so any terminal that integrates with the platform's accessibility service (e.g. macOS Terminal.app, iTerm2, Ghostty, Windows Terminal) will pass the rendered content straight through.
  • If you find a UI surface that still produces motion when low_motion = true, please file an issue against PRIOR: Screen-reader / accessibility flag with a screenshot or terminal recording.
  • #450 — documenting the existing flag, adding the NO_ANIMATIONS startup overlay, and writing this page.
  • #449 — footer statusline now uses the active theme's contrast pair instead of a bespoke palette.

Back to top