From 0a06187dec1adfa4988bd32f9c25fcec1ae54663 Mon Sep 17 00:00:00 2001 From: meganrogge Date: Wed, 19 Apr 2023 13:42:10 -0700 Subject: [PATCH 1/6] add config --- .../editor/browser/widget/diffEditorWidget.ts | 12 +++++-- .../browser/standaloneCodeEditor.ts | 2 +- .../browser/accessibility.contribution.ts | 8 +++++ .../browser/accessibilityContribution.ts | 32 +++++++++++++++++++ 4 files changed, 50 insertions(+), 4 deletions(-) create mode 100644 src/vs/workbench/contrib/accessibility/browser/accessibility.contribution.ts create mode 100644 src/vs/workbench/contrib/accessibility/browser/accessibilityContribution.ts diff --git a/src/vs/editor/browser/widget/diffEditorWidget.ts b/src/vs/editor/browser/widget/diffEditorWidget.ts index 9efe95bcb58..c95a6058c9b 100644 --- a/src/vs/editor/browser/widget/diffEditorWidget.ts +++ b/src/vs/editor/browser/widget/diffEditorWidget.ts @@ -58,6 +58,7 @@ import { defaultInsertColor, defaultRemoveColor, diffDiagonalFill, diffInserted, import { registerIcon } from 'vs/platform/theme/common/iconRegistry'; import { getThemeTypeSelector, IColorTheme, IThemeService, registerThemingParticipant } from 'vs/platform/theme/common/themeService'; import { ThemeIcon } from 'vs/base/common/themables'; +import { IConfigurationService } from 'vs/platform/configuration/common/configuration'; export interface IDiffCodeEditorWidgetOptions { originalEditor?: ICodeEditorWidgetOptions; @@ -238,6 +239,8 @@ export class DiffEditorWidget extends Disposable implements editorBrowser.IDiffE private readonly _reviewPane: DiffReview; + private _configService: IConfigurationService; + constructor( domElement: HTMLElement, options: Readonly, @@ -249,11 +252,12 @@ export class DiffEditorWidget extends Disposable implements editorBrowser.IDiffE @IThemeService themeService: IThemeService, @INotificationService notificationService: INotificationService, @IContextMenuService contextMenuService: IContextMenuService, - @IEditorProgressService private readonly _editorProgressService: IEditorProgressService + @IEditorProgressService private readonly _editorProgressService: IEditorProgressService, + @IConfigurationService configurationService: IConfigurationService ) { super(); codeEditorService.willCreateDiffEditor(); - + this._configService = configurationService; this._documentDiffProvider = this._register(instantiationService.createInstance(WorkerBasedDocumentDiffProvider, options)); this._register(this._documentDiffProvider.onDidChange(e => this._beginUpdateDecorationsSoon())); @@ -1272,7 +1276,9 @@ export class DiffEditorWidget extends Disposable implements editorBrowser.IDiffE if (options.originalAriaLabel) { result.ariaLabel = options.originalAriaLabel; } - result.ariaLabel += ariaNavigationTip; + if (this._configService.getValue('accessibility.verbose.diff-editor')) { + result.ariaLabel += ariaNavigationTip; + } result.readOnly = !this._options.originalEditable; result.dropIntoEditor = { enabled: !result.readOnly }; result.extraEditorClassName = 'original-in-monaco-diff-editor'; diff --git a/src/vs/editor/standalone/browser/standaloneCodeEditor.ts b/src/vs/editor/standalone/browser/standaloneCodeEditor.ts index d5664fcb738..611499e559b 100644 --- a/src/vs/editor/standalone/browser/standaloneCodeEditor.ts +++ b/src/vs/editor/standalone/browser/standaloneCodeEditor.ts @@ -507,7 +507,7 @@ export class StandaloneDiffEditor extends DiffEditorWidget implements IStandalon themeService.setAutoDetectHighContrast(Boolean(options.autoDetectHighContrast)); } - super(domElement, options, {}, clipboardService, contextKeyService, instantiationService, codeEditorService, themeService, notificationService, contextMenuService, editorProgressService); + super(domElement, options, {}, clipboardService, contextKeyService, instantiationService, codeEditorService, themeService, notificationService, contextMenuService, editorProgressService, configurationService); this._configurationService = configurationService; this._standaloneThemeService = themeService; diff --git a/src/vs/workbench/contrib/accessibility/browser/accessibility.contribution.ts b/src/vs/workbench/contrib/accessibility/browser/accessibility.contribution.ts new file mode 100644 index 00000000000..0338c18d518 --- /dev/null +++ b/src/vs/workbench/contrib/accessibility/browser/accessibility.contribution.ts @@ -0,0 +1,8 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ + +import { registerAccessibilityConfiguration } from 'vs/workbench/contrib/accessibility/browser/accessibilityContribution'; + +registerAccessibilityConfiguration(); diff --git a/src/vs/workbench/contrib/accessibility/browser/accessibilityContribution.ts b/src/vs/workbench/contrib/accessibility/browser/accessibilityContribution.ts new file mode 100644 index 00000000000..a82c0fe121a --- /dev/null +++ b/src/vs/workbench/contrib/accessibility/browser/accessibilityContribution.ts @@ -0,0 +1,32 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ + +import { Extensions, IConfigurationNode, IConfigurationRegistry } from 'vs/platform/configuration/common/configurationRegistry'; +import { Registry } from 'vs/platform/registry/common/platform'; + +const configuration: IConfigurationNode = { + id: 'accessibility', + properties: { + 'verbose': { + properties: { + 'terminal': { + description: 'Provide information about how to access the terminal accessibility help menu when the terminal is focused', + type: 'boolean', + default: true + }, + 'diff-editor': { + description: 'Provide information about how to navigate changes in the diff editor when it is focused', + type: 'boolean', + default: true + } + } + } + } +}; + +export function registerAccessibilityConfiguration() { + const configurationRegistry = Registry.as(Extensions.Configuration); + configurationRegistry.registerConfiguration(configuration); +} From 612c4f17e87c320b3128dea22192378557ad8c7a Mon Sep 17 00:00:00 2001 From: meganrogge Date: Wed, 19 Apr 2023 14:19:35 -0700 Subject: [PATCH 2/6] fix issues --- build/lib/i18n.resources.json | 4 ++++ .../editor/browser/widget/diffEditorWidget.ts | 6 ++++-- .../widget/embeddedCodeEditorWidget.ts | 4 +++- .../common/configurationRegistry.ts | 5 ++++- .../browser/accessibilityContribution.ts | 19 ++++++++++++++----- .../terminal/browser/terminalInstance.ts | 2 +- src/vs/workbench/workbench.common.main.ts | 3 +++ 7 files changed, 33 insertions(+), 10 deletions(-) diff --git a/build/lib/i18n.resources.json b/build/lib/i18n.resources.json index b5ce6c6eabc..e49ba1d7778 100644 --- a/build/lib/i18n.resources.json +++ b/build/lib/i18n.resources.json @@ -513,6 +513,10 @@ { "name": "vs/workbench/services/localization", "project": "vscode-workbench" + }, + { + "name": "vs/workbench/contrib/accessibility", + "project": "vscode-workbench" } ] } diff --git a/src/vs/editor/browser/widget/diffEditorWidget.ts b/src/vs/editor/browser/widget/diffEditorWidget.ts index c95a6058c9b..e098ee62bad 100644 --- a/src/vs/editor/browser/widget/diffEditorWidget.ts +++ b/src/vs/editor/browser/widget/diffEditorWidget.ts @@ -1276,7 +1276,7 @@ export class DiffEditorWidget extends Disposable implements editorBrowser.IDiffE if (options.originalAriaLabel) { result.ariaLabel = options.originalAriaLabel; } - if (this._configService.getValue('accessibility.verbose.diff-editor')) { + if (this._configService.getValue('accessibility.verbosity.diff-editor')) { result.ariaLabel += ariaNavigationTip; } result.readOnly = !this._options.originalEditable; @@ -1296,7 +1296,9 @@ export class DiffEditorWidget extends Disposable implements editorBrowser.IDiffE if (options.modifiedAriaLabel) { result.ariaLabel = options.modifiedAriaLabel; } - result.ariaLabel += ariaNavigationTip; + if (this._configService.getValue('accessibility.verbosity.diff-editor')) { + result.ariaLabel += ariaNavigationTip; + } result.wordWrapOverride1 = this._options.diffWordWrap; result.revealHorizontalRightPadding = EditorOptions.revealHorizontalRightPadding.defaultValue + DiffEditorWidget.ENTIRE_DIFF_OVERVIEW_WIDTH; result.scrollbar!.verticalHasArrows = false; diff --git a/src/vs/editor/browser/widget/embeddedCodeEditorWidget.ts b/src/vs/editor/browser/widget/embeddedCodeEditorWidget.ts index 553470a8494..f7b27fa11f4 100644 --- a/src/vs/editor/browser/widget/embeddedCodeEditorWidget.ts +++ b/src/vs/editor/browser/widget/embeddedCodeEditorWidget.ts @@ -20,6 +20,7 @@ import { IClipboardService } from 'vs/platform/clipboard/common/clipboardService import { IEditorProgressService } from 'vs/platform/progress/common/progress'; import { ILanguageConfigurationService } from 'vs/editor/common/languages/languageConfigurationRegistry'; import { ILanguageFeaturesService } from 'vs/editor/common/services/languageFeatures'; +import { IConfigurationService } from 'vs/platform/configuration/common/configuration'; export class EmbeddedCodeEditorWidget extends CodeEditorWidget { @@ -85,8 +86,9 @@ export class EmbeddedDiffEditorWidget extends DiffEditorWidget { @IContextMenuService contextMenuService: IContextMenuService, @IClipboardService clipboardService: IClipboardService, @IEditorProgressService editorProgressService: IEditorProgressService, + @IConfigurationService configurationService: IConfigurationService ) { - super(domElement, parentEditor.getRawOptions(), codeEditorWidgetOptions, clipboardService, contextKeyService, instantiationService, codeEditorService, themeService, notificationService, contextMenuService, editorProgressService); + super(domElement, parentEditor.getRawOptions(), codeEditorWidgetOptions, clipboardService, contextKeyService, instantiationService, codeEditorService, themeService, notificationService, contextMenuService, editorProgressService, configurationService); this._parentEditor = parentEditor; this._overwriteOptions = options; diff --git a/src/vs/platform/configuration/common/configurationRegistry.ts b/src/vs/platform/configuration/common/configurationRegistry.ts index ed8e56d50c5..00e17cffd02 100644 --- a/src/vs/platform/configuration/common/configurationRegistry.ts +++ b/src/vs/platform/configuration/common/configurationRegistry.ts @@ -463,7 +463,7 @@ class ConfigurationRegistry implements IConfigurationRegistry { } private doRegisterConfigurations(configurations: IConfigurationNode[], validate: boolean, bucket: Set): void { - + console.log(configurations.map(c => c.id)); configurations.forEach(configuration => { this.validateAndRegisterProperties(configuration, validate, configuration.extensionInfo, configuration.restrictedProperties, undefined, bucket); @@ -501,6 +501,9 @@ class ConfigurationRegistry implements IConfigurationRegistry { private validateAndRegisterProperties(configuration: IConfigurationNode, validate: boolean = true, extensionInfo: IExtensionInfo | undefined, restrictedProperties: string[] | undefined, scope: ConfigurationScope = ConfigurationScope.WINDOW, bucket: Set): void { scope = types.isUndefinedOrNull(configuration.scope) ? scope : configuration.scope; const properties = configuration.properties; + if (configuration.id === 'accessibility') { + console.log('configuration'); + } if (properties) { for (const key in properties) { const property: IRegisteredConfigurationPropertySchema = properties[key]; diff --git a/src/vs/workbench/contrib/accessibility/browser/accessibilityContribution.ts b/src/vs/workbench/contrib/accessibility/browser/accessibilityContribution.ts index a82c0fe121a..015a1541435 100644 --- a/src/vs/workbench/contrib/accessibility/browser/accessibilityContribution.ts +++ b/src/vs/workbench/contrib/accessibility/browser/accessibilityContribution.ts @@ -3,27 +3,36 @@ * Licensed under the MIT License. See License.txt in the project root for license information. *--------------------------------------------------------------------------------------------*/ +import { localize } from 'vs/nls'; import { Extensions, IConfigurationNode, IConfigurationRegistry } from 'vs/platform/configuration/common/configurationRegistry'; import { Registry } from 'vs/platform/registry/common/platform'; const configuration: IConfigurationNode = { id: 'accessibility', + title: localize('accessibilityConfigurationTitle', "Accessibility"), + type: 'object', properties: { - 'verbose': { + 'verbosity': { + type: 'object', + description: localize('verbosity.description', 'Provide helpful screen reader information for certain UI elements'), properties: { 'terminal': { - description: 'Provide information about how to access the terminal accessibility help menu when the terminal is focused', + description: localize('verbose.terminal.description', 'Provide information about how to access the terminal accessibility help menu when the terminal is focused'), type: 'boolean', default: true }, 'diff-editor': { - description: 'Provide information about how to navigate changes in the diff editor when it is focused', + description: localize('verbose.diff-editor.description', 'Provide information about how to navigate changes in the diff editor when it is focused'), type: 'boolean', default: true } + }, + default: { + 'terminal': true, + 'diff-editor': true } - } - } + }, + }, }; export function registerAccessibilityConfiguration() { diff --git a/src/vs/workbench/contrib/terminal/browser/terminalInstance.ts b/src/vs/workbench/contrib/terminal/browser/terminalInstance.ts index ef24696f885..718e809b72e 100644 --- a/src/vs/workbench/contrib/terminal/browser/terminalInstance.ts +++ b/src/vs/workbench/contrib/terminal/browser/terminalInstance.ts @@ -1941,7 +1941,7 @@ export class TerminalInstance extends Disposable implements ITerminalInstance { labelParts.push(nls.localize('terminalScreenReaderMode', "Run the command: Toggle Screen Reader Accessibility Mode for an optimized screen reader experience")); } const accessibilityHelpKeybinding = this._keybindingService.lookupKeybinding(TerminalCommandId.ShowTerminalAccessibilityHelp)?.getLabel(); - if (accessibilityHelpKeybinding) { + if (this._configurationService.getValue('accessibility.verbosity.terminal') && accessibilityHelpKeybinding) { labelParts.push(nls.localize('terminalHelpAriaLabel', "Use {0} for terminal accessibility help", accessibilityHelpKeybinding)); } xterm.textarea.setAttribute('aria-label', labelParts.join('\n')); diff --git a/src/vs/workbench/workbench.common.main.ts b/src/vs/workbench/workbench.common.main.ts index c010c73133d..2aa3bf24396 100644 --- a/src/vs/workbench/workbench.common.main.ts +++ b/src/vs/workbench/workbench.common.main.ts @@ -362,4 +362,7 @@ import 'vs/workbench/contrib/deprecatedExtensionMigrator/browser/deprecatedExten // Bracket Pair Colorizer 2 Telemetry import 'vs/workbench/contrib/bracketPairColorizer2Telemetry/browser/bracketPairColorizer2Telemetry.contribution'; +// Accessibility +import 'vs/workbench/contrib/accessibility/browser/accessibility.contribution'; + //#endregion From f540366768407efc67d0fd44aba2d9d0e41f1602 Mon Sep 17 00:00:00 2001 From: meganrogge Date: Wed, 19 Apr 2023 14:52:21 -0700 Subject: [PATCH 3/6] react to config changes --- .vscode/settings.json | 4 ++- .../editor/browser/widget/diffEditorWidget.ts | 23 ++++++++++---- .../common/configurationRegistry.ts | 4 --- .../browser/accessibilityContribution.ts | 31 +++++++------------ .../terminal/browser/terminalInstance.ts | 3 ++ 5 files changed, 34 insertions(+), 31 deletions(-) diff --git a/.vscode/settings.json b/.vscode/settings.json index ef0a853fd4b..7df5c1acd3c 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -125,5 +125,7 @@ ], "application.experimental.rendererProfiling": true, "editor.experimental.asyncTokenization": true, - "editor.experimental.asyncTokenizationVerification": true + "editor.experimental.asyncTokenizationVerification": true, + "verbosity.diff-editor": false, + "verbosity.terminal": false } diff --git a/src/vs/editor/browser/widget/diffEditorWidget.ts b/src/vs/editor/browser/widget/diffEditorWidget.ts index e098ee62bad..543582fdd5f 100644 --- a/src/vs/editor/browser/widget/diffEditorWidget.ts +++ b/src/vs/editor/browser/widget/diffEditorWidget.ts @@ -258,6 +258,11 @@ export class DiffEditorWidget extends Disposable implements editorBrowser.IDiffE super(); codeEditorService.willCreateDiffEditor(); this._configService = configurationService; + this._register(this._configService.onDidChangeConfiguration(e => { + if (e.affectsConfiguration('accessibility.verbosity.diff-editor')) { + this.updateOptions(this._options); + } + })); this._documentDiffProvider = this._register(instantiationService.createInstance(WorkerBasedDocumentDiffProvider, options)); this._register(this._documentDiffProvider.onDidChange(e => this._beginUpdateDecorationsSoon())); @@ -1276,9 +1281,7 @@ export class DiffEditorWidget extends Disposable implements editorBrowser.IDiffE if (options.originalAriaLabel) { result.ariaLabel = options.originalAriaLabel; } - if (this._configService.getValue('accessibility.verbosity.diff-editor')) { - result.ariaLabel += ariaNavigationTip; - } + this._updateAriaLabel(result); result.readOnly = !this._options.originalEditable; result.dropIntoEditor = { enabled: !result.readOnly }; result.extraEditorClassName = 'original-in-monaco-diff-editor'; @@ -1291,14 +1294,22 @@ export class DiffEditorWidget extends Disposable implements editorBrowser.IDiffE }; } + private _updateAriaLabel(options: IEditorConstructionOptions): void { + let ariaLabel = options.ariaLabel; + if (this._configService.getValue('accessibility.verbosity.diff-editor')) { + ariaLabel += ariaNavigationTip; + } else if (ariaLabel) { + ariaLabel = ariaLabel.replaceAll(ariaNavigationTip, ''); + } + options.ariaLabel = ariaLabel; + } + private _adjustOptionsForRightHandSide(options: Readonly): IEditorConstructionOptions { const result = this._adjustOptionsForSubEditor(options); if (options.modifiedAriaLabel) { result.ariaLabel = options.modifiedAriaLabel; } - if (this._configService.getValue('accessibility.verbosity.diff-editor')) { - result.ariaLabel += ariaNavigationTip; - } + this._updateAriaLabel(result); result.wordWrapOverride1 = this._options.diffWordWrap; result.revealHorizontalRightPadding = EditorOptions.revealHorizontalRightPadding.defaultValue + DiffEditorWidget.ENTIRE_DIFF_OVERVIEW_WIDTH; result.scrollbar!.verticalHasArrows = false; diff --git a/src/vs/platform/configuration/common/configurationRegistry.ts b/src/vs/platform/configuration/common/configurationRegistry.ts index 00e17cffd02..c619b7a9edc 100644 --- a/src/vs/platform/configuration/common/configurationRegistry.ts +++ b/src/vs/platform/configuration/common/configurationRegistry.ts @@ -463,7 +463,6 @@ class ConfigurationRegistry implements IConfigurationRegistry { } private doRegisterConfigurations(configurations: IConfigurationNode[], validate: boolean, bucket: Set): void { - console.log(configurations.map(c => c.id)); configurations.forEach(configuration => { this.validateAndRegisterProperties(configuration, validate, configuration.extensionInfo, configuration.restrictedProperties, undefined, bucket); @@ -501,9 +500,6 @@ class ConfigurationRegistry implements IConfigurationRegistry { private validateAndRegisterProperties(configuration: IConfigurationNode, validate: boolean = true, extensionInfo: IExtensionInfo | undefined, restrictedProperties: string[] | undefined, scope: ConfigurationScope = ConfigurationScope.WINDOW, bucket: Set): void { scope = types.isUndefinedOrNull(configuration.scope) ? scope : configuration.scope; const properties = configuration.properties; - if (configuration.id === 'accessibility') { - console.log('configuration'); - } if (properties) { for (const key in properties) { const property: IRegisteredConfigurationPropertySchema = properties[key]; diff --git a/src/vs/workbench/contrib/accessibility/browser/accessibilityContribution.ts b/src/vs/workbench/contrib/accessibility/browser/accessibilityContribution.ts index 015a1541435..8e58f9799ea 100644 --- a/src/vs/workbench/contrib/accessibility/browser/accessibilityContribution.ts +++ b/src/vs/workbench/contrib/accessibility/browser/accessibilityContribution.ts @@ -7,32 +7,23 @@ import { localize } from 'vs/nls'; import { Extensions, IConfigurationNode, IConfigurationRegistry } from 'vs/platform/configuration/common/configurationRegistry'; import { Registry } from 'vs/platform/registry/common/platform'; + const configuration: IConfigurationNode = { id: 'accessibility', title: localize('accessibilityConfigurationTitle', "Accessibility"), type: 'object', properties: { - 'verbosity': { - type: 'object', - description: localize('verbosity.description', 'Provide helpful screen reader information for certain UI elements'), - properties: { - 'terminal': { - description: localize('verbose.terminal.description', 'Provide information about how to access the terminal accessibility help menu when the terminal is focused'), - type: 'boolean', - default: true - }, - 'diff-editor': { - description: localize('verbose.diff-editor.description', 'Provide information about how to navigate changes in the diff editor when it is focused'), - type: 'boolean', - default: true - } - }, - default: { - 'terminal': true, - 'diff-editor': true - } + 'accessibility.verbosity.terminal': { + description: localize('verbosity.terminal.description', 'Provide information about how to access the terminal accessibility help menu when the terminal is focused'), + type: 'boolean', + default: true }, - }, + 'accessibility.verbosity.diff-editor': { + description: localize('verbosity.diff-editor.description', 'Provide information about how to navigate changes in the diff editor when it is focused'), + type: 'boolean', + default: true + } + } }; export function registerAccessibilityConfiguration() { diff --git a/src/vs/workbench/contrib/terminal/browser/terminalInstance.ts b/src/vs/workbench/contrib/terminal/browser/terminalInstance.ts index 718e809b72e..473c8789926 100644 --- a/src/vs/workbench/contrib/terminal/browser/terminalInstance.ts +++ b/src/vs/workbench/contrib/terminal/browser/terminalInstance.ts @@ -523,6 +523,9 @@ export class TerminalInstance extends Disposable implements ITerminalInstance { }); this._register(this._configurationService.onDidChangeConfiguration(async e => { + if (e.affectsConfiguration('accessibility.verbosity.terminal')) { + this._setAriaLabel(this.xterm?.raw, this._instanceId, this.title); + } if (e.affectsConfiguration('terminal.integrated')) { this.updateConfig(); this.setVisible(this._isVisible); From 365ce5392f730049fab7e7111514412032c32eff Mon Sep 17 00:00:00 2001 From: Megan Rogge Date: Wed, 19 Apr 2023 14:56:20 -0700 Subject: [PATCH 4/6] Update .vscode/settings.json --- .vscode/settings.json | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/.vscode/settings.json b/.vscode/settings.json index 7df5c1acd3c..ef0a853fd4b 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -125,7 +125,5 @@ ], "application.experimental.rendererProfiling": true, "editor.experimental.asyncTokenization": true, - "editor.experimental.asyncTokenizationVerification": true, - "verbosity.diff-editor": false, - "verbosity.terminal": false + "editor.experimental.asyncTokenizationVerification": true } From 64bfe2183aebac6523456f92bee3ce5b7d478884 Mon Sep 17 00:00:00 2001 From: meganrogge Date: Wed, 19 Apr 2023 14:53:19 -0700 Subject: [PATCH 5/6] add accessibility tags --- .../accessibility/browser/accessibilityContribution.ts | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/vs/workbench/contrib/accessibility/browser/accessibilityContribution.ts b/src/vs/workbench/contrib/accessibility/browser/accessibilityContribution.ts index 8e58f9799ea..6f63998ec5c 100644 --- a/src/vs/workbench/contrib/accessibility/browser/accessibilityContribution.ts +++ b/src/vs/workbench/contrib/accessibility/browser/accessibilityContribution.ts @@ -7,7 +7,6 @@ import { localize } from 'vs/nls'; import { Extensions, IConfigurationNode, IConfigurationRegistry } from 'vs/platform/configuration/common/configurationRegistry'; import { Registry } from 'vs/platform/registry/common/platform'; - const configuration: IConfigurationNode = { id: 'accessibility', title: localize('accessibilityConfigurationTitle', "Accessibility"), @@ -16,12 +15,14 @@ const configuration: IConfigurationNode = { 'accessibility.verbosity.terminal': { description: localize('verbosity.terminal.description', 'Provide information about how to access the terminal accessibility help menu when the terminal is focused'), type: 'boolean', - default: true + default: true, + tags: ['accessibility'] }, 'accessibility.verbosity.diff-editor': { description: localize('verbosity.diff-editor.description', 'Provide information about how to navigate changes in the diff editor when it is focused'), type: 'boolean', - default: true + default: true, + tags: ['accessibility'] } } }; From c78f1bc690ff2cc6544556512993d4d6c4b47a3a Mon Sep 17 00:00:00 2001 From: meganrogge Date: Wed, 19 Apr 2023 15:14:31 -0700 Subject: [PATCH 6/6] config service --- src/vs/editor/browser/widget/diffEditorWidget.ts | 9 +++------ src/vs/editor/standalone/browser/standaloneCodeEditor.ts | 6 +++--- 2 files changed, 6 insertions(+), 9 deletions(-) diff --git a/src/vs/editor/browser/widget/diffEditorWidget.ts b/src/vs/editor/browser/widget/diffEditorWidget.ts index 543582fdd5f..b7af22029c2 100644 --- a/src/vs/editor/browser/widget/diffEditorWidget.ts +++ b/src/vs/editor/browser/widget/diffEditorWidget.ts @@ -239,8 +239,6 @@ export class DiffEditorWidget extends Disposable implements editorBrowser.IDiffE private readonly _reviewPane: DiffReview; - private _configService: IConfigurationService; - constructor( domElement: HTMLElement, options: Readonly, @@ -253,12 +251,11 @@ export class DiffEditorWidget extends Disposable implements editorBrowser.IDiffE @INotificationService notificationService: INotificationService, @IContextMenuService contextMenuService: IContextMenuService, @IEditorProgressService private readonly _editorProgressService: IEditorProgressService, - @IConfigurationService configurationService: IConfigurationService + @IConfigurationService private readonly _configurationService: IConfigurationService ) { super(); codeEditorService.willCreateDiffEditor(); - this._configService = configurationService; - this._register(this._configService.onDidChangeConfiguration(e => { + this._register(this._configurationService.onDidChangeConfiguration(e => { if (e.affectsConfiguration('accessibility.verbosity.diff-editor')) { this.updateOptions(this._options); } @@ -1296,7 +1293,7 @@ export class DiffEditorWidget extends Disposable implements editorBrowser.IDiffE private _updateAriaLabel(options: IEditorConstructionOptions): void { let ariaLabel = options.ariaLabel; - if (this._configService.getValue('accessibility.verbosity.diff-editor')) { + if (this._configurationService.getValue('accessibility.verbosity.diff-editor')) { ariaLabel += ariaNavigationTip; } else if (ariaLabel) { ariaLabel = ariaLabel.replaceAll(ariaNavigationTip, ''); diff --git a/src/vs/editor/standalone/browser/standaloneCodeEditor.ts b/src/vs/editor/standalone/browser/standaloneCodeEditor.ts index 611499e559b..2789c2fa883 100644 --- a/src/vs/editor/standalone/browser/standaloneCodeEditor.ts +++ b/src/vs/editor/standalone/browser/standaloneCodeEditor.ts @@ -481,7 +481,7 @@ export class StandaloneEditor extends StandaloneCodeEditor implements IStandalon export class StandaloneDiffEditor extends DiffEditorWidget implements IStandaloneDiffEditor { - private readonly _configurationService: IConfigurationService; + private readonly _updatedConfigurationService: IConfigurationService; private readonly _standaloneThemeService: IStandaloneThemeService; constructor( @@ -509,7 +509,7 @@ export class StandaloneDiffEditor extends DiffEditorWidget implements IStandalon super(domElement, options, {}, clipboardService, contextKeyService, instantiationService, codeEditorService, themeService, notificationService, contextMenuService, editorProgressService, configurationService); - this._configurationService = configurationService; + this._updatedConfigurationService = configurationService; this._standaloneThemeService = themeService; this._register(themeDomRegistration); @@ -520,7 +520,7 @@ export class StandaloneDiffEditor extends DiffEditorWidget implements IStandalon } public override updateOptions(newOptions: Readonly): void { - updateConfigurationService(this._configurationService, newOptions, true); + updateConfigurationService(this._updatedConfigurationService, newOptions, true); if (typeof newOptions.theme === 'string') { this._standaloneThemeService.setTheme(newOptions.theme); }