diff --git a/canvas/src/components/WorkspaceNode.tsx b/canvas/src/components/WorkspaceNode.tsx
index 9b40be44..718f9820 100644
--- a/canvas/src/components/WorkspaceNode.tsx
+++ b/canvas/src/components/WorkspaceNode.tsx
@@ -344,11 +344,21 @@ function TeamMemberChip({
return (
{
e.stopPropagation();
onSelect(node.id);
}}
+ onKeyDown={(e) => {
+ if (e.key === "Enter" || e.key === " ") {
+ e.preventDefault();
+ e.stopPropagation();
+ onSelect(node.id);
+ }
+ }}
onContextMenu={(e) => {
e.preventDefault();
e.stopPropagation();
diff --git a/canvas/src/components/__tests__/WorkspaceNode.a11y.test.tsx b/canvas/src/components/__tests__/WorkspaceNode.a11y.test.tsx
index 1a463842..ec680bf2 100644
--- a/canvas/src/components/__tests__/WorkspaceNode.a11y.test.tsx
+++ b/canvas/src/components/__tests__/WorkspaceNode.a11y.test.tsx
@@ -190,10 +190,10 @@ describe("WorkspaceNode — TeamMemberChip a11y (issue #831)", () => {
expect(mockSelectNode).toHaveBeenCalledWith(CHILD_ID);
});
- it("eject button has aria-label='Extract from team'", () => {
+ it("eject button has aria-label='Extract from team'", () => {
renderParentNode();
const ejectBtn = screen.getByRole("button", {
- name: "Extract from team",
+ name: "Extract Child Workspace from team",
});
expect(ejectBtn).toBeTruthy();
});