提交 c447fc0d 编写于 作者: D Daniel Imms

Fix terminal screen reader support when set to auto

Part of #59794
上级 f4cd44f6
......@@ -3,6 +3,7 @@
* Licensed under the MIT License. See License.txt in the project root for license information.
*--------------------------------------------------------------------------------------------*/
import * as browser from 'vs/base/browser/browser';
import * as lifecycle from 'vs/base/common/lifecycle';
import * as nls from 'vs/nls';
import * as platform from 'vs/base/common/platform';
......@@ -31,7 +32,6 @@ import { IClipboardService } from 'vs/platform/clipboard/common/clipboardService
import { ansiColorIdentifiers, TERMINAL_BACKGROUND_COLOR, TERMINAL_FOREGROUND_COLOR, TERMINAL_CURSOR_FOREGROUND_COLOR, TERMINAL_CURSOR_BACKGROUND_COLOR, TERMINAL_SELECTION_BACKGROUND_COLOR } from 'vs/workbench/parts/terminal/common/terminalColorRegistry';
import { PANEL_BACKGROUND } from 'vs/workbench/common/theme';
import { IConfigurationService, ConfigurationTarget } from 'vs/platform/configuration/common/configuration';
import { IEditorOptions } from 'vs/editor/common/config/editorOptions';
import { INotificationService, Severity, IPromptChoice } from 'vs/platform/notification/common/notification';
import { ILogService } from 'vs/platform/log/common/log';
import { TerminalCommandTracker } from 'vs/workbench/parts/terminal/node/terminalCommandTracker';
......@@ -399,7 +399,6 @@ export class TerminalInstance implements ITerminalInstance {
Terminal.strings.promptLabel = nls.localize('terminal.integrated.a11yPromptLabel', 'Terminal input');
Terminal.strings.tooMuchOutput = nls.localize('terminal.integrated.a11yTooMuchOutput', 'Too much output to announce, navigate to rows manually to read');
}
const accessibilitySupport = this._configurationService.getValue<IEditorOptions>('editor').accessibilitySupport;
const font = this._configHelper.getFont(undefined, true);
const config = this._configHelper.config;
this._xterm = new Terminal({
......@@ -413,7 +412,7 @@ export class TerminalInstance implements ITerminalInstance {
letterSpacing: font.letterSpacing,
lineHeight: font.lineHeight,
bellStyle: config.enableBell ? 'sound' : 'none',
screenReaderMode: accessibilitySupport === 'on',
screenReaderMode: this._isScreenReaderOptimized(),
macOptionIsMeta: config.macOptionIsMeta,
macOptionClickForcesSelection: config.macOptionClickForcesSelection,
rightClickSelectsWord: config.rightClickBehavior === 'selectWord',
......@@ -450,6 +449,12 @@ export class TerminalInstance implements ITerminalInstance {
this._disposables.push(this._themeService.onThemeChange(theme => this._updateTheme(theme)));
}
private _isScreenReaderOptimized(): boolean {
const detected = browser.getAccessibilitySupport() === platform.AccessibilitySupport.Enabled;
const config = this._configurationService.getValue('editor.accessibilitySupport');
return config === 'on' || (config === 'auto' && detected);
}
public reattachToElement(container: HTMLElement): void {
if (!this._wrapperElement) {
throw new Error('The terminal instance has not been attached to a container yet');
......@@ -1110,8 +1115,7 @@ export class TerminalInstance implements ITerminalInstance {
}
public updateAccessibilitySupport(): void {
const value = this._configurationService.getValue('editor.accessibilitySupport');
this._xterm.setOption('screenReaderMode', value === 'on');
this._xterm.setOption('screenReaderMode', this._isScreenReaderOptimized());
}
private _setCursorBlink(blink: boolean): void {
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册