Skip to content

Latest commit

 

History

History
788 lines (622 loc) · 30.6 KB

File metadata and controls

788 lines (622 loc) · 30.6 KB

Appendix M: VS Code Accessibility Reference

Listen to Episode 30: VS Code Accessibility Reference - a conversational audio overview of this chapter. Listen before reading to preview the concepts, or after to reinforce what you learned.

Complete Technical Reference for Screen Reader Users

Purpose: This appendix provides comprehensive technical documentation for all VS Code accessibility features, settings, and keyboard shortcuts. The main chapters cover essentials; this appendix is your complete reference manual.

Referenced by: VS Code Setup & Accessibility Basics, GitHub Copilot


Table of Contents

  1. Complete Accessibility Settings Reference
  2. Audio Cues - All Options
  3. Accessible Diff Viewer - Complete Guide
  4. Screen Reader-Specific Configurations
  5. Complete Keyboard Shortcuts
  6. Accessibility Signals Types and Customization
  7. Settings.json Configuration Examples

1. Complete Accessibility Settings Reference

All settings can be accessed via Settings UI (Ctrl+,) or by editing settings.json directly (Ctrl+Shift+P → "Open User Settings JSON").

Core Accessibility Settings

Setting Path Values Default Description
editor.accessibilitySupport auto, on, off auto Enables screen reader optimizations. auto detects NVDA/JAWS/VoiceOver. Set to on to force.
editor.accessibilityPageSize number (lines) 10 Number of lines to read when using Page Up/Down in screen reader mode
editor.guides.bracketPairs boolean false Shows bracket pair guides. Disable for screen readers (visual only).
editor.guides.bracketPairsHorizontal boolean false Shows horizontal bracket guides. Disable for screen readers.
editor.guides.highlightActiveBracketPair boolean true Highlights matching brackets. Not announced by screen readers.
editor.guides.highlightActiveIndentation boolean true Highlights active indentation. Visual only.
editor.guides.indentation boolean true Shows indentation guides. Not useful for screen readers.
editor.hover.enabled boolean true Enables hover popups. Use Alt+F2 (Accessible View) to read hover content.
editor.minimap.enabled boolean true Shows visual minimap. Recommended: Set to false for screen readers.
editor.occurrencesHighlight boolean true Highlights occurrences of selected text. Visual only.
editor.renderWhitespace none, boundary, selection, trailing, all selection Shows whitespace characters. Recommended: none for screen readers.
editor.wordWrap off, on, wordWrapColumn, bounded off Wraps long lines. Recommended: on for screen readers.
workbench.editor.enablePreview boolean true Opens files in preview mode (single tab). Set to false to always open in new tab.

Diff and Merge Settings

Setting Path Values Default Description
diffEditor.codeLens boolean false Shows CodeLens in diff view. Visual only.
diffEditor.diffAlgorithm legacy, advanced advanced Diff calculation method. advanced produces better hunks for screen readers.
diffEditor.ignoreTrimWhitespace boolean true Ignores whitespace changes in diffs. Recommended: true to reduce noise.
diffEditor.renderSideBySide boolean true Shows diffs side-by-side. Set to false for inline view (easier for screen readers).
diffEditor.wordWrap off, on, inherit inherit Word wrap in diff view. on recommended for long lines.
merge-conflict.decorators.enabled boolean true Shows merge conflict decorators. Use Accessible Diff instead (F7).

Terminal Settings

Setting Path Values Default Description
terminal.integrated.accessibleViewFocusesTerminal boolean true Returns focus to terminal after closing Accessible View.
terminal.integrated.accessibleViewPreserveCursorPosition boolean false Preserves cursor position when opening Accessible View.
terminal.integrated.enableBell boolean false Enables terminal bell sound. Recommended: true for audio feedback.
terminal.integrated.screenReaderMode auto, on, off auto Optimizes terminal for screen readers.

Notification Settings

Setting Path Values Default Description
accessibility.verbosity.comments boolean true Announces comment threads in code.
accessibility.verbosity.diff-editor boolean true Announces diff editor context.
accessibility.verbosity.editor boolean true Announces editor operations.
accessibility.verbosity.hover boolean true Announces hover content. Use Alt+F2 for full reading.
accessibility.verbosity.inline-chat boolean true Announces inline chat responses.
accessibility.verbosity.inline-completions boolean true Announces Copilot suggestions.
accessibility.verbosity.keybindings-editor boolean true Announces keybindings editor context.
accessibility.verbosity.notebook boolean true Announces notebook cell operations.
accessibility.verbosity.panel-chat boolean true Announces Copilot Chat panel responses.
accessibility.verbosity.settings-editor boolean true Announces settings editor context.
accessibility.verbosity.terminal boolean true Announces terminal operations.

2. Audio Cues - All Options

Audio cues provide non-verbal feedback through sound. Each cue can be configured independently.

Accessing Audio Cue Settings

Settings UI: Ctrl+, → search "audio cue"

Settings.json: Edit directly (see Section 7)

Audio Cue Values

Value Behavior
auto Play sound in screen reader mode only
on Always play sound
off Never play sound

Complete Accessibility Signals List

Setting When It Plays Recommended
accessibility.signals.clear When clearing the terminal or output on
accessibility.signals.chatRequestSent When sending a Copilot Chat prompt on
accessibility.signals.chatResponsePending While Copilot is generating a response auto
accessibility.signals.chatResponseReceived When Copilot finishes responding on
accessibility.signals.debugBreakpoint When hitting a breakpoint in debugger on
accessibility.signals.diffLineDeleted When navigating over a deleted line in diff on
accessibility.signals.diffLineInserted When navigating over an added line in diff on
accessibility.signals.diffLineModified When navigating over a modified line in diff on
accessibility.signals.format When auto-formatting completes auto
accessibility.signals.lineHasBreakpoint When cursor is on a line with a breakpoint auto
accessibility.signals.lineHasError When cursor is on a line with an error on
accessibility.signals.lineHasFoldedArea When cursor is on a line with collapsed code auto
accessibility.signals.lineHasInlineSuggestion When an inline suggestion appears on
accessibility.signals.lineHasWarning When cursor is on a line with a warning auto
accessibility.signals.noInlayHints When inlay hints are not available off
accessibility.signals.notebookCellCompleted When a notebook cell finishes executing on
accessibility.signals.notebookCellFailed When a notebook cell fails on
accessibility.signals.onDebugBreak When debugger pauses execution on
accessibility.signals.save When saving a file auto
accessibility.signals.taskCompleted When a terminal task completes successfully on
accessibility.signals.taskFailed When a terminal task fails on
accessibility.signals.terminalBell When terminal bell rings on
accessibility.signals.terminalCommandFailed When a terminal command exits with error on
accessibility.signals.terminalQuickFix When a terminal quick fix is available auto
accessibility.signals.voiceRecordingStarted When voice input begins on
accessibility.signals.voiceRecordingStopped When voice input ends on
accessibility.signals.volume Volume level (0-100) 70

Customizing Signal Sounds

Advanced feature: You can replace default sounds with custom audio files.

  1. Ctrl+Shift+P → "Preferences: Open User Settings (JSON)"
  2. Add custom sound paths:
{
  "accessibility.signals.lineHasError.sound": "file:///C:/Users/YourName/sounds/error.wav",
  "accessibility.signals.taskCompleted.sound": "file:///C:/Users/YourName/sounds/success.wav",
  "accessibility.signals.diffLineInserted.sound": "file:///C:/Users/YourName/sounds/added.wav"
}

Sound file requirements

  • Format: WAV, MP3, or OGG
  • Duration: Keep under 2 seconds
  • Volume: Normalize to avoid clipping

3. Accessible Diff Viewer - Complete Guide

The Accessible Diff Viewer presents file diffs as a structured, line-by-line list instead of a visual side-by-side view.

When to Use Accessible Diff Viewer

  • Reviewing pull request changes
  • Resolving merge conflicts
  • Comparing file versions (Timeline view)
  • Reviewing Copilot-generated edits
  • Any time you need to understand what changed in a file

Opening Accessible Diff Viewer

Method Steps
Keyboard (in diff editor) Press F7 to jump to first hunk, Alt+F2 to open Accessible View
Command Palette Ctrl+Shift+P → "Open Accessible Diff Viewer"
Automatic Some contexts open it automatically in screen reader mode

Diff Viewer Structure

Top-level structure

Accessible Diff Viewer
├── Header (file path, change summary)
├── Hunk 1 of N
│   ├── Hunk location (line range)
│   ├── Unchanged lines (context)
│   ├── Modified/Added/Removed lines (with prefix)
│   └── More unchanged lines (context)
├── Hunk 2 of N
│   └── ...
└── Footer (totals: X additions, Y deletions)

Line prefixes

Prefix Meaning Screen Reader Announcement
(no prefix) Unchanged line (context) "Unchanged: [line content]"
+ Added line "Added: [line content]" or "Line added: [content]"
- Removed line "Removed: [line content]" or "Line removed: [content]"
|~ Modified line (original) "Modified from: [old content]"
|+ Modified line (new version) "Modified to: [new content]"

Navigating Hunks

Hunk = a block of related changes

Action Keyboard
Jump to next hunk F7
Jump to previous hunk Shift+F7
Jump to next change F8 (in some contexts)
Jump to previous change Shift+F8

Screen Reader-Specific Navigation

NVDA/JAWS

  1. Open diff: Enter on file in Source Control, or F7 in an open diff
  2. Alt+F2 to open Accessible Diff Viewer
  3. Navigate with Up/Down Arrow (line by line)
  4. Use H key to jump between hunks (each hunk has a heading)
  5. Escape to close and return to editor

VoiceOver

  1. VO+Arrow to navigate to diff file → VO+Space to open
  2. Option+F2 for Accessible Diff Viewer
  3. VO+Arrow keys to navigate lines
  4. VO+Command+H to jump between hunk headings
  5. Escape to close

Understanding Context Lines

The diff shows 3 unchanged lines before and after each change for context. These are announced as "Unchanged: [content]".

Example

Hunk 1 of 3 - lines 42-48

  Unchanged: ## Screen Reader Setup
  Unchanged:
- Removed: This guide covers NVDA only.
+ Added: This guide covers NVDA, JAWS, and VoiceOver.
  Unchanged:
  Unchanged: ### Installing NVDA

The unchanged lines help you understand where in the file the change occurred.

Inline Diff View vs Side-by-Side

Inline view (recommended for screen readers)

  • All changes in a single editor
  • Removed lines followed by added lines
  • Easier to navigate with screen reader reading commands

Side-by-side view (default, visual)

  • Left panel: original file
  • Right panel: modified file
  • Requires navigating between panels

To switch to inline view

  1. Open Settings: Ctrl+,
  2. Search: "diffEditor.renderSideBySide"
  3. Uncheck the box (or set to false in settings.json)

4. Screen Reader-Specific Configurations

NVDA Configuration for VS Code

Recommended NVDA settings

  1. Browse Mode settings:

    • NVDA Menu → Preferences → Settings → Browse Mode
    • "Maximum length of text on a single line": 10000
    • "Automatic focus mode for focus changes": Checked
    • "Automatic focus mode for caret movement": Unchecked
  2. Object Presentation:

    • "Report tooltips": Unchecked (reduces interruptions; use Alt+F2 instead)
    • "Report notifications": Checked
    • "Report object descriptions": Checked
  3. Speech settings:

    • "Punctuation/symbol level": Some or Most (for code reading)
    • "Automatic language switching": Checked (useful for multilingual docs)
  4. Input Composition:

    • "Announce candidates during IME text composition": Checked

NVDA add-ons for VS Code

  • Focus Highlight - shows focus location visually (helpful for sighted trainers)
  • IndentNav - navigate by indentation level (useful for Python, YAML)

VS Code-specific NVDA commands

Action NVDA Command
Read from cursor Insert+Down Arrow
Read all Insert+Down Arrow (twice)
Stop speech Control
Say all in focus mode NVDA+Shift+Down Arrow
Move to containing browse mode document NVDA+Control+Space

JAWS Configuration for VS Code

Recommended JAWS settings

  1. Settings Center → HTML/PDF/Accessibility:

    • "Auto Forms Mode": Checked
    • "ARIA Live Region Verbosity": Polite or Assertive (depending on preference)
    • "Report tooltip text": Unchecked (use Alt+F2 instead)
  2. Settings Center → Reading:

    • "Punctuation Level": Most (for code)
    • "Speak Long Lines Continuously": Yes
  3. Settings Center → Text Processing:

    • "Blank Line Announcement": Tone (less verbose than speech)

JAWS scripts for VS Code

Custom JAWS scripts exist for VS Code. Check: jaws-vscode-scripts (GitHub) for community-maintained scripts.

VS Code-specific JAWS commands

Action JAWS Command
Say current line Insert+Up Arrow
Read from cursor Insert+Page Down
Read to end Insert+Page Down (twice)
Toggle virtual cursor Insert+Z
List links Insert+F7
List headings Insert+F6

VoiceOver Configuration for VS Code (macOS)

Recommended VoiceOver Utility settings

  1. Verbosity → Text:

    • "Punctuation": All (for code and Markdown)
    • "Capitalization": Speak cap (useful for acronyms and code)
    • "Reading Units": Set to sentenceboundary for prose, word for code
  2. Verbosity → Announcements:

    • "Content Changes": On (for live regions like Copilot Chat)
    • "Status Messages": On
  3. Navigation:

    • "Quick Nav": OFF when inside editor (use Left+Right Arrow to toggle)
    • "Auto-interact with elements": Off (manual control preferred)
  4. Sound:

    • "Enable positional audio": On (helps orient focus location)
    • "Mute sound effects": Off (audio cues are helpful)

VS Code-specific VoiceOver commands

Action VoiceOver Command
Read from cursor VO+A
Read all VO+Shift+Down Arrow (in text area)
Stop reading Control
Interact with element VO+Shift+Down Arrow
Stop interacting VO+Shift+Up Arrow
Jump to heading VO+Command+H
Open rotor VO+U
Navigate rotor Left/Right Arrow, then Up/Down Arrow

Quick Nav navigation (when enabled)

Command Action
H Next heading
Shift+H Previous heading
L Next link
T Next table
B Next button
F Next form control

Note: Quick Nav should be OFF when editing text (conflicts with text navigation).


5. Complete Keyboard Shortcuts

For screen reader navigation shortcuts when using GitHub in a browser (NVDA, JAWS, VoiceOver), see Appendix B - Screen Reader Cheat Sheet.

Global Navigation

Action Windows/Linux macOS
Command Palette Ctrl+Shift+P Cmd+Shift+P
Quick Open (Go to File) Ctrl+P Cmd+P
Settings Ctrl+, Cmd+,
Keyboard Shortcuts Ctrl+K Ctrl+S Cmd+K Cmd+S
Toggle Sidebar Ctrl+B Cmd+B
Toggle Panel (terminal/output) Ctrl+J Cmd+J
Toggle Full Screen F11 Ctrl+Cmd+F
Zen Mode Ctrl+K Z Cmd+K Z
Close Window Ctrl+W Cmd+W
New Window Ctrl+Shift+N Cmd+Shift+N

Sidebar Panels

Action Windows/Linux macOS
Explorer Ctrl+Shift+E Cmd+Shift+E
Search Ctrl+Shift+F Cmd+Shift+F
Source Control Ctrl+Shift+G Cmd+Shift+G
Run and Debug Ctrl+Shift+D Cmd+Shift+D
Extensions Ctrl+Shift+X Cmd+Shift+X

Editor - File Operations

Action Windows/Linux macOS
New File Ctrl+N Cmd+N
Open File Ctrl+O Cmd+O
Save Ctrl+S Cmd+S
Save As Ctrl+Shift+S Cmd+Shift+S
Save All Ctrl+K S Cmd+Option+S
Close Editor Ctrl+W Cmd+W
Close All Editors Ctrl+K W Cmd+K W
Reopen Closed Editor Ctrl+Shift+T Cmd+Shift+T
Switch Between Editors Ctrl+Tab Ctrl+Tab
Focus First Editor Ctrl+1 Cmd+1
Focus Second Editor Ctrl+2 Cmd+2
Split Editor Ctrl+\ Cmd+\

Editor - Navigation

Action Windows/Linux macOS
Go to Line Ctrl+G Ctrl+G
Go to Symbol Ctrl+Shift+O Cmd+Shift+O
Go to Definition F12 F12
Peek Definition Alt+F12 Option+F12
Go to References Shift+F12 Shift+F12
Go Back (navigate history) Alt+Left Ctrl+-
Go Forward Alt+Right Ctrl+Shift+-
Scroll Up Ctrl+Up Cmd+Up
Scroll Down Ctrl+Down Cmd+Down
Move to Top of File Ctrl+Home Cmd+Home or Cmd+Up
Move to Bottom of File Ctrl+End Cmd+End or Cmd+Down
Move to Beginning of Line Home Cmd+Left
Move to End of Line End Cmd+Right
Expand Selection Shift+Alt+Right Shift+Option+Right
Shrink Selection Shift+Alt+Left Shift+Option+Left

Editor - Editing

Action Windows/Linux macOS
Cut Line Ctrl+X Cmd+X
Copy Line Ctrl+C Cmd+C
Paste Ctrl+V Cmd+V
Undo Ctrl+Z Cmd+Z
Redo Ctrl+Shift+Z or Ctrl+Y Cmd+Shift+Z
Delete Line Ctrl+Shift+K Cmd+Shift+K
Insert Line Below Ctrl+Enter Cmd+Enter
Insert Line Above Ctrl+Shift+Enter Cmd+Shift+Enter
Move Line Up Alt+Up Option+Up
Move Line Down Alt+Down Option+Down
Copy Line Up Shift+Alt+Up Shift+Option+Up
Copy Line Down Shift+Alt+Down Shift+Option+Down
Join Lines Ctrl+J Cmd+J
Toggle Line Comment Ctrl+/ Cmd+/
Toggle Block Comment Shift+Alt+A Shift+Option+A
Format Document Shift+Alt+F Shift+Option+F
Format Selection Ctrl+K Ctrl+F Cmd+K Cmd+F

Editor - Find and Replace

Action Windows/Linux macOS
Find Ctrl+F Cmd+F
Replace Ctrl+H Cmd+H
Find Next F3 or Enter Cmd+G or Enter
Find Previous Shift+F3 Cmd+Shift+G
Select All Occurrences Ctrl+Shift+L Cmd+Shift+L
Add Selection to Next Find Match Ctrl+D Cmd+D
Toggle Match Case Alt+C Option+C
Toggle Whole Word Alt+W Option+W
Toggle Regex Alt+R Option+R

Editor - Multi-Cursor

Action Windows/Linux macOS
Add Cursor Above Ctrl+Alt+Up Cmd+Option+Up
Add Cursor Below Ctrl+Alt+Down Cmd+Option+Down
Add Cursor to Line Ends Shift+Alt+I Shift+Option+I
Undo Last Cursor Operation Ctrl+U Cmd+U

Terminal

Action Windows/Linux macOS
Toggle Terminal Ctrl+Backtick Ctrl+Backtick
Create New Terminal Ctrl+Shift+Backtick Ctrl+Shift+Backtick
Focus Terminal Ctrl+Backtick Ctrl+Backtick
Kill Terminal Ctrl+Shift+K (in terminal) Cmd+Shift+K
Scroll Up in Terminal Ctrl+Shift+Up Cmd+Shift+Up
Scroll Down in Terminal Ctrl+Shift+Down Cmd+Shift+Down

Source Control (Git)

Action Windows/Linux macOS
Open Source Control Ctrl+Shift+G Cmd+Shift+G
Commit (in message field) Ctrl+Enter Cmd+Enter
Stage File Ctrl+Enter (on file) Cmd+Enter
Refresh Source Control Ctrl+R (in SC panel) Cmd+R

Diff Viewer

Action Windows/Linux macOS
Next Diff Hunk F7 F7
Previous Diff Hunk Shift+F7 Shift+F7
Open Accessible Diff Viewer Alt+F2 Option+F2

Copilot

Action Windows/Linux macOS
Accept Suggestion Tab Tab
Reject Suggestion Escape Escape
Accept Word Ctrl+Right Cmd+Right
Next Suggestion Alt+] Option+]
Previous Suggestion Alt+[ Option+[
Open Suggestions List Ctrl+Enter Cmd+Enter
Open Suggestion in Accessible View Alt+F2 Option+F2
Insert Suggestion from Accessible View Ctrl+/ Cmd+/
Open Copilot Chat Ctrl+Shift+I Cmd+Shift+I
Inline Chat Ctrl+I Cmd+I
Quick Chat Ctrl+Shift+Alt+I Cmd+Shift+Ctrl+I

Accessibility Features

Action Windows/Linux macOS
Toggle Screen Reader Mode Shift+Alt+F1 Shift+Option+F1
Accessible Help Alt+H Option+H
Accessible View Alt+F2 Option+F2
Announce Cursor Position Ctrl+Alt+Shift+G Cmd+Option+Shift+G
Open Accessibility Help Ctrl+Shift+P → "Help: Accessibility Help" Same

Problems Panel

Action Windows/Linux macOS
Show Problems Ctrl+Shift+M Cmd+Shift+M
Go to Next Error/Warning F8 F8
Go to Previous Error/Warning Shift+F8 Shift+F8

Markdown Preview

Action Windows/Linux macOS
Toggle Preview Ctrl+Shift+V Cmd+Shift+V
Open Preview to Side Ctrl+K V Cmd+K V

6. Accessibility Signals Types and Customization

Accessibility signals are events that trigger announcements or audio cues. Beyond audio cues, VS Code has verbal announcements for various events.

Announcement Verbosity Settings

Control how much information VS Code announces:

Setting Values Default Controls
accessibility.verbosity.diffEditor verbose, minimal, off verbose Diff viewer context announcements
accessibility.verbosity.editor verbose, minimal, off verbose General editor announcements
accessibility.verbosity.hover verbose, minimal, off verbose Hover popup announcements
accessibility.verbosity.inlineCompletions verbose, minimal, off verbose Copilot suggestion announcements
accessibility.verbosity.terminal verbose, minimal, off verbose Terminal operation announcements

verbose: Announces full context and details
minimal: Announces only essential information
off: No automatic announcements (use Accessible View manually)

Custom Announcement Timing

Control when and how often announcements occur:

Setting Values Default Description
accessibility.signals.debouncePositionChanges number (ms) 500 Delay before announcing position changes (prevents spam during rapid navigation)
accessibility.signals.onDidChangeFocus boolean true Announce focus changes
accessibility.signals.onDidChangeModelContent boolean false Announce content changes (very verbose)

Signal Priorities

When multiple signals occur simultaneously, VS Code prioritizes them:

  1. Errors (highest priority) - always announced
  2. Warnings - announced after errors
  3. Completions - announced if no errors/warnings
  4. Focus changes - announced last

This prevents overlapping announcements.


7. Settings.json Configuration Examples

Minimal Screen Reader Profile

For users who prefer minimal announcements and use Accessible View manually

{
  "editor.accessibilitySupport": "on",
  "editor.minimap.enabled": false,
  "editor.renderWhitespace": "none",
  "editor.wordWrap": "on",
  "diffEditor.renderSideBySide": false,
  "accessibility.verbosity.diffEditor": "minimal",
  "accessibility.verbosity.editor": "minimal",
  "accessibility.verbosity.hover": "minimal",
  "accessibility.verbosity.inlineCompletions": "minimal",
  "accessibility.signals.lineHasError": "on",
  "accessibility.signals.taskCompleted": "on",
  "accessibility.signals.taskFailed": "on"
}

Maximum Feedback Profile

For users who want all audio and verbal announcements

{
  "editor.accessibilitySupport": "on",
  "editor.minimap.enabled": false,
  "editor.renderWhitespace": "none",
  "editor.wordWrap": "on",
  "diffEditor.renderSideBySide": false,
  "accessibility.verbosity.diffEditor": "verbose",
  "accessibility.verbosity.editor": "verbose",
  "accessibility.verbosity.hover": "verbose",
  "accessibility.verbosity.inlineCompletions": "verbose",
  "accessibility.verbosity.terminal": "verbose",
  "accessibility.signals.lineHasError": "on",
  "accessibility.signals.lineHasWarning": "on",
  "accessibility.signals.taskCompleted": "on",
  "accessibility.signals.taskFailed": "on",
  "accessibility.signals.diffLineInserted": "on",
  "accessibility.signals.diffLineDeleted": "on",
  "accessibility.signals.chatResponseReceived": "on",
  "accessibility.signals.chatResponsePending": "on",
  "accessibility.signals.save": "on",
  "accessibility.signals.clear": "on",
  "accessibility.signals.format": "on",
  "accessibility.signals.terminalBell": "on",
  "accessibility.signals.terminalCommandFailed": "on",
  "terminal.integrated.enableBell": true
}

Copilot-Optimized Profile

For users working heavily with GitHub Copilot

{
  "editor.accessibilitySupport": "on",
  "editor.minimap.enabled": false,
  "editor.wordWrap": "on",
  "accessibility.verbosity.inlineCompletions": "minimal",
  "accessibility.verbosity.panelChat": "minimal",
  "accessibility.signals.lineHasInlineSuggestion": "on",
  "accessibility.signals.chatResponsePending": "on",
  "accessibility.signals.chatResponseReceived": "on",
  "accessibility.signals.chatRequestSent": "on",
  "github.copilot.enable": {
    "*": true,
    "yaml": true,
    "plaintext": false,
    "markdown": true
  }
}

Note: The github.copilot.enable object controls which file types get Copilot suggestions.

Git/Diff-Optimized Profile

For users doing heavy PR review and diff work

{
  "editor.accessibilitySupport": "on",
  "diffEditor.renderSideBySide": false,
  "diffEditor.ignoreTrimWhitespace": true,
  "diffEditor.wordWrap": "on",
  "diffEditor.diffAlgorithm": "advanced",
  "accessibility.verbosity.diffEditor": "verbose",
  "accessibility.signals.diffLineInserted": "on",
  "accessibility.signals.diffLineDeleted": "on",
  "accessibility.signals.diffLineModified": "on",
  "scm.diffDecorations": "gutter",
  "scm.diffDecorationsGutterWidth": 2
}

Performance-Optimized Profile

For users on slower machines or with large repositories

{
  "editor.accessibilitySupport": "on",
  "editor.minimap.enabled": false,
  "editor.renderWhitespace": "none",
  "editor.guides.indentation": false,
  "editor.guides.bracketPairs": false,
  "editor.occurrencesHighlight": false,
  "editor.selectionHighlight": false,
  "editor.hover.enabled": true,
  "editor.hover.delay": 1000,
  "files.exclude": {
    "**/.git": true,
    "**/.svn": true,
    "**/.hg": true,
    "**/CVS": true,
    "**/.DS_Store": true,
    "**/node_modules": true,
    "**/.vscode": false
  },
  "search.exclude": {
    "**/node_modules": true,
    "**/bower_components": true,
    "**/*.code-search": true
  }
}

Quick Copy: Complete Recommended Settings

Paste this into your settings.json for a balanced screen reader profile

{
  "editor.accessibilitySupport": "on",
  "editor.minimap.enabled": false,
  "editor.renderWhitespace": "none",
  "editor.wordWrap": "on",
  "diffEditor.renderSideBySide": false,
  "diffEditor.ignoreTrimWhitespace": true,
  "diffEditor.wordWrap": "on",
  "accessibility.verbosity.diffEditor": "verbose",
  "accessibility.verbosity.editor": "verbose",
  "accessibility.verbosity.hover": "verbose",
  "accessibility.verbosity.inlineCompletions": "minimal",
  "accessibility.verbosity.panelChat": "minimal",
  "accessibility.signals.lineHasError": "on",
  "accessibility.signals.lineHasWarning": "auto",
  "accessibility.signals.taskCompleted": "on",
  "accessibility.signals.taskFailed": "on",
  "accessibility.signals.diffLineInserted": "on",
  "accessibility.signals.diffLineDeleted": "on",
  "accessibility.signals.chatResponseReceived": "on",
  "terminal.integrated.enableBell": true,
  "workbench.editor.enablePreview": false
}

Back to: VS Code Setup & Accessibility Basics | GitHub Copilot | Accessibility Agents
Related: Appendix B: Screen Reader Cheat Sheet