@@ -336,6 +336,11 @@ export interface IEditorOptions {
336336 * Defaults to 'alt'
337337 */
338338 multiCursorModifier ?: 'ctrlCmd' | 'alt' ;
339+ /**
340+ * Configure the editor's accessibility support.
341+ * Defaults to 'auto'. It is best to leave this to 'auto'.
342+ */
343+ accessibilitySupport ?: 'auto' | 'off' | 'on' ;
339344 /**
340345 * Enable quick suggestions (shadow suggestions)
341346 * Defaults to true.
@@ -789,6 +794,7 @@ export interface IValidatedEditorOptions {
789794 readonly emptySelectionClipboard : boolean ;
790795 readonly useTabStops : boolean ;
791796 readonly multiCursorModifier : 'altKey' | 'ctrlKey' | 'metaKey' ;
797+ readonly accessibilitySupport : 'auto' | 'off' | 'on' ;
792798
793799 readonly viewInfo : InternalEditorViewOptions ;
794800 readonly contribInfo : EditorContribOptions ;
@@ -1429,6 +1435,7 @@ export class EditorOptionsValidator {
14291435 emptySelectionClipboard : _boolean ( opts . emptySelectionClipboard , defaults . emptySelectionClipboard ) ,
14301436 useTabStops : _boolean ( opts . useTabStops , defaults . useTabStops ) ,
14311437 multiCursorModifier : multiCursorModifier ,
1438+ accessibilitySupport : _stringSet < 'auto' | 'on' | 'off' > ( opts . accessibilitySupport , defaults . accessibilitySupport , [ 'auto' , 'on' , 'off' ] ) ,
14321439 viewInfo : viewInfo ,
14331440 contribInfo : contribInfo ,
14341441 } ;
@@ -1653,6 +1660,7 @@ export class InternalEditorOptionsFactory {
16531660 emptySelectionClipboard : opts . emptySelectionClipboard ,
16541661 useTabStops : opts . useTabStops ,
16551662 multiCursorModifier : opts . multiCursorModifier ,
1663+ accessibilitySupport : opts . accessibilitySupport ,
16561664
16571665 viewInfo : {
16581666 extraEditorClassName : opts . viewInfo . extraEditorClassName ,
@@ -1718,9 +1726,19 @@ export class InternalEditorOptionsFactory {
17181726
17191727 public static createInternalEditorOptions ( env : IEnvironmentalOptions , _opts : IValidatedEditorOptions ) {
17201728
1729+ let accessibilitySupport : platform . AccessibilitySupport ;
1730+ if ( _opts . accessibilitySupport === 'auto' ) {
1731+ // The editor reads the `accessibilitySupport` from the environment
1732+ accessibilitySupport = env . accessibilitySupport ;
1733+ } else if ( _opts . accessibilitySupport === 'on' ) {
1734+ accessibilitySupport = platform . AccessibilitySupport . Enabled ;
1735+ } else {
1736+ accessibilitySupport = platform . AccessibilitySupport . Disabled ;
1737+ }
1738+
17211739 // Disable some non critical features to get as best performance as possible
17221740 // See https://github.com/Microsoft/vscode/issues/26730
1723- const opts = this . _handlePerformanceCritical ( _opts , ( env . accessibilitySupport === platform . AccessibilitySupport . Enabled ) ) ;
1741+ const opts = this . _handlePerformanceCritical ( _opts , ( accessibilitySupport === platform . AccessibilitySupport . Enabled ) ) ;
17241742
17251743 let lineDecorationsWidth : number ;
17261744 if ( typeof opts . lineDecorationsWidth === 'string' && / ^ \d + ( \. \d + ) ? c h $ / . test ( opts . lineDecorationsWidth ) ) {
@@ -1760,7 +1778,7 @@ export class InternalEditorOptionsFactory {
17601778 const wordWrapColumn = opts . wordWrapColumn ;
17611779 const wordWrapMinified = opts . wordWrapMinified ;
17621780
1763- if ( env . accessibilitySupport === platform . AccessibilitySupport . Enabled ) {
1781+ if ( accessibilitySupport === platform . AccessibilitySupport . Enabled ) {
17641782 // See https://github.com/Microsoft/vscode/issues/27766
17651783 // Never enable wrapping when a screen reader is attached
17661784 // because arrow down etc. will not move the cursor in the way
@@ -1838,7 +1856,7 @@ export class InternalEditorOptionsFactory {
18381856 editorClassName : className ,
18391857 lineHeight : env . fontInfo . lineHeight ,
18401858 readOnly : opts . readOnly ,
1841- accessibilitySupport : env . accessibilitySupport ,
1859+ accessibilitySupport : accessibilitySupport ,
18421860 multiCursorModifier : opts . multiCursorModifier ,
18431861 wordSeparators : opts . wordSeparators ,
18441862 autoClosingBrackets : opts . autoClosingBrackets ,
@@ -2059,6 +2077,7 @@ export const EDITOR_DEFAULTS: IValidatedEditorOptions = {
20592077 emptySelectionClipboard : true ,
20602078 useTabStops : true ,
20612079 multiCursorModifier : 'altKey' ,
2080+ accessibilitySupport : 'auto' ,
20622081
20632082 viewInfo : {
20642083 extraEditorClassName : '' ,
0 commit comments