]> source.dussan.org Git - vaadin-framework.git/commitdiff
adds simple fix for missing label text in grid select checkboxes (#10223)
authorKnoobie <Knoobie@gmx.de>
Mon, 23 Oct 2017 12:33:55 +0000 (14:33 +0200)
committerPéter Török <31210544+torok-peter@users.noreply.github.com>
Mon, 23 Oct 2017 12:33:55 +0000 (15:33 +0300)
* adds simple fix for missing label text in grid select checkboxes

* updated comment and wording

client/src/main/java/com/vaadin/client/widget/grid/selection/MultiSelectionRenderer.java
client/src/main/java/com/vaadin/client/widgets/Grid.java
themes/src/main/themes/VAADIN/themes/valo/shared/_global.scss

index ba27d96afa3d8ac22505a4427c49bee04f82057f..ebf806bbbdddff3fa12e8f88c736245322a31f78 100644 (file)
@@ -604,6 +604,9 @@ public class MultiSelectionRenderer<T>
 
         CheckBoxEventHandler handler = new CheckBoxEventHandler(checkBox);
 
+        // label of checkbox should only be visible for assistive devices
+        checkBox.addStyleName("v-assistive-device-only-label");
+
         // Sink events
         checkBox.sinkBitlessEvent(BrowserEvents.MOUSEDOWN);
         checkBox.sinkBitlessEvent(BrowserEvents.TOUCHSTART);
@@ -623,9 +626,18 @@ public class MultiSelectionRenderer<T>
     public void render(final RendererCellReference cell, final Boolean data,
             CheckBox checkBox) {
         checkBox.setValue(data, false);
+        // this should be a temp fix.
+        checkBox.setText("Selects row number " + getDOMRowIndex(cell) + ".");
         checkBox.setEnabled(grid.isEnabled() && !grid.isEditorActive());
     }
 
+    private int getDOMRowIndex(RendererCellReference cell){
+        // getRowIndex starts with zero, that's why we add an additional 1.
+        // getDOMRowIndex should include getHeaderRows as well, this number
+        // should be equals to aria-rowindex.
+        return cell.getGrid().getHeaderRowCount() + cell.getRowIndex() + 1;
+    }
+
     @Override
     public Collection<String> getConsumedEvents() {
         final HashSet<String> events = new HashSet<>();
index 4651c534dc4a749139a4750901ac4f7002eb18c1..73867caa728da711d572ee7ec7982a245e1eab2f 100755 (executable)
@@ -2928,11 +2928,14 @@ public class Grid<T> extends ResizeComposite implements HasSelectionHandlers<T>,
                 selectAllCheckBox = GWT.create(CheckBox.class);
                 selectAllCheckBox.setStylePrimaryName(
                         getStylePrimaryName() + SELECT_ALL_CHECKBOX_CLASSNAME);
+                // label of checkbox should only be visible for assistive devices
+                selectAllCheckBox.addStyleName("v-assistive-device-only-label");
                 selectAllCheckBox.addValueChangeHandler(event -> {
                     selected = event.getValue();
                     fireEvent(new SelectAllEvent<>(getSelectionModel(),
                             selected));
                 });
+                selectAllCheckBox.setText("Selects all rows of the table.");
                 selectAllCheckBox.setValue(selected);
 
                 addHeaderClickHandler(this::onHeaderClickEvent);
index 99fbd360b17af41f6d3ed9540271909b785fdf89..622df7d8a1a1d98cd4bc111b07dcb5f3bb922ad4 100644 (file)
@@ -128,7 +128,7 @@ $valo-global-included: false !default;
       overflow:auto;
     }
 
-    .v-assistive-device-only {
+    .v-assistive-device-only, .v-assistive-device-only-label label {
       position: absolute;
       top: -2000px;
       left: -2000px;