Add accessibility.chat.showCheckmarks setting#297133
Merged
Conversation
Add a boolean accessibility setting that restores the checkmark icons on completed tool calls and other collapsible items in chat responses. The setting defaults to false (checkmarks hidden). When enabled, checkmark and loading icons are shown as the leading icon on collapsible content parts, tool input/output parts, and inside thinking/subagent boxes. The setting is reactive - toggling it immediately updates all existing chat parts without needing a reload. CSS-based visibility control via a .show-checkmarks class ensures icons set by subclass autoruns (ChatThinkingContentPart, ChatSubagentContentPart) are properly shown/hidden without needing to intercept their icon assignments.
Contributor
There was a problem hiding this comment.
Pull request overview
This pull request adds an accessibility setting accessibility.chat.showCheckmarks that allows users to restore checkmark icons on completed tool calls and other collapsible items in chat responses. These icons were previously removed in PR #296621.
Changes:
- Added a new accessibility setting with default value
falseto maintain current behavior - Implemented reactive icon visibility toggling using observables - no reload required
- Updated CSS rules across multiple files to conditionally show/hide icons based on the setting
- All collapsible content part subclasses now accept and forward
IConfigurationServicefor setting access
Reviewed changes
Copilot reviewed 12 out of 12 changed files in this pull request and generated 1 comment.
Show a summary per file
| File | Description |
|---|---|
src/vs/workbench/contrib/accessibility/browser/accessibilityConfiguration.ts |
Added ShowChatCheckmarks enum value and setting registration with default false |
src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatCollapsibleContentPart.ts |
Base class creates observable for setting, toggles show-checkmarks CSS class, accepts IConfigurationService parameter |
src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatToolInputOutputContentPart.ts |
Implements similar observable and class toggle logic for tool input/output parts |
src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatThinkingContentPart.ts |
Forwards IConfigurationService to base class |
src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatSubagentContentPart.ts |
Forwards IConfigurationService to base class |
src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatReferencesContentPart.ts |
Both ChatCollapsibleListContentPart and ChatUsedReferencesListContentPart forward IConfigurationService |
src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatHookContentPart.ts |
Forwards IConfigurationService to base class |
src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatCollapsibleMarkdownContentPart.ts |
Forwards IConfigurationService to base class |
src/vs/workbench/contrib/chat/browser/widget/media/chat.css |
Added CSS rules to hide leading icons by default and show them with .show-checkmarks class, restores gap and margin when checkmarks are shown |
src/vs/workbench/contrib/chat/browser/widget/chatContentParts/media/chatThinkingContent.css |
Added CSS rules for showing icons in thinking content when .show-checkmarks is present |
src/vs/workbench/contrib/chat/browser/widget/chatContentParts/media/chatConfirmationWidget.css |
Added CSS rules for hiding/showing icons in confirmation widgets based on setting |
src/vs/workbench/contrib/chat/test/browser/widget/chatContentParts/chatSubagentContentPart.test.ts |
Updated test to enable showCheckmarks setting before asserting icon visibility |
src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatToolInputOutputContentPart.ts
Outdated
Show resolved
Hide resolved
- Remove unused Codicon import from chatCollapsibleContentPart.ts - Add @IConfigurationService to ChatTerminalThinkingCollapsibleWrapper - Remove dead check element and its hover setup from chatToolInputOutputContentPart.ts (PR feedback) - Remove unused HoverStyle import
dmitrivMS
previously approved these changes
Feb 23, 2026
… parts - Set this.icon = Codicon.check on ChatCollapsibleListContentPart (references) - Set this.icon = Codicon.check on ChatTerminalThinkingCollapsibleWrapper when complete, and in markComplete() - Add .show-checkmarks CSS override for .progress-container check icons in chat.css and chatThinkingContent.css
dmitrivMS
previously approved these changes
Feb 23, 2026
- Toggle .show-checkmarks on the progress container for non-wrapper terminal tool parts via config change listener - Add .progress-container.show-checkmarks CSS selector for when the class is directly on the progress container element
Toggle .show-checkmarks on ChatToolProgressSubPart domNode so the check icon is visible on completed tool progress messages like 'Read file.ts' or 'Edited file.ts'.
Toggle .show-checkmarks on the code block pill container element so the check icon is visible next to 'Edited file.ts' status labels. Add CSS overrides in chatCodeBlockPill.css and chatThinkingContent.css.
joshspicer
approved these changes
Feb 24, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Add a boolean accessibility setting
accessibility.chat.showCheckmarksthat restores the checkmark icons removed in #296621 on completed tool calls and other collapsible items in chat responses.Fixes #297114
Behavior
false): Checkmarks are hidden — matches current behavior from Remove checkmarks from chat-used-context-label, add hover chevron #296621true): Checkmark and loading spinner icons are shown as the leading icon on collapsible content parts, tool input/output parts, and inside thinking/subagent boxesThe setting is reactive — toggling it immediately updates all existing chat parts without needing a window reload.
CleanShot.2026-02-23.at.15.12.51.mp4
Implementation
AccessibilityWorkbenchSettingId.ShowChatCheckmarksenum value and setting registration inaccessibilityConfiguration.tsChatCollapsibleContentPartbase class creates anobservableConfigValuefor the setting and toggles a.show-checkmarksCSS class on the containerChatCollapsibleInputOutputContentPartdoes the same via its ownautorunchat.css,chatConfirmationWidget.css, andchatThinkingContent.csshide the leading icon by default and show it when.show-checkmarksis presentChatCollapsibleMarkdownContentPart,ChatCollapsibleListContentPart,ChatThinkingContentPart,ChatSubagentContentPart,ChatHookContentPart) forwardIConfigurationServiceto the base classchatSubagentContentPart.test.tsto configure the setting for the icon assertion test