diff --git a/tests/visual/menu/menubar.html b/tests/visual/menu/menubar.html
index c5b63ae86..1b4b331f6 100644
--- a/tests/visual/menu/menubar.html
+++ b/tests/visual/menu/menubar.html
@@ -55,13 +55,13 @@
.ui-menubar .ui-button { float: left; font-weight: normal; border-top-width: 0 !important; border-bottom-width: 0 !important; margin: 0; outline: none; }
.ui-menubar .ui-menubar-link { border-right: 1px dashed transparent; border-left: 1px dashed transparent; }
- ol.ui-menubar, ul.ui-menubar {
+ .ui-menubar, .ui-menubar {
list-style: none;
margin-left: 0;
padding-left: 0;
}
- li.ui-menubar-item {
+ .ui-menubar-item {
float: left;
}
diff --git a/tests/visual/menu/menubar.js b/tests/visual/menu/menubar.js
index 453f5fae7..e6f6ab069 100644
--- a/tests/visual/menu/menubar.js
+++ b/tests/visual/menu/menubar.js
@@ -67,7 +67,6 @@ $.widget("ui.menubar", {
return;
}
event.preventDefault();
- event.stopPropagation();
if (event.type == "click" && menu.is(":visible") && self.active && self.active[0] == menu[0]) {
self._close();
return;
@@ -111,8 +110,11 @@ $.widget("ui.menubar", {
});
self._bind(document, {
click: function(event) {
- if (self.open && !$(event.target).closest(".ui-menubar").length) {
- self._close();
+ if (self.open) {
+ var menubar = $(event.target).closest(".ui-menubar");
+ if (!menubar.length || menubar.get(0) !== self.element.get(0)) {
+ self._close();
+ }
}
}
})
@@ -162,6 +164,8 @@ $.widget("ui.menubar", {
},
_close: function() {
+ if (!this.active || !this.active.length)
+ return;
this.active.menu("closeAll").hide().attr("aria-hidden", "true").attr("aria-expanded", "false");
this.active.prev().removeClass("ui-state-active").removeAttr("tabIndex");
this.active = null;
diff --git a/ui/jquery.ui.menu.js b/ui/jquery.ui.menu.js
index 0b2852f06..0a06fe0b5 100644
--- a/ui/jquery.ui.menu.js
+++ b/ui/jquery.ui.menu.js
@@ -319,6 +319,7 @@ $.widget("ui.menu", {
if (newItem && newItem.length) {
this._open(newItem.parent());
var current = this.active;
+ //timeout so Firefox will not hide activedescendant change in expanding submenu from AT
setTimeout(function(){self.focus(event, newItem)}, 20);
return true;
}