Repository: microsoft/vscode (TypeScript)
Date: 2023-08-25 13:52:53+00:00
Task type: Bug Fix

Issue:
A11y_VisualStudioCodeClient_Extensions_Name Role Value: No Name is provided for settings button.
[[Check out Accessibility Insights!](https://accessibilityinsights.io/)]- Identify accessibility bugs before check-in and make bug fixing faster and easier.

### GitHubTags:

#A11yWCAG2.1; #A11yTCS; #A11ySev2; #DesktopApp; #Win32; #Visual Studio Code Client; #BM-VisualStudioCodeClient-Win32-Aug2023; #WCAG4.1.2; #Name Role Value; #Regressed:09-05-23; #Closed;

### Environment and OS details:
Visual Studio Code insider version 1.82.0
Microsoft Windows 11 Enterprise 22H2 Build 22621.1992

### Repro Steps:

1. Open Visual Studio Code Insiders editor
2. Using "Ctrl+Shift+X" key navigate to the extension side view bar option.
3. Tab till settings button available on the extensions name.
4.  Verify whether the name is provided for settings button or not.

### Actual Result:
 No name is provided for settings button.

### Expected Result:
 Name should be defined for settings button.

### User Impact:
Screen reader users will face difficulty if No Name is defined for settings button.

### Attachment:
![Screenshot (957)](https://github.com/microsoft/vscode/assets/124244478/5e9ab0f9-e537-433e-b47d-abec844b68fa)



Issue discussion:
@sandy081 I can repro, can you pls fix this by adding a label?

Solution patch:
diff --git a/src/vs/workbench/contrib/extensions/browser/extensionsActions.ts b/src/vs/workbench/contrib/extensions/browser/extensionsActions.ts
--- a/src/vs/workbench/contrib/extensions/browser/extensionsActions.ts
+++ b/src/vs/workbench/contrib/extensions/browser/extensionsActions.ts
@@ -1121,7 +1121,6 @@ export class ManageExtensionAction extends ExtensionDropDownAction {
 			const state = this.extension.state;
 			this.enabled = state === ExtensionState.Installed;
 			this.class = this.enabled || state === ExtensionState.Uninstalling ? ManageExtensionAction.Class : ManageExtensionAction.HideManageExtensionClass;
-			this.tooltip = state === ExtensionState.Uninstalling ? localize('ManageExtensionAction.uninstallingTooltip', "Uninstalling") : '';
 		}
 	}
 }


Test patch:
diff --git a/src/vs/workbench/contrib/extensions/test/electron-sandbox/extensionsActions.test.ts b/src/vs/workbench/contrib/extensions/test/electron-sandbox/extensionsActions.test.ts
--- a/src/vs/workbench/contrib/extensions/test/electron-sandbox/extensionsActions.test.ts
+++ b/src/vs/workbench/contrib/extensions/test/electron-sandbox/extensionsActions.test.ts
@@ -447,7 +447,7 @@ suite('ExtensionsActions', () => {
 				testObject.extension = extensions[0];
 				assert.ok(testObject.enabled);
 				assert.strictEqual('extension-action icon manage codicon codicon-extensions-manage', testObject.class);
-				assert.strictEqual('', testObject.tooltip);
+				assert.strictEqual('Manage', testObject.tooltip);
 			});
 	});
 
@@ -462,7 +462,7 @@ suite('ExtensionsActions', () => {
 				testObject.extension = page.firstPage[0];
 				assert.ok(!testObject.enabled);
 				assert.strictEqual('extension-action icon manage codicon codicon-extensions-manage hide', testObject.class);
-				assert.strictEqual('', testObject.tooltip);
+				assert.strictEqual('Manage', testObject.tooltip);
 			});
 	});
 
@@ -479,7 +479,7 @@ suite('ExtensionsActions', () => {
 				installEvent.fire({ identifier: gallery.identifier, source: gallery });
 				assert.ok(!testObject.enabled);
 				assert.strictEqual('extension-action icon manage codicon codicon-extensions-manage hide', testObject.class);
-				assert.strictEqual('', testObject.tooltip);
+				assert.strictEqual('Manage', testObject.tooltip);
 			});
 	});
 
@@ -498,7 +498,7 @@ suite('ExtensionsActions', () => {
 		await promise;
 		assert.ok(testObject.enabled);
 		assert.strictEqual('extension-action icon manage codicon codicon-extensions-manage', testObject.class);
-		assert.strictEqual('', testObject.tooltip);
+		assert.strictEqual('Manage', testObject.tooltip);
 	});
 
 	test('Test ManageExtensionAction when extension is system extension', () => {
@@ -512,7 +512,7 @@ suite('ExtensionsActions', () => {
 				testObject.extension = extensions[0];
 				assert.ok(testObject.enabled);
 				assert.strictEqual('extension-action icon manage codicon codicon-extensions-manage', testObject.class);
-				assert.strictEqual('', testObject.tooltip);
+				assert.strictEqual('Manage', testObject.tooltip);
 			});
 	});
 
@@ -529,7 +529,7 @@ suite('ExtensionsActions', () => {
 
 				assert.ok(!testObject.enabled);
 				assert.strictEqual('extension-action icon manage codicon codicon-extensions-manage', testObject.class);
-				assert.strictEqual('Uninstalling', testObject.tooltip);
+				assert.strictEqual('Manage', testObject.tooltip);
 			});
 	});