Chromium Code Reviews| Index: chrome/browser/resources/chromeos/login/network_dropdown.js |
| =================================================================== |
| --- chrome/browser/resources/chromeos/login/network_dropdown.js (revision 101071) |
| +++ chrome/browser/resources/chromeos/login/network_dropdown.js (working copy) |
| @@ -24,6 +24,8 @@ |
| this.selectedItem = null; |
| // First item which could be selected. |
| this.firstItem = null; |
| + |
| + this.setAttribute('role', 'menu'); |
| }, |
| /** |
| @@ -35,6 +37,8 @@ |
| this.selectedItem.classList.remove('hover'); |
| selectedItem.classList.add('hover'); |
| this.selectedItem = selectedItem; |
| + this.previousSibling.setAttribute( |
| + 'aria-activedescendant', this.id + selectedItem.id); |
|
altimofeev
2011/09/19 08:13:14
Shouldn't it be just 'selectedItem.id'?
|
| } |
| }; |
| @@ -53,11 +57,14 @@ |
| /** @inheritDoc */ |
| decorate: function() { |
| this.appendChild(this.createOverlay_()); |
| - this.appendChild(this.createTitle_()); |
| + this.appendChild(this.title_ = this.createTitle_()); |
| this.appendChild(new DropDownContainer()); |
| this.isShown = false; |
| this.addEventListener('keydown', this.keyDownHandler_); |
| + |
| + this.title_.id = this.id + '-dropdown'; |
| + this.title_.setAttribute('role', 'listbox'); |
| }, |
| /** |
| @@ -166,6 +173,8 @@ |
| if (item.id > 0) { |
| var wrapperDiv = this.ownerDocument.createElement('div'); |
| wrapperDiv.classList.add('dropdown-item-container'); |
| + wrapperDiv.setAttribute('role', 'menuitem'); |
| + wrapperDiv.id = this.id + item.id; |
| var imageDiv = this.ownerDocument.createElement('div'); |
| imageDiv.classList.add('dropdown-image'); |
| imageDiv.appendChild(image); |
| @@ -213,6 +222,7 @@ |
| */ |
| createTitle_: function() { |
| var image = this.ownerDocument.createElement('img'); |
| + image.alt = ""; |
| var text = this.ownerDocument.createElement('div'); |
| var el = this.ownerDocument.createElement('div'); |
| @@ -254,8 +264,6 @@ |
| * @param {!Event} e Keydown event. |
| */ |
| keyDownHandler_: function(e) { |
| - if (!this.isShown) |
|
altimofeev
2011/09/19 08:13:14
Why do you need handle keys if menu isn't shown?
|
| - return; |
| var selected = this.container.selectedItem; |
| switch (e.keyCode) { |
| case 38: { // Key up. |
| @@ -285,6 +293,8 @@ |
| break; |
| } |
| case 13: { // Enter. |
| + if (!this.isShown) |
| + return; |
| var button = this.titleButton; |
| if (!button.opening) { |
| button.focus(); |