diff --git a/src/vs/workbench/api/browser/mainThreadQuickOpen.ts b/src/vs/workbench/api/browser/mainThreadQuickOpen.ts index c08085958a..e600d60696 100644 --- a/src/vs/workbench/api/browser/mainThreadQuickOpen.ts +++ b/src/vs/workbench/api/browser/mainThreadQuickOpen.ts @@ -37,6 +37,15 @@ export class MainThreadQuickOpen implements MainThreadQuickOpenShape { } $show(instance: number, options: IPickOptions, token: CancellationToken): Promise { + // {{ SQL CARBON EDIT }} Fix a11y issue https://github.com/microsoft/azuredatastudio/issues/9232 + const activeElement = document.activeElement as HTMLElement; + const focusBackToStartingPosition = () => { + try { + activeElement?.focus(); + } catch { } + }; + // {{ SQL CARBON EDIT }} Fix a11y issue https://github.com/microsoft/azuredatastudio/issues/9232 + const contents = new Promise((resolve, reject) => { this._items[instance] = { resolve, reject }; }); @@ -52,6 +61,7 @@ export class MainThreadQuickOpen implements MainThreadQuickOpenShape { if (options.canPickMany) { return this._quickInputService.pick(contents, options as { canPickMany: true }, token).then(items => { + focusBackToStartingPosition(); // {{ SQL CARBON EDIT }} Fix a11y issue https://github.com/microsoft/azuredatastudio/issues/9232 if (items) { return items.map(item => item.handle); } @@ -59,6 +69,7 @@ export class MainThreadQuickOpen implements MainThreadQuickOpenShape { }); } else { return this._quickInputService.pick(contents, options, token).then(item => { + focusBackToStartingPosition(); // {{ SQL CARBON EDIT }} Fix a11y issue https://github.com/microsoft/azuredatastudio/issues/9232 if (item) { return item.handle; }