From 4fdba597ce77a16a67fc5b519f6c1c0e8becbe80 Mon Sep 17 00:00:00 2001 From: Tyler Leonhardt Date: Thu, 6 Apr 2023 15:21:06 -0700 Subject: [PATCH] Only use placeholder as aria-label if we have an input box Fixes https://github.com/microsoft/vscode/issues/179373 --- src/vs/platform/quickinput/browser/quickAccess.ts | 3 --- src/vs/platform/quickinput/browser/quickInput.ts | 7 ++++--- 2 files changed, 4 insertions(+), 6 deletions(-) diff --git a/src/vs/platform/quickinput/browser/quickAccess.ts b/src/vs/platform/quickinput/browser/quickAccess.ts index d10bd17c59682..ea8b0a35ea7e4 100644 --- a/src/vs/platform/quickinput/browser/quickAccess.ts +++ b/src/vs/platform/quickinput/browser/quickAccess.ts @@ -106,9 +106,6 @@ export class QuickAccessController extends Disposable implements IQuickAccessCon } picker.contextKey = descriptor?.contextKey; picker.filterValue = (value: string) => value.substring(descriptor ? descriptor.prefix.length : 0); - if (descriptor?.placeholder) { - picker.ariaLabel = descriptor?.placeholder; - } // Pick mode: setup a promise that can be resolved // with the selected items and prevent execution diff --git a/src/vs/platform/quickinput/browser/quickInput.ts b/src/vs/platform/quickinput/browser/quickInput.ts index 8cf43baa0cb49..4a5dee89a6071 100644 --- a/src/vs/platform/quickinput/browser/quickInput.ts +++ b/src/vs/platform/quickinput/browser/quickInput.ts @@ -27,7 +27,7 @@ import { Disposable, DisposableStore, dispose } from 'vs/base/common/lifecycle'; import { isIOS } from 'vs/base/common/platform'; import Severity from 'vs/base/common/severity'; import { ThemeIcon } from 'vs/base/common/themables'; -import { isString, withNullAsUndefined } from 'vs/base/common/types'; +import { isString, withNullAsUndefined, withUndefinedAsNull } from 'vs/base/common/types'; import 'vs/css!./media/quickInput'; import { localize } from 'vs/nls'; import { ILayoutService } from 'vs/platform/layout/browser/layoutService'; @@ -1029,7 +1029,8 @@ class QuickPick extends QuickInput implements IQuickPi } let ariaLabel = this.ariaLabel; - if (!ariaLabel) { + // Only set aria label to the input box placeholder if we actually have an input box. + if (!ariaLabel && visibilities.inputBox) { ariaLabel = this.placeholder || QuickPick.DEFAULT_ARIA_LABEL; // If we have a title, include it in the aria label. if (this.title) { @@ -1037,7 +1038,7 @@ class QuickPick extends QuickInput implements IQuickPi } } if (this.ui.list.ariaLabel !== ariaLabel) { - this.ui.list.ariaLabel = ariaLabel; + this.ui.list.ariaLabel = withUndefinedAsNull(ariaLabel); } this.ui.list.matchOnDescription = this.matchOnDescription; this.ui.list.matchOnDetail = this.matchOnDetail;