summaryrefslogtreecommitdiffstats
path: root/chromium/ui/webui/resources/js/cr/ui/tree.js
diff options
context:
space:
mode:
Diffstat (limited to 'chromium/ui/webui/resources/js/cr/ui/tree.js')
-rw-r--r--chromium/ui/webui/resources/js/cr/ui/tree.js20
1 files changed, 17 insertions, 3 deletions
diff --git a/chromium/ui/webui/resources/js/cr/ui/tree.js b/chromium/ui/webui/resources/js/cr/ui/tree.js
index 3c12715d55d..04f978ebf72 100644
--- a/chromium/ui/webui/resources/js/cr/ui/tree.js
+++ b/chromium/ui/webui/resources/js/cr/ui/tree.js
@@ -201,9 +201,13 @@ cr.define('cr.ui', function() {
if (oldSelectedItem)
oldSelectedItem.selected = false;
- if (item)
+ if (item) {
item.selected = true;
-
+ if (item.id)
+ this.setAttribute('aria-activedescendant', item.id);
+ } else {
+ this.removeAttribute('aria-activedescendant');
+ }
cr.dispatchSimpleEvent(this, 'change');
}
},
@@ -231,6 +235,14 @@ cr.define('cr.ui', function() {
cr.defineProperty(Tree, 'iconVisibility', cr.PropertyKind.ATTR);
/**
+ * Incremental counter for an auto generated ID of the tree item. This will
+ * be incremented per element, so each element never share same ID.
+ *
+ * @type {number}
+ */
+ var treeItemAutoGeneratedIdCounter = 0;
+
+ /**
* This is used as a blueprint for new tree item elements.
* @type {!HTMLElement}
*/
@@ -253,7 +265,9 @@ cr.define('cr.ui', function() {
* @extends {HTMLElement}
*/
var TreeItem = cr.ui.define(function() {
- return treeItemProto.cloneNode(true);
+ var treeItem = treeItemProto.cloneNode(true);
+ treeItem.id = 'tree-item-autogen-id-' + treeItemAutoGeneratedIdCounter++;
+ return treeItem;
});
TreeItem.prototype = {