diff --git a/addons/xterm-addon-search/src/SearchAddon.ts b/addons/xterm-addon-search/src/SearchAddon.ts index 57f115f8e..8fcfc6908 100644 --- a/addons/xterm-addon-search/src/SearchAddon.ts +++ b/addons/xterm-addon-search/src/SearchAddon.ts @@ -38,7 +38,7 @@ export class SearchAddon implements ITerminalAddon { this._terminal = terminal; } - public dispose(): void {} + public dispose(): void { } /** * Find the next instance of the term, then scroll to and select it. If it @@ -234,7 +234,7 @@ export class SearchAddon implements ITerminalAddon { */ private _isWholeWord(searchIndex: number, line: string, term: string): boolean { return (((searchIndex === 0) || (NON_WORD_CHARACTERS.indexOf(line[searchIndex - 1]) !== -1)) && - (((searchIndex + term.length) === line.length) || (NON_WORD_CHARACTERS.indexOf(line[searchIndex + term.length]) !== -1))); + (((searchIndex + term.length) === line.length) || (NON_WORD_CHARACTERS.indexOf(line[searchIndex + term.length]) !== -1))); } /** @@ -373,7 +373,9 @@ export class SearchAddon implements ITerminalAddon { return false; } terminal.select(result.col, result.row, result.term.length); - terminal.scrollLines(result.row - terminal.buffer.viewportY); + let scroll = result.row - terminal.buffer.viewportY; + scroll = scroll - Math.floor(terminal.rows / 2); + terminal.scrollLines(scroll); return true; } } diff --git a/src/AccessibilityManager.ts b/src/AccessibilityManager.ts index 9124a4775..915a86d60 100644 --- a/src/AccessibilityManager.ts +++ b/src/AccessibilityManager.ts @@ -258,7 +258,11 @@ export class AccessibilityManager extends Disposable { const posInSet = (buffer.ydisp + i + 1).toString(); const element = this._rowElements[i]; if (element) { - element.textContent = lineData.length === 0 ? Strings.blankLine : lineData; + if (lineData.length === 0) { + element.innerHTML = ' '; + } else { + element.textContent = lineData; + } element.setAttribute('aria-posinset', posInSet); element.setAttribute('aria-setsize', setSize); } diff --git a/src/browser/LocalizableStrings.ts b/src/browser/LocalizableStrings.ts index 86f0ebe13..8e7823333 100644 --- a/src/browser/LocalizableStrings.ts +++ b/src/browser/LocalizableStrings.ts @@ -3,6 +3,5 @@ * @license MIT */ -export let blankLine = 'Blank line'; export let promptLabel = 'Terminal input'; export let tooMuchOutput = 'Too much output to announce, navigate to rows manually to read'; diff --git a/src/browser/services/SelectionService.ts b/src/browser/services/SelectionService.ts index 7fd821fb7..6a9498a14 100644 --- a/src/browser/services/SelectionService.ts +++ b/src/browser/services/SelectionService.ts @@ -506,7 +506,7 @@ export class SelectionService implements ISelectionService { } // Return early if the click event is not in the buffer (eg. in scroll bar) - if (line.length >= this._model.selectionStart[0]) { + if (line.length === this._model.selectionStart[0]) { return; } diff --git a/typings/xterm.d.ts b/typings/xterm.d.ts index 7a2eb3647..c915a4ba7 100644 --- a/typings/xterm.d.ts +++ b/typings/xterm.d.ts @@ -316,11 +316,6 @@ declare module 'xterm' { * The set of localizable strings. */ export interface ILocalizableStrings { - /** - * Announcement for a blank line when `screenReaderMode` is enabled. - */ - blankLine: string; - /** * The aria label for the underlying input textarea for the terminal. */