Skip to content

Commit d4c2c95

Browse files
paulfthomasleticiarossi
authored andcommitted
[Chip][a11y] Make multi-selection Chips announced as Buttons
PiperOrigin-RevId: 447993125
1 parent 3e6329b commit d4c2c95

File tree

3 files changed

+26
-3
lines changed

3 files changed

+26
-3
lines changed

lib/java/com/google/android/material/chip/Chip.java

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -165,8 +165,6 @@ public class Chip extends AppCompatCheckBox
165165

166166
@Nullable private CharSequence accessibilityClassName;
167167
private static final String BUTTON_ACCESSIBILITY_CLASS_NAME = "android.widget.Button";
168-
private static final String COMPOUND_BUTTON_ACCESSIBILITY_CLASS_NAME =
169-
"android.widget.CompoundButton";
170168
private static final String RADIO_BUTTON_ACCESSIBILITY_CLASS_NAME =
171169
"android.widget.RadioButton";
172170
private static final String GENERIC_VIEW_ACCESSIBILITY_CLASS_NAME = "android.view.View";
@@ -2335,7 +2333,7 @@ public CharSequence getAccessibilityClassName() {
23352333
if (parent instanceof ChipGroup && ((ChipGroup) parent).isSingleSelection()) {
23362334
return RADIO_BUTTON_ACCESSIBILITY_CLASS_NAME;
23372335
} else {
2338-
return COMPOUND_BUTTON_ACCESSIBILITY_CLASS_NAME;
2336+
return BUTTON_ACCESSIBILITY_CLASS_NAME;
23392337
}
23402338
} else if (isClickable()) {
23412339
return BUTTON_ACCESSIBILITY_CLASS_NAME;

lib/javatests/com/google/android/material/chip/ChipGroupTest.java

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -260,4 +260,17 @@ public void isNotSingleLine_initializesAccessibilityNodeInfo() {
260260
assertEquals(1, itemInfo.getRowIndex());
261261
assertTrue(itemInfo.isSelected());
262262
}
263+
264+
@Test
265+
public void getChipAccessibilityClassName_multipleChecked_buttonName() {
266+
Chip chip = (Chip) chipgroup.getChildAt(0);
267+
assertEquals("android.widget.Button", chip.getAccessibilityClassName().toString());
268+
}
269+
270+
@Test
271+
public void getChipAccessibilityClassName_singleChecked_radioButtonName() {
272+
chipgroup.setSingleSelection(true);
273+
Chip chip = (Chip) chipgroup.getChildAt(0);
274+
assertEquals("android.widget.RadioButton", chip.getAccessibilityClassName().toString());
275+
}
263276
}

lib/javatests/com/google/android/material/chip/ChipTest.java

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919

2020
import static com.google.android.material.internal.ViewUtils.dpToPx;
2121
import static com.google.common.truth.Truth.assertThat;
22+
import static org.junit.Assert.assertEquals;
2223

2324
import android.content.Context;
2425
import android.graphics.RectF;
@@ -225,4 +226,15 @@ public void testZeroChipCornerRadius() {
225226
.isWithin(DELTA)
226227
.of(0);
227228
}
229+
230+
@Test
231+
public void getChipAccessibilityClassName_clickable_buttonName() {
232+
assertEquals("android.widget.Button", chip.getAccessibilityClassName().toString());
233+
}
234+
235+
@Test
236+
public void getChipAccessibilityClassName_nonClickable_viewName() {
237+
chip.setClickable(false);
238+
assertEquals("android.view.View", chip.getAccessibilityClassName().toString());
239+
}
228240
}

0 commit comments

Comments
 (0)