Change:
Type: <bBug</bRestarted Insiders for an update and Screen Reader mode is suddenly on, including audio cues while typing. I have no idea how to disable it, as the status bar icon is clickable (changes color), but doesn't do anything. (Edit: I eventually found command, but I don't see any logs that I used that command before) cc who recommended as assignee. ! VS Code version: Code - Insiders 1.84.0-insider (, 2023-10-24T05:35:10.309Z) OS version: Darwin x64 23.0.0 Modes: <details<summarySystem Info</summary </details<!-- generated by issue reporter --
not aware of any changes on your end, so i'm just reverting the only relevant PR
Just launched a fresh Insiders and got this notification: ! I do see it detecting a11y for me in telemetry events …` Version: , 2023-10-25T05:37:06.169Z (9 hrs ago)
Indeed then, it seems an issue with detection , not sure why this would be showing otherwise as nothing's changed on my side.
Or something you're running
No changes have been made in the runtime with respect to a11y detection, on macOS the runtime can enter a11y mode in the following 2 scenarios, 1) Setting attribute on the application which is usually done by screen readers (VoiceOver) 2) Setting attribute on the applications which is usually done by third party window managers are you using any custom window tiling managers ? List under can give a hint
I do run window managers, yes. So, I guess I'll close this for now as it might have been an update, like Bartender 5.

Discussion:
*--------------------------------------------------------------------------------------------*/ import { Disposable, MutableDisposable } from 'vs/base/common/lifecycle'; <ins> import { Event } from 'vs/base/common/event'; import Severity from 'vs/base/common/severity'; </ins> import { localize } from 'vs/nls'; import { IAccessibilityService } from 'vs/platform/accessibility/common/accessibility'; <del> import { IConfigurationService } from 'vs/platform/configuration/common/configuration'; </del> <ins> import { CommandsRegistry } from 'vs/platform/commands/common/commands'; import { ConfigurationTarget, IConfigurationService } from 'vs/platform/configuration/common/configuration'; import { INotificationHandle, INotificationService, NotificationPriority } from 'vs/platform/notification/common/notification'; </ins> import { IWorkbenchContribution } from 'vs/workbench/common/contributions'; import { IStatusbarEntryAccessor, IStatusbarService, StatusbarAlignment } from 'vs/workbench/services/statusbar/browser/statusbar'; export class AccessibilityStatus extends Disposable implements IWorkbenchContribution { <ins> private screenReaderNotification: INotificationHandle | null = null; private promptedScreenReader: boolean = false; </ins> private readonly screenReaderModeElement = this._register(new MutableDisposable<IStatusbarEntryAccessor>()); constructor( <del> @IConfigurationService configurationService: IConfigurationService, </del> <ins> @IConfigurationService private readonly configurationService: IConfigurationService, @INotificationService private readonly notificationService: INotificationService, </ins> @IAccessibilityService private readonly _accessibilityService: IAccessibilityService, @IStatusbarService private readonly statusbarService: IStatusbarService ) {

this.onScreenReaderModeChange(); } })); <ins> CommandsRegistry.registerCommand({ id: 'showEditorScreenReaderNotification', handler: () => this.showScreenReaderNotification() }); </ins> this.updateScreenReaderModeElement(this._accessibilityService.isScreenReaderOptimized()); } <ins> private showScreenReaderNotification(): void { this.screenReaderNotification = this.notificationService.prompt( Severity.Info, localize('screenReaderDetectedExplanation.question', "Are you using a screen reader to operate VS Code?"), [{ label: localize('screenReaderDetectedExplanation.answerYes', "Yes"), run: () => { this.configurationService.updateValue('editor.accessibilitySupport', 'on', ConfigurationTarget.USER); } }, { label: localize('screenReaderDetectedExplanation.answerNo', "No"), run: () => { this.configurationService.updateValue('editor.accessibilitySupport', 'off', ConfigurationTarget.USER); } }], { sticky: true, priority: NotificationPriority.URGENT } ); Event.once(this.screenReaderNotification.onDidClose)(() => this.screenReaderNotification = null); } </ins> private updateScreenReaderModeElement(visible: boolean): void { if (visible) { if (!this.screenReaderModeElement.value) {

name: localize('status.editor.screenReaderMode', "Screen Reader Mode"), text, ariaLabel: text, <ins> command: 'showEditorScreenReaderNotification', </ins> kind: 'prominent' }, 'status.editor.screenReaderMode', StatusbarAlignment.RIGHT, 100.6); }

} private onScreenReaderModeChange(): void { <ins> // We only support text based editors const screenReaderDetected = this._accessibilityService.isScreenReaderOptimized(); if (screenReaderDetected) { const screenReaderConfiguration = this.configurationService.getValue('editor.accessibilitySupport'); if (screenReaderConfiguration === 'auto') { if (!this.promptedScreenReader) { this.promptedScreenReader = true; setTimeout(() => this.showScreenReaderNotification(), 100); } } } if (this.screenReaderNotification) { this.screenReaderNotification.close(); } </ins> this.updateScreenReaderModeElement(this._accessibilityService.isScreenReaderOptimized()); } }