Path: blob/main/src/vs/platform/accessibility/common/accessibility.ts
3296 views
/*---------------------------------------------------------------------------------------------1* Copyright (c) Microsoft Corporation. All rights reserved.2* Licensed under the MIT License. See License.txt in the project root for license information.3*--------------------------------------------------------------------------------------------*/45import { Event } from '../../../base/common/event.js';6import { RawContextKey } from '../../contextkey/common/contextkey.js';7import { createDecorator } from '../../instantiation/common/instantiation.js';89export const IAccessibilityService = createDecorator<IAccessibilityService>('accessibilityService');1011export interface IAccessibilityService {12readonly _serviceBrand: undefined;1314readonly onDidChangeScreenReaderOptimized: Event<void>;15readonly onDidChangeReducedMotion: Event<void>;1617alwaysUnderlineAccessKeys(): Promise<boolean>;18isScreenReaderOptimized(): boolean;19isMotionReduced(): boolean;20getAccessibilitySupport(): AccessibilitySupport;21setAccessibilitySupport(accessibilitySupport: AccessibilitySupport): void;22alert(message: string): void;23status(message: string): void;24}2526export const enum AccessibilitySupport {27/**28* This should be the browser case where it is not known if a screen reader is attached or no.29*/30Unknown = 0,3132Disabled = 1,3334Enabled = 235}3637export const CONTEXT_ACCESSIBILITY_MODE_ENABLED = new RawContextKey<boolean>('accessibilityModeEnabled', false);3839export interface IAccessibilityInformation {40label: string;41role?: string;42}4344export function isAccessibilityInformation(obj: any): obj is IAccessibilityInformation {45return obj && typeof obj === 'object'46&& typeof obj.label === 'string'47&& (typeof obj.role === 'undefined' || typeof obj.role === 'string');48}4950export const ACCESSIBLE_VIEW_SHOWN_STORAGE_PREFIX = 'ACCESSIBLE_VIEW_SHOWN_';515253