From cdaeb9ec438def7f99992ceddc07dc35a5481099 Mon Sep 17 00:00:00 2001 From: yuvipanda Date: Wed, 15 May 2019 12:15:31 -0700 Subject: [PATCH 1/2] Turn on accessibility in xterm.js This makes it work with screen readers much much better. See https://github.com/xtermjs/xterm.js/pull/1182 for more information --- packages/terminal/src/widget.ts | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/packages/terminal/src/widget.ts b/packages/terminal/src/widget.ts index cc29c4188fd9..da8de0d282c3 100644 --- a/packages/terminal/src/widget.ts +++ b/packages/terminal/src/widget.ts @@ -46,7 +46,11 @@ export class Terminal extends Widget implements ITerminal.ITerminal { this._options = { ...ITerminal.defaultOptions, ...options }; const { initialCommand, theme, ...other } = this._options; - const xtermOptions = { theme: Private.getXTermTheme(theme), ...other }; + const xtermOptions = { + theme: Private.getXTermTheme(theme), + screenReaderMode: true, + ...other + }; this.addClass(TERMINAL_CLASS); From 6a115b4c7d46a45c74b71d39e8a1e70049e68804 Mon Sep 17 00:00:00 2001 From: yuvipanda Date: Wed, 15 May 2019 14:54:06 -0700 Subject: [PATCH 2/2] terminal: Make screenReaderMode an option on ITerminal.IOptions --- packages/terminal/src/constants.ts | 10 +++++++++- packages/terminal/src/widget.ts | 1 - 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/packages/terminal/src/constants.ts b/packages/terminal/src/constants.ts index d7a9218c64b7..0718848454b4 100644 --- a/packages/terminal/src/constants.ts +++ b/packages/terminal/src/constants.ts @@ -96,6 +96,13 @@ export namespace ITerminal { * An optional command to run when the session starts. */ initialCommand: string; + + /** + * Wether to enable screen reader support. + * + * Set to false if you run into performance problems from DOM overhead + */ + screenReaderMode: boolean; } /** @@ -109,7 +116,8 @@ export namespace ITerminal { scrollback: 1000, shutdownOnClose: false, cursorBlink: true, - initialCommand: '' + initialCommand: '', + screenReaderMode: true }; /** diff --git a/packages/terminal/src/widget.ts b/packages/terminal/src/widget.ts index da8de0d282c3..4970c2981ef9 100644 --- a/packages/terminal/src/widget.ts +++ b/packages/terminal/src/widget.ts @@ -48,7 +48,6 @@ export class Terminal extends Widget implements ITerminal.ITerminal { const { initialCommand, theme, ...other } = this._options; const xtermOptions = { theme: Private.getXTermTheme(theme), - screenReaderMode: true, ...other };