From 6ce048c31b4612241b092b96a0b48ef3dd0b646e Mon Sep 17 00:00:00 2001 From: meganrogge Date: Tue, 24 Jan 2023 11:45:31 -0600 Subject: [PATCH 1/4] append child, not as adjacent --- src/browser/AccessibilityManager.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/browser/AccessibilityManager.ts b/src/browser/AccessibilityManager.ts index 1b244e6d78..2f0307df3b 100644 --- a/src/browser/AccessibilityManager.ts +++ b/src/browser/AccessibilityManager.ts @@ -57,7 +57,7 @@ export class AccessibilityManager extends Disposable { ) { super(); this._accessibilityTreeRoot = document.createElement('div'); - this._terminal.element?.insertAdjacentElement('afterbegin', this._accessibilityTreeRoot); + this._terminal.element?.appendChild(this._accessibilityTreeRoot); this._accessibilityTreeRoot.classList.add('xterm-accessibility'); this._accessibilityTreeRoot.tabIndex = 0; From e4fdf561d5a252ff540fffc24958ccafb4ec6530 Mon Sep 17 00:00:00 2001 From: meganrogge Date: Tue, 24 Jan 2023 11:55:24 -0600 Subject: [PATCH 2/4] move lower --- src/browser/AccessibilityManager.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/browser/AccessibilityManager.ts b/src/browser/AccessibilityManager.ts index 2f0307df3b..fd46e226e0 100644 --- a/src/browser/AccessibilityManager.ts +++ b/src/browser/AccessibilityManager.ts @@ -57,7 +57,6 @@ export class AccessibilityManager extends Disposable { ) { super(); this._accessibilityTreeRoot = document.createElement('div'); - this._terminal.element?.appendChild(this._accessibilityTreeRoot); this._accessibilityTreeRoot.classList.add('xterm-accessibility'); this._accessibilityTreeRoot.tabIndex = 0; @@ -89,6 +88,7 @@ export class AccessibilityManager extends Disposable { if (!this._terminal.element) { throw new Error('Cannot enable accessibility before Terminal.open'); } + this._terminal.element?.appendChild(this._accessibilityTreeRoot); this._accessiblityBuffer = document.createElement('textarea'); this._accessiblityBuffer.ariaLabel = Strings.accessibilityBuffer; From e011b8cfc7db6ed2445eb537806ff692b643c5b8 Mon Sep 17 00:00:00 2001 From: Daniel Imms <2193314+Tyriar@users.noreply.github.com> Date: Tue, 24 Jan 2023 11:30:45 -0800 Subject: [PATCH 3/4] Put all a11y elements under a single element --- src/browser/AccessibilityManager.ts | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/src/browser/AccessibilityManager.ts b/src/browser/AccessibilityManager.ts index fd46e226e0..e202253a70 100644 --- a/src/browser/AccessibilityManager.ts +++ b/src/browser/AccessibilityManager.ts @@ -88,15 +88,14 @@ export class AccessibilityManager extends Disposable { if (!this._terminal.element) { throw new Error('Cannot enable accessibility before Terminal.open'); } - this._terminal.element?.appendChild(this._accessibilityTreeRoot); + this._terminal.element.insertAdjacentElement('afterbegin', this._accessibilityTreeRoot); this._accessiblityBuffer = document.createElement('textarea'); this._accessiblityBuffer.ariaLabel = Strings.accessibilityBuffer; this._accessiblityBuffer.readOnly = true; this._accessiblityBuffer.classList.add('xterm-accessibility-buffer'); this._accessiblityBuffer.addEventListener('focus', () => this._refreshAccessibilityBuffer()); - this._terminal.element.insertAdjacentElement('afterbegin', this._accessiblityBuffer); - + this._accessibilityTreeRoot.appendChild(this._accessiblityBuffer); this.register(this._renderRowsDebouncer); this.register(this._terminal.onResize(e => this._handleResize(e.rows))); From 48d74066d9e767227443ce9906f541d7f4a5f9a7 Mon Sep 17 00:00:00 2001 From: Daniel Imms <2193314+Tyriar@users.noreply.github.com> Date: Tue, 24 Jan 2023 11:31:27 -0800 Subject: [PATCH 4/4] Remove readonly This was causing up/down to scroll instead of move a cursor around. This is probably up to the browser, but we want this to also work for non- screen reader users for keyboard accessible selection. --- src/browser/AccessibilityManager.ts | 1 - 1 file changed, 1 deletion(-) diff --git a/src/browser/AccessibilityManager.ts b/src/browser/AccessibilityManager.ts index e202253a70..143e1a06a9 100644 --- a/src/browser/AccessibilityManager.ts +++ b/src/browser/AccessibilityManager.ts @@ -92,7 +92,6 @@ export class AccessibilityManager extends Disposable { this._accessiblityBuffer = document.createElement('textarea'); this._accessiblityBuffer.ariaLabel = Strings.accessibilityBuffer; - this._accessiblityBuffer.readOnly = true; this._accessiblityBuffer.classList.add('xterm-accessibility-buffer'); this._accessiblityBuffer.addEventListener('focus', () => this._refreshAccessibilityBuffer()); this._accessibilityTreeRoot.appendChild(this._accessiblityBuffer);