Browse Source

adds simple fix for missing label text in grid select checkboxes (#10223)

* adds simple fix for missing label text in grid select checkboxes

* updated comment and wording
tags/8.2.0.alpha3
Knoobie 6 years ago
parent
commit
d0dde67c18

+ 12
- 0
client/src/main/java/com/vaadin/client/widget/grid/selection/MultiSelectionRenderer.java View 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<>();

+ 3
- 0
client/src/main/java/com/vaadin/client/widgets/Grid.java View File

@@ -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);

+ 1
- 1
themes/src/main/themes/VAADIN/themes/valo/shared/_global.scss View 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;

Loading…
Cancel
Save