Change:
Type: <bBug</bWhen accessibility mode is off and focus is in the editor, pressing Alt +F1 produces the following announcement to screen reader users: "The editor is not accessible at this time. Press Alt+F1 for options.". If one is a new user of the product and screen reader mode doesn't turn on automatically, pressing the command which is supposed to help one get started just repeats the same announcement inviting the user to use Alt +F1 to obtain help. VS Code version: Code - OSS Dev 1.81.0 (Commit unknown, Date unknown) OS version: WindowsNT x64 10.0. Modes: <details<summarySystem Info</summary </details<!-- generated by issue reporter --
Thanks for creating this issue! It looks like you may be using an old version of VS Code, the latest stable release is 1.80.1. Please try upgrading to the latest version and checking whether this issue remains. Happy Coding!
I filed the bug while running VS Code from source. That's why version information doesn't reflect that I'm using the latest. Correct version information: Version: 1.81.0-insider (user setup) Commit: Date: 2023-07-18T05:36:41.526Z Electron: 22.3.14 ElectronBuildId: Chromium: 108.0.5359.215 16.17.1 V8: 10.8.168.25-electron.0 OS: Windows_NT x64 10.0.
Since the help menu is not accessible with that off, instead of we should say to enable screen reader mode.

Discussion:
import { ColorId, ITokenPresentation } from 'vs/editor/common/encodedTokenAttributes'; import { Color } from 'vs/base/common/color'; import { IME } from 'vs/base/common/ime'; <ins> import { IKeybindingService } from 'vs/platform/keybinding/common/keybinding'; </ins> export interface IVisibleRangeProvider { visibleRangeForPosition(position: Position): HorizontalPosition | null;

public readonly textAreaCover: FastDomNode<HTMLElement>; private readonly _textAreaInput: TextAreaInput; <del> constructor(context: ViewContext, viewController: ViewController, visibleRangeProvider: IVisibleRangeProvider) { </del> <ins> constructor( context: ViewContext, viewController: ViewController, visibleRangeProvider: IVisibleRangeProvider, @IKeybindingService private readonly _keybindingService: IKeybindingService ) { </ins> super(context); this._viewController = viewController;

private _getAriaLabel(options: IComputedEditorOptions): string { const accessibilitySupport = options.get(EditorOption.accessibilitySupport); if (accessibilitySupport === AccessibilitySupport.Disabled) { <del> return nls.localize('accessibilityOffAriaLabel', "The editor is not accessible at this time. Press {0} for options.", platform.isLinux ? 'Shift+Alt+F1' : 'Alt+F1'); </del> <ins> const toggleKeybindingLabel = this._keybindingService.lookupKeybinding('editor.action.toggleScreenReaderAccessibilityMode')?.getAriaLabel(); const runCommandKeybindingLabel = this._keybindingService.lookupKeybinding('workbench.action.showCommands')?.getAriaLabel(); const keybindingEditorKeybindingLabel = this._keybindingService.lookupKeybinding('workbench.action.openGlobalKeybindings')?.getAriaLabel(); const editorNotAccessibleMessage = nls.localize('accessibilityModeOff', "The editor is not accessible at this time."); if (toggleKeybindingLabel) { return nls.localize('accessibilityOffAriaLabel', "{0} To enable screen reader optimized mode, use {1}", editorNotAccessibleMessage, toggleKeybindingLabel); } else if (runCommandKeybindingLabel) { return nls.localize('accessibilityOffAriaLabelNoKb', "{0} To enable screen reader optimized mode, open the quick pick with {1} and run the command Toggle Screen Reader Accessibility Mode, which is currently not triggerable via keyboard.", editorNotAccessibleMessage, runCommandKeybindingLabel); } else if (keybindingEditorKeybindingLabel) { return nls.localize('accessibilityOffAriaLabelNoKbs', "{0} Please assign a keybinding for the command Toggle Screen Reader Accessibility Mode by accessing the keybindings editor with {1} and run it.", editorNotAccessibleMessage, keybindingEditorKeybindingLabel); } else { // SOS return editorNotAccessibleMessage; } </ins> } return options.get(EditorOption.ariaLabel); }

import { WhitespaceOverlay } from 'vs/editor/browser/viewParts/whitespace/whitespace'; import { GlyphMarginWidgets } from 'vs/editor/browser/viewParts/glyphMargin/glyphMargin'; import { GlyphMarginLane } from 'vs/editor/common/model'; <ins> import { IInstantiationService } from 'vs/platform/instantiation/common/instantiation'; </ins> export interface IContentWidgetData {

colorTheme: IColorTheme, model: IViewModel, userInputEvents: ViewUserInputEvents, <del> overflowWidgetsDomNode: HTMLElement | undefined </del> <ins> overflowWidgetsDomNode: HTMLElement | undefined, @IInstantiationService private readonly _instantiationService: IInstantiationService </ins> ) { super(); this._selections = [new Selection(1, 1, 1, 1)];

this._viewParts = []; // Keyboard handler <del> this._textAreaHandler = new TextAreaHandler(this._context, viewController, this._createTextAreaHandlerHelper()); </del> <ins> this._textAreaHandler = this._instantiationService.createInstance(TextAreaHandler, this._context, viewController, this._createTextAreaHandlerHelper()); </ins> this._viewParts.push(this._textAreaHandler); // These two dom nodes must be constructed up front, since references are needed in the layout provider (scrolling & co.)

this._themeService.getColorTheme(), viewModel, viewUserInputEvents, <del> this._overflowWidgetsDomNode </del> <ins> this._overflowWidgetsDomNode, this._instantiationService </ins> ); return [view, true];

id: 'editor.action.toggleScreenReaderAccessibilityMode', title: { value: nls.localize('toggleScreenReaderMode', "Toggle Screen Reader Accessibility Mode"), original: 'Toggle Screen Reader Accessibility Mode' }, f1: true, <del> keybinding: { </del> <ins> keybinding: [{ </ins> primary: KeyMod.CtrlCmd | KeyCode.KeyE, weight: KeybindingWeight.WorkbenchContrib + 10, when: accessibilityHelpIsShown <del> } </del> <ins> }, { primary: KeyMod.Alt | KeyCode.F3, weight: KeybindingWeight.WorkbenchContrib + 10, }] </ins> }); }