VS Code Accessibility Cheat Sheet

Sidebar

Programming ยท VS Code Accessibility Cheat Sheet

Settings and shortcuts that make VS Code easier to see, hear and use by keyboard: screen reader support, sounds and announcements, zoom and contrast, and more. Useful whether or not you use assistive technology, for example audio cues or a calmer, larger display. Sheet 15 in the VS Code series.

Screen Readers & Help

editor.accessibilitySupportauto (default: detect a screen reader), on (always optimise for one), off
Alt+F1Open Accessibility Help for whatever has focus: lists the shortcuts and settings that apply there
Alt+F2Open the Accessible View: the current output as plain text you can read line by line
Ctrl+MToggle whether Tab moves focus out of the editor (Ctrl+Shift+M on macOS)
F8 / Shift+F8Go to the next / previous problem
accessibility.accessibleView.closeOnKeyPressClose the Accessible View when you press a key (default true)
accessibility.hideAccessibleViewHide the Accessible View's own on-screen panel (default false)
accessibility.windowTitleOptimizedShorter window titles that are quicker to read aloud (default true)
accessibility.debugWatchVariableAnnouncementsAnnounce changes to watched variables while debugging (default true)

Verbosity Hints (accessibility.verbosity.*)

accessibility.verbosity.areaEach is true by default: a screen reader says how to open Accessibility Help when you enter that area
Areasterminal, find, hover, notification, diffEditor, debug, comments, sourceControl, notebook, replEditor, keybindingsEditor, walkthrough, emptyEditorHint
Chat areaspanelChat, inlineChat, inlineCompletions, terminalChatOutput
Turn one offe.g. "accessibility.verbosity.hover": false once you know the shortcut

Sounds & Announcements (accessibility.signals.*)

accessibility.signals.nameAn object with sound and announcement, e.g. { "sound": "on", "announcement": "off" }
sound valuesauto (sound only when a screen reader is attached; the default), on, off
announcement valuesauto (default), on, off: a spoken message for screen readers
lineHasError / lineHasWarningSignal when the cursor line has an error / warning (announcement off by default)
positionHasError / positionHasWarningSignal when the cursor is exactly on one (announcement on by default)
lineHasBreakpoint, lineHasFoldedArea, lineHasInlineSuggestionSignals for breakpoints, folded regions (sound off by default) and inline suggestions (sound off by default)
taskCompleted, taskFailed, onDebugBreakSignals for task results and for stopping at a breakpoint
terminalCommandSucceeded / terminalCommandFailed / terminalBellSignals from the terminal
diffLineInserted / Deleted / ModifiedSounds while moving through a diff
save, formatsound is userGesture, always or never (default never)
accessibility.signalOptions.volumeVolume of signal sounds, 0 to 100 (default 70)
accessibility.signalOptions.debouncePositionChangesWait before reporting position-based signals (default false)

Seeing More Easily

window.zoomLevelWhole-window zoom, 0 normal (default); Ctrl+= and Ctrl+- change it
editor.fontSize / editor.lineHeightMake the code text larger or more spaced
editor.mouseWheelZoomCtrl + mouse wheel zooms the editor text (default false)
workbench.colorThemePick "Dark High Contrast" or "Light High Contrast", or use Ctrl+K Ctrl+T
window.autoDetectHighContrastSwitch to a high-contrast theme when the OS is in high-contrast mode
accessibility.underlineLinksUnderline links in the interface (default false)
accessibility.dimUnfocused.enabledDim editors and views that do not have focus (default false)
accessibility.dimUnfocused.opacityHow dim: 0.2 to 1 (default 0.75)
terminal.integrated.minimumContrastRatioAdjusts terminal text colours until they reach this contrast (default 4.5)

Cursor, Motion & Hover

editor.cursorStyle / editor.cursorWidthA block or thicker cursor is easier to find
editor.cursorBlinkingsolid stops the blinking
editor.cursorSmoothCaretAnimationoff (default); animated cursor movement
workbench.reduceMotionauto (default, follows the OS), on, off
workbench.reduceTransparencyoff (default), on, auto
editor.hover.enabledon, off, onKeyboardModifier: pop-up information under the mouse
editor.hover.delay / editor.hover.stickyHow long to wait before a hover shows / whether you can move the mouse into it
workbench.hover.delayDelay for interface tooltips in ms (default 500 on Windows and Linux, 1500 on macOS)

Keyboard Navigation

F6 / Shift+F6Move focus to the next / previous part of the window (side bar, editor, panel)
Ctrl+1 / Ctrl+2 / Ctrl+3Focus the first / second / third editor group
Ctrl+Shift+PCommand Palette: anything can be done from here without a mouse
Ctrl+G / Ctrl+Shift+OGo to a line / a symbol in the file
Ctrl+Shift+E / F / G / D / XFocus Explorer / Search / Source Control / Run and Debug / Extensions
Ctrl+`Focus the terminal
Ctrl+K Ctrl+SOpen the Keyboard Shortcuts editor to change any binding

Terminal Accessibility

terminal.integrated.accessibleViewPreserveCursorPositionfalse (default), true, always: keep your place when reopening the Accessible View
terminal.integrated.accessibleViewFocusOnCommandExecutionMove focus to the Accessible View when a command runs (default false)
terminal.integrated.minimumContrastRatioContrast adjustment for terminal text (default 4.5)
Alt+F2 in the terminalRead the terminal output in the Accessible View

Voice & Chat Accessibility

accessibility.voice.speechLanguageLanguage for speech recognition (default auto); needs the VS Code Speech extension
accessibility.voice.speechTimeoutMilliseconds of silence before dictation stops
accessibility.voice.autoSynthesizeoff (default) or on: read chat answers aloud after you spoke
accessibility.voice.ignoreCodeBlocksSkip code blocks when reading answers aloud (default false)
accessibility.verboseChatProgressUpdatesMore detailed progress messages during chat requests (default true)
accessibility.chat.showCheckmarksShow checkmarks in chat (default false)
accessibility.openChatEditedFilesOpen files edited by chat automatically (default false)
accessibility.replEditor.autoFocusReplExecutionAfter a REPL run, focus: input (default), lastExecution, none

A Reasonable Starter Set (my suggestions, not defaults)

"window.zoomLevel": 1A little larger everywhere; adjust to taste
"editor.cursorBlinking": "solid"A steady cursor is easier to track
"editor.cursorStyle": "block"A wider cursor stands out more
"accessibility.underlineLinks": trueLinks do not depend on colour alone
"accessibility.dimUnfocused.enabled": trueMakes the focused area obvious
"workbench.reduceMotion": "on"Fewer animations
"accessibility.signals.taskCompleted": { "sound": "on" }Hear when a task finishes without a screen reader
Want the sounds without a screen reader? Set sound to on
Most accessibility.signals.* settings default to sound: auto, which plays the sound only when a screen reader is attached. To hear them anyway, set the individual signal to { "sound": "on" }, for example for task completion, terminal command failure or breakpoints. Use accessibility.signalOptions.volume to set the volume.
Alt+F1 shows what is available right here
Accessibility Help is context sensitive: pressed in the editor it lists editor shortcuts and settings, in the terminal it lists terminal ones, and so on. It is the quickest way to discover features you did not know about, and the accessibility.verbosity.* settings control whether a screen reader reminds you of it.