diff --git a/browser/base/content/browser-feeds.js b/browser/base/content/browser-feeds.js
index 5b432ede2f94..2bdb33cd09eb 100644
--- a/browser/base/content/browser-feeds.js
+++ b/browser/base/content/browser-feeds.js
@@ -51,6 +51,9 @@ var FeedHandler = {
item.setAttribute("feed", feedInfo.href);
item.setAttribute("tooltiptext", feedInfo.href);
item.setAttribute("crop", "center");
+ if (isSubview) {
+ item.setAttribute("tabindex", "0");
+ }
container.appendChild(item);
}
return true;
diff --git a/browser/components/customizableui/content/panelUI.inc.xul b/browser/components/customizableui/content/panelUI.inc.xul
index bbfc3d0773bd..dfc0313749ff 100644
--- a/browser/components/customizableui/content/panelUI.inc.xul
+++ b/browser/components/customizableui/content/panelUI.inc.xul
@@ -16,21 +16,21 @@
-
-
diff --git a/browser/components/customizableui/src/CustomizableUI.jsm b/browser/components/customizableui/src/CustomizableUI.jsm
index 0f2513e5e81e..7e24cc2134cc 100644
--- a/browser/components/customizableui/src/CustomizableUI.jsm
+++ b/browser/components/customizableui/src/CustomizableUI.jsm
@@ -340,6 +340,9 @@ let CustomizableUIInternal = {
}
this.ensureButtonContextMenu(node, aArea == CustomizableUI.AREA_PANEL);
+ if (node.localName == "toolbarbutton" && aArea == CustomizableUI.AREA_PANEL) {
+ node.setAttribute("tabindex", "0");
+ }
this.insertWidgetBefore(node, currentNode, container, aArea);
this._addParentFlex(node);
@@ -472,6 +475,7 @@ let CustomizableUIInternal = {
let document = aPanel.ownerDocument;
for (let btn of aPanel.querySelectorAll("toolbarbutton")) {
+ btn.setAttribute("tabindex", "0");
this.ensureButtonContextMenu(btn, true);
}
@@ -516,6 +520,9 @@ let CustomizableUIInternal = {
let [provider, widgetNode] = this.getWidgetNode(aWidgetId, window);
this.ensureButtonContextMenu(widgetNode, aArea == CustomizableUI.AREA_PANEL);
+ if (widgetNode.localName == "toolbarbutton" && aArea == CustomizableUI.AREA_PANEL) {
+ widgetNode.setAttribute("tabindex", "0");
+ }
let nextNode = nextNodeId ? container.querySelector(idToSelector(nextNodeId))
: null;
@@ -558,6 +565,7 @@ let CustomizableUIInternal = {
container.removeChild(widgetNode);
} else {
this.removeLocationAttributes(widgetNode);
+ widgetNode.removeAttribute("tabindex");
areaNode.toolbox.palette.appendChild(widgetNode);
}
if (area.type == this.TYPE_TOOLBAR) {
diff --git a/browser/components/customizableui/src/CustomizableWidgets.jsm b/browser/components/customizableui/src/CustomizableWidgets.jsm
index 57d4416e2591..a6c768413443 100644
--- a/browser/components/customizableui/src/CustomizableWidgets.jsm
+++ b/browser/components/customizableui/src/CustomizableWidgets.jsm
@@ -105,11 +105,10 @@ const CustomizableWidgets = [{
let item = doc.createElementNS(kNSXUL, "toolbarbutton");
item.setAttribute("label", title || uri);
- item.addEventListener("click", function(aEvent) {
- if (aEvent.button == 0) {
- doc.defaultView.openUILink(uri, aEvent);
- CustomizableUI.hidePanelForNode(item);
- }
+ item.setAttribute("tabindex", "0");
+ item.addEventListener("command", function(aEvent) {
+ doc.defaultView.openUILink(uri, aEvent);
+ CustomizableUI.hidePanelForNode(item);
});
if (icon)
item.setAttribute("image", "moz-anno:favicon:" + icon);
@@ -220,6 +219,7 @@ const CustomizableWidgets = [{
if (attrVal)
item.setAttribute(attr, attrVal);
}
+ item.setAttribute("tabindex", "0");
fragment.appendChild(item);
}
items.appendChild(fragment);
@@ -318,6 +318,8 @@ const CustomizableWidgets = [{
buttons.forEach(function(aButton) {
let btnNode = aDocument.createElementNS(kNSXUL, "toolbarbutton");
setAttributes(btnNode, aButton);
+ if (inPanel)
+ btnNode.setAttribute("tabindex", "0");
node.appendChild(btnNode);
});
@@ -456,6 +458,8 @@ const CustomizableWidgets = [{
buttons.forEach(function(aButton) {
let btnNode = aDocument.createElementNS(kNSXUL, "toolbarbutton");
setAttributes(btnNode, aButton);
+ if (inPanel)
+ btnNode.setAttribute("tabindex", "0");
node.appendChild(btnNode);
});