diff --git a/src/vs/workbench/contrib/accessibility/browser/accessibilityContribution.ts b/src/vs/workbench/contrib/accessibility/browser/accessibilityContribution.ts index 5ea4c0c3168..3f808899f9d 100644 --- a/src/vs/workbench/contrib/accessibility/browser/accessibilityContribution.ts +++ b/src/vs/workbench/contrib/accessibility/browser/accessibilityContribution.ts @@ -11,7 +11,8 @@ export const enum AccessibilityVerbositySettingId { Terminal = 'accessibility.verbosity.terminal', DiffEditor = 'accessibility.verbosity.diff-editor', Chat = 'accessibility.verbosity.chat', - InteractiveEditor = 'accessibility.verbosity.interactiveEditor' + InteractiveEditor = 'accessibility.verbosity.interactiveEditor', + KeybindingsEditor = 'accessibility.verbosity.keybindingsEditor' } const configuration: IConfigurationNode = { @@ -42,6 +43,12 @@ const configuration: IConfigurationNode = { type: 'boolean', default: true, tags: ['accessibility'] + }, + [AccessibilityVerbositySettingId.KeybindingsEditor]: { + description: localize('verbosity.keybindingsEditor.description', 'Provide information about how to change a keybinding in the keybindings editor when a row is focused'), + type: 'boolean', + default: true, + tags: ['accessibility'] } } }; diff --git a/src/vs/workbench/contrib/preferences/browser/keybindingsEditor.ts b/src/vs/workbench/contrib/preferences/browser/keybindingsEditor.ts index 2b04af2322c..0b6789a47a1 100644 --- a/src/vs/workbench/contrib/preferences/browser/keybindingsEditor.ts +++ b/src/vs/workbench/contrib/preferences/browser/keybindingsEditor.ts @@ -54,6 +54,8 @@ import { isString } from 'vs/base/common/types'; import { SuggestEnabledInput } from 'vs/workbench/contrib/codeEditor/browser/suggestEnabledInput/suggestEnabledInput'; import { CompletionItemKind } from 'vs/editor/common/languages'; import { settingsTextInputBorder } from 'vs/workbench/contrib/preferences/common/settingsEditorColorRegistry'; +import { IConfigurationService } from 'vs/platform/configuration/common/configuration'; +import { AccessibilityVerbositySettingId } from 'vs/workbench/contrib/accessibility/browser/accessibilityContribution'; const $ = DOM.$; @@ -112,7 +114,8 @@ export class KeybindingsEditor extends EditorPane implements IKeybindingsEditorP @IClipboardService private readonly clipboardService: IClipboardService, @IInstantiationService private readonly instantiationService: IInstantiationService, @IEditorService private readonly editorService: IEditorService, - @IStorageService storageService: IStorageService + @IStorageService storageService: IStorageService, + @IConfigurationService private readonly configurationService: IConfigurationService ) { super(KeybindingsEditor.ID, telemetryService, themeService, storageService); this.delayedFiltering = new Delayer(300); @@ -474,7 +477,7 @@ export class KeybindingsEditor extends EditorPane implements IKeybindingsEditorP { identityProvider: { getId: (e: IKeybindingItemEntry) => e.id }, horizontalScrolling: false, - accessibilityProvider: new AccessibilityProvider(), + accessibilityProvider: new AccessibilityProvider(this.configurationService), keyboardNavigationLabelProvider: { getKeyboardNavigationLabel: (e: IKeybindingItemEntry) => e.keybindingItem.commandLabel || e.keybindingItem.command }, overrideStyles: { listBackground: editorBackground @@ -1178,6 +1181,8 @@ class WhenColumnRenderer implements ITableRenderer { + constructor(private readonly configurationService: IConfigurationService) { } + getWidgetAriaLabel(): string { return localize('keybindingsLabel', "Keybindings"); } @@ -1187,6 +1192,7 @@ class AccessibilityProvider implements IListAccessibilityProvider