diff options
-rwxr-xr-x | client/src/main/java/com/vaadin/client/widgets/Grid.java | 8 | ||||
-rw-r--r-- | uitest/src/test/java/com/vaadin/tests/components/grid/GridSortIndicatorTest.java | 8 |
2 files changed, 14 insertions, 2 deletions
diff --git a/client/src/main/java/com/vaadin/client/widgets/Grid.java b/client/src/main/java/com/vaadin/client/widgets/Grid.java index 92765eec89..578f260a1e 100755 --- a/client/src/main/java/com/vaadin/client/widgets/Grid.java +++ b/client/src/main/java/com/vaadin/client/widgets/Grid.java @@ -5998,6 +5998,7 @@ public class Grid<T> extends ResizeComposite implements HasSelectionHandlers<T>, if (sortable) { cellElement.addClassName("sortable"); + cellElement.setAttribute("aria-sort", "none"); } if (!sortable || sortingOrder == null) { @@ -6007,16 +6008,18 @@ public class Grid<T> extends ResizeComposite implements HasSelectionHandlers<T>, if (SortDirection.ASCENDING == sortingOrder.getDirection()) { cellElement.addClassName("sort-asc"); + cellElement.setAttribute("aria-sort", "ascending"); } else { cellElement.addClassName("sort-desc"); + cellElement.setAttribute("aria-sort", "descending"); } int sortIndex = Grid.this.getSortOrder().indexOf(sortingOrder); if (sortIndex > -1 && Grid.this.getSortOrder().size() > 1) { // Show sort order indicator if column is // sorted and other sorted columns also exists. - cellElement.setAttribute("sort-order", - String.valueOf(sortIndex + 1)); + cellElement.setAttribute("sort-order", String.valueOf(sortIndex + 1)); + cellElement.setAttribute("aria-sort", "other"); } if (!sortedBefore) { @@ -6058,6 +6061,7 @@ public class Grid<T> extends ResizeComposite implements HasSelectionHandlers<T>, private void cleanup(FlyweightCell cell) { Element cellElement = cell.getElement(); cellElement.removeAttribute("sort-order"); + cellElement.removeAttribute("aria-sort"); cellElement.removeClassName("sort-desc"); cellElement.removeClassName("sort-asc"); cellElement.removeClassName("sortable"); diff --git a/uitest/src/test/java/com/vaadin/tests/components/grid/GridSortIndicatorTest.java b/uitest/src/test/java/com/vaadin/tests/components/grid/GridSortIndicatorTest.java index 429e5a671e..2f623e1c51 100644 --- a/uitest/src/test/java/com/vaadin/tests/components/grid/GridSortIndicatorTest.java +++ b/uitest/src/test/java/com/vaadin/tests/components/grid/GridSortIndicatorTest.java @@ -35,18 +35,26 @@ public class GridSortIndicatorTest extends SingleBrowserTest { Assert.assertTrue("First column should be sorted ascending", grid.getHeaderCell(0, 0).getAttribute("class") .contains("sort-asc")); + Assert.assertEquals("First column should have aria-sort other", "other", + grid.getHeaderCell(0, 0).getAttribute("aria-sort")); Assert.assertEquals("First column should be first in sort order", "1", grid.getHeaderCell(0, 0).getAttribute("sort-order")); Assert.assertTrue("Second column should be sorted ascending", grid.getHeaderCell(0, 1).getAttribute("class") .contains("sort-asc")); + Assert.assertEquals("Second column should have aria-sort other", "other", + grid.getHeaderCell(0, 1).getAttribute("aria-sort")); Assert.assertEquals("Second column should be also sorted", "2", grid.getHeaderCell(0, 1).getAttribute("sort-order")); $(ButtonElement.class).caption("Sort first").first().click(); + Assert.assertEquals("First column should have aria-sort ascending", "ascending", + grid.getHeaderCell(0, 0).getAttribute("aria-sort")); Assert.assertTrue("First column should be sorted ascending", grid.getHeaderCell(0, 0).getAttribute("class") .contains("sort-asc")); + Assert.assertEquals("Second column should have aria-sort none", "none", + grid.getHeaderCell(0, 1).getAttribute("aria-sort")); Assert.assertFalse("Second column should not be sorted", grid.getHeaderCell(0, 1).getAttribute("class") .contains("sort-asc")); |