Skip to content

Commit 0f0a19a

Browse files
authored
fixed the issue (#8721)
1 parent a0fe574 commit 0f0a19a

File tree

3 files changed

+21
-2
lines changed

3 files changed

+21
-2
lines changed

source/nodejs/adaptivecards/src/card-elements.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6644,11 +6644,13 @@ class OverflowAction extends Action {
66446644
}
66456645

66466646
contextMenu.onClose = () => {
6647+
this.renderedElement?.focus();
66476648
this.renderedElement?.setAttribute("aria-expanded", "false");
66486649
}
66496650

66506651
this.renderedElement.setAttribute("aria-expanded", "true");
66516652
contextMenu.popup(this.renderedElement);
6653+
contextMenu.selectedIndex = 0;
66526654
}
66536655
}
66546656

source/nodejs/adaptivecards/src/controls/menu-item.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -63,8 +63,8 @@ export class MenuItem {
6363
};
6464
this._element.onkeydown = (e) => {
6565
if (e.key === Constants.keys.enter) {
66-
e.cancelBubble = true;
67-
66+
e.stopPropagation();
67+
e.preventDefault();
6868
this.click();
6969
}
7070
};

source/nodejs/adaptivecards/src/controls/popup-menu.ts

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,11 @@ export class PopupMenu extends PopupControl {
2121

2222
element.appendChild(renderedItem);
2323

24+
if (i == 0)
25+
{
26+
renderedItem.setAttribute("aria-expanded", "true");
27+
}
28+
2429
if (i === this.selectedIndex) {
2530
renderedItem.focus();
2631
}
@@ -63,6 +68,7 @@ export class PopupMenu extends PopupControl {
6368
}
6469

6570
this.selectedIndex = selectedItemIndex;
71+
this.removeAriaExpanded(selectedItemIndex);
6672

6773
e.cancelBubble = true;
6874

@@ -76,6 +82,7 @@ export class PopupMenu extends PopupControl {
7682
if (selectedItemIndex >= this._renderedItems.length) {
7783
selectedItemIndex = 0;
7884
}
85+
this.removeAriaExpanded(selectedItemIndex);
7986
}
8087

8188
this.selectedIndex = selectedItemIndex;
@@ -101,4 +108,14 @@ export class PopupMenu extends PopupControl {
101108
this._selectedIndex = index;
102109
}
103110
}
111+
112+
// remove aria-expanded attribute from menu item
113+
private removeAriaExpanded(index: number) {
114+
if (this._renderedItems[index].getAttribute("aria-expanded") === "true") {
115+
this._renderedItems[index].removeAttribute("aria-expanded");
116+
}
117+
}
118+
119+
120+
104121
}

0 commit comments

Comments
 (0)