Skip to content

Commit f3aacd7

Browse files
Material Design Teamimhappi
Material Design Team
authored andcommitted
[FloatingActionButton] Add an accessibility role to FloatingActionButton and ExtendedFloatingActionButton.
PiperOrigin-RevId: 663363115
1 parent da0b738 commit f3aacd7

File tree

3 files changed

+21
-0
lines changed

3 files changed

+21
-0
lines changed

lib/java/com/google/android/material/floatingactionbutton/ExtendedFloatingActionButton.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -532,6 +532,11 @@ public void setPadding(int left, int top, int right, int bottom) {
532532
}
533533
}
534534

535+
@Override
536+
public CharSequence getAccessibilityClassName() {
537+
return FloatingActionButton.ACCESSIBIILTY_FAB_ROLE;
538+
}
539+
535540
/**
536541
* Add a listener that will be invoked when this ExtendedFloatingActionButton is shown. See {@link
537542
* AnimatorListener}.

lib/java/com/google/android/material/floatingactionbutton/FloatingActionButton.java

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -110,6 +110,8 @@ public class FloatingActionButton extends VisibilityAwareImageButton
110110
Shapeable,
111111
CoordinatorLayout.AttachedBehavior {
112112

113+
static final String ACCESSIBIILTY_FAB_ROLE =
114+
"com.google.android.material.floatingactionbutton.FloatingActionButton";
113115
private static final String LOG_TAG = "FloatingActionButton";
114116
private static final String EXPANDABLE_WIDGET_HELPER_KEY = "expandableWidgetHelper";
115117
private static final int DEF_STYLE_RES = R.style.Widget_Design_FloatingActionButton;
@@ -936,6 +938,11 @@ public boolean onTouchEvent(@NonNull MotionEvent ev) {
936938
return super.onTouchEvent(ev);
937939
}
938940

941+
@Override
942+
public CharSequence getAccessibilityClassName() {
943+
return ACCESSIBIILTY_FAB_ROLE;
944+
}
945+
939946
/**
940947
* Behavior designed for use with {@link FloatingActionButton} instances. Its main function is to
941948
* move {@link FloatingActionButton} views so that any displayed {@link

tests/javatests/com/google/android/material/floatingactionbutton/FloatingActionButtonTest.java

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,7 @@
4646
import static com.google.android.material.testutils.TestUtilsMatchers.withFabContentHeight;
4747
import static com.google.android.material.testutils.TestUtilsMatchers.withFabCustomSize;
4848
import static org.hamcrest.Matchers.not;
49+
import static org.junit.Assert.assertEquals;
4950
import static org.mockito.Mockito.mock;
5051
import static org.mockito.Mockito.times;
5152
import static org.mockito.Mockito.verify;
@@ -309,4 +310,12 @@ public void testSetCustomSize() {
309310
.perform(setCustomSize(20))
310311
.check(matches(withFabCustomSize(20)));
311312
}
313+
314+
@Test
315+
@SmallTest
316+
public void testA11yClassName() {
317+
FloatingActionButton fab = activityTestRule.getActivity().findViewById(R.id.fab_standard);
318+
assertEquals(
319+
FloatingActionButton.ACCESSIBIILTY_FAB_ROLE, fab.getAccessibilityClassName().toString());
320+
}
312321
}

0 commit comments

Comments
 (0)