| Index: chrome/browser/resources/shared/js/cr/ui/grid.js
|
| diff --git a/chrome/browser/resources/shared/js/cr/ui/grid.js b/chrome/browser/resources/shared/js/cr/ui/grid.js
|
| index d078afe9189cf49e9b08f79dd20be6402c592b85..02e84bb037ca1a79b9d7d13651043fdc24ed526a 100644
|
| --- a/chrome/browser/resources/shared/js/cr/ui/grid.js
|
| +++ b/chrome/browser/resources/shared/js/cr/ui/grid.js
|
| @@ -24,7 +24,7 @@ cr.define('cr.ui', function() {
|
| * @extends {cr.ui.ListItem}
|
| */
|
| function GridItem(dataItem) {
|
| - var el = cr.doc.createElement('span');
|
| + var el = cr.doc.createElement('li');
|
| el.dataItem = dataItem;
|
| el.__proto__ = GridItem.prototype;
|
| return el;
|
| @@ -350,16 +350,30 @@ cr.define('cr.ui', function() {
|
| __proto__: ListSelectionController.prototype,
|
|
|
| /**
|
| + * Check if accessibility is enabled: if ChromeVox is running
|
| + * (which provides spoken feedback for accessibility), make up/down
|
| + * behave the same as left/right. That's because the 2-dimensional
|
| + * structure of the grid isn't exposed, so it makes more sense to a
|
| + * user who is relying on spoken feedback to flatten it.
|
| + * @return {boolean} True if accessibility is enabled.
|
| + */
|
| + isAccessibilityEnabled: function() {
|
| + return window.cvox && cvox.Api &&
|
| + cvox.Api.isChromeVoxActive && cvox.Api.isChromeVoxActive();
|
| + },
|
| +
|
| + /**
|
| * Returns the index below (y axis) the given element.
|
| * @param {number} index The index to get the index below.
|
| * @return {number} The index below or -1 if not found.
|
| * @override
|
| */
|
| getIndexBelow: function(index) {
|
| + if (this.isAccessibilityEnabled())
|
| + return this.getIndexAfter(index);
|
| var last = this.getLastIndex();
|
| - if (index == last) {
|
| + if (index == last)
|
| return -1;
|
| - }
|
| index += this.grid_.columns;
|
| return Math.min(index, last);
|
| },
|
| @@ -371,9 +385,10 @@ cr.define('cr.ui', function() {
|
| * @override
|
| */
|
| getIndexAbove: function(index) {
|
| - if (index == 0) {
|
| + if (this.isAccessibilityEnabled())
|
| + return this.getIndexBefore(index);
|
| + if (index == 0)
|
| return -1;
|
| - }
|
| index -= this.grid_.columns;
|
| return Math.max(index, 0);
|
| },
|
|
|