Path: blob/main/src/vs/platform/accessibility/common/accessibility.ts
5243 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: unknown): obj is IAccessibilityInformation {45if (!obj || typeof obj !== 'object') {46return false;47}4849const candidate = obj as Partial<IAccessibilityInformation>;50return typeof candidate.label === 'string'51&& (typeof candidate.role === 'undefined' || typeof candidate.role === 'string');52}5354export const ACCESSIBLE_VIEW_SHOWN_STORAGE_PREFIX = 'ACCESSIBLE_VIEW_SHOWN_';555657