Skip to content

Commit 21b68a2

Browse files
committed
refactor: migrate accessibility props to aria props
1 parent e9ac46d commit 21b68a2

File tree

66 files changed

+389
-558
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

66 files changed

+389
-558
lines changed

example/src/Examples/FABExample.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -123,7 +123,7 @@ const FABExample = () => {
123123
<FAB.Group
124124
open={open}
125125
icon={open ? 'calendar-today' : 'plus'}
126-
accessibilityLabel="Calendar FAB"
126+
aria-label="Calendar FAB"
127127
toggleStackOnLongPress={toggleStackOnLongPress}
128128
actions={[
129129
{ icon: 'plus', onPress: () => {} },

src/components/ActivityIndicator.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -153,8 +153,8 @@ const ActivityIndicator = ({
153153
style={[styles.container, style]}
154154
{...rest}
155155
accessible
156-
accessibilityRole="progressbar"
157-
accessibilityState={{ busy: animating }}
156+
role="progressbar"
157+
aria-busy={animating}
158158
>
159159
<Animated.View
160160
style={[{ width: size, height: size, opacity: fade }]}

src/components/Appbar/AppbarAction.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -112,7 +112,7 @@ const AppbarAction = forwardRef<View, Props>(
112112
iconColor={actionIconColor}
113113
icon={icon}
114114
disabled={disabled}
115-
accessibilityLabel={accessibilityLabel}
115+
aria-label={accessibilityLabel}
116116
animated
117117
ref={ref}
118118
rippleColor={rippleColor}

src/components/Appbar/AppbarBackAction.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,7 @@ export type Props = $Omit<
6060
const AppbarBackAction = forwardRef<View, Props>(
6161
({ accessibilityLabel = 'Back', ...rest }: Props, ref) => (
6262
<AppbarAction
63-
accessibilityLabel={accessibilityLabel}
63+
aria-label={accessibilityLabel}
6464
{...rest}
6565
icon={AppbarBackIcon}
6666
isLeading

src/components/Appbar/AppbarContent.tsx

Lines changed: 3 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,6 @@
11
import * as React from 'react';
22
import {
3-
AccessibilityRole,
43
GestureResponderEvent,
5-
Platform,
64
StyleProp,
75
StyleSheet,
86
TextStyle,
@@ -148,16 +146,7 @@ const AppbarContent = ({
148146
titleStyle,
149147
]}
150148
numberOfLines={1}
151-
accessible
152-
accessibilityRole={
153-
onPress
154-
? 'none'
155-
: Platform.OS === 'web'
156-
? ('heading' as 'header')
157-
: 'header'
158-
}
159-
// @ts-expect-error We keep old a11y props for backwards compat with old RN versions
160-
accessibilityTraits="header"
149+
role={onPress ? 'none' : 'heading'}
161150
testID={`${testID}-title-text`}
162151
maxFontSizeMultiplier={titleMaxFontSizeMultiplier}
163152
>
@@ -171,13 +160,9 @@ const AppbarContent = ({
171160

172161
if (onPress) {
173162
return (
174-
// eslint-disable-next-line react-native-a11y/has-accessibility-props
175163
<Pressable
176-
accessibilityRole={touchableRole}
177-
// @ts-expect-error We keep old a11y props for backwards compat with old RN versions
178-
accessibilityTraits={touchableRole}
179-
accessibilityComponentType="button"
180-
accessbilityState={disabled ? 'disabled' : null}
164+
role="button"
165+
aria-disabled={disabled}
181166
onPress={onPress}
182167
disabled={disabled}
183168
{...contentWrapperProps}
@@ -213,8 +198,6 @@ const styles = StyleSheet.create({
213198
},
214199
});
215200

216-
const touchableRole: AccessibilityRole = 'button';
217-
218201
export default AppbarContent;
219202

220203
// @component-docs ignore-next-line

src/components/Banner.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -231,8 +231,8 @@ const Banner = ({
231231
color: onSurface,
232232
},
233233
]}
234-
accessibilityLiveRegion={visible ? 'polite' : 'none'}
235-
accessibilityRole="alert"
234+
aria-live={visible ? 'polite' : 'off'}
235+
role="alert"
236236
maxFontSizeMultiplier={maxFontSizeMultiplier}
237237
>
238238
{children}

src/components/BottomNavigation/BottomNavigationBar.tsx

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -543,7 +543,7 @@ const BottomNavigationBar = <Route extends BaseRoute>({
543543
maxWidth: maxTabBarWidth,
544544
},
545545
]}
546-
accessibilityRole={'tablist'}
546+
role={'tablist'}
547547
testID={`${testID}-content-wrapper`}
548548
>
549549
{routes.map((route, index) => {
@@ -622,9 +622,9 @@ const BottomNavigationBar = <Route extends BaseRoute>({
622622
onPress: () => onTabPress(eventForIndex(index)),
623623
onLongPress: () => onTabLongPress?.(eventForIndex(index)),
624624
testID: getTestID({ route }),
625-
accessibilityLabel: getAccessibilityLabel({ route }),
626-
accessibilityRole: Platform.OS === 'ios' ? 'button' : 'tab',
627-
accessibilityState: { selected: focused },
625+
'aria-label': getAccessibilityLabel({ route }),
626+
role: Platform.OS === 'ios' ? 'button' : 'tab',
627+
'aria-selected': focused,
628628
style: [styles.item],
629629
children: (
630630
<View

src/components/Button/Button.tsx

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11
import * as React from 'react';
22
import {
3-
AccessibilityRole,
43
Animated,
54
ColorValue,
65
GestureResponderEvent,
76
Platform,
87
PressableAndroidRippleConfig,
8+
Role,
99
StyleProp,
1010
StyleSheet,
1111
TextStyle,
@@ -106,7 +106,7 @@ export type Props = $Omit<React.ComponentProps<typeof Surface>, 'mode'> & {
106106
/**
107107
* Accessibility role for the button. The "button" role is set by default.
108108
*/
109-
accessibilityRole?: AccessibilityRole;
109+
accessibilityRole?: Role;
110110
/**
111111
* Function to execute on press.
112112
*/
@@ -357,10 +357,10 @@ const Button = (
357357
onPressIn={hasPassedTouchHandler ? handlePressIn : undefined}
358358
onPressOut={hasPassedTouchHandler ? handlePressOut : undefined}
359359
delayLongPress={delayLongPress}
360-
accessibilityLabel={accessibilityLabel}
360+
aria-label={accessibilityLabel}
361361
accessibilityHint={accessibilityHint}
362-
accessibilityRole={accessibilityRole}
363-
accessibilityState={{ disabled }}
362+
role={accessibilityRole}
363+
aria-disabled={disabled}
364364
accessible={accessible}
365365
hitSlop={hitSlop}
366366
disabled={disabled}

src/components/Checkbox/CheckboxAndroid.tsx

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -126,9 +126,9 @@ const CheckboxAndroid = ({
126126
rippleColor={rippleColor}
127127
onPress={onPress}
128128
disabled={disabled}
129-
accessibilityRole="checkbox"
130-
accessibilityState={{ disabled, checked }}
131-
accessibilityLiveRegion="polite"
129+
role="checkbox"
130+
aria-checked={checked}
131+
aria-disabled={disabled}
132132
style={styles.container}
133133
testID={testID}
134134
theme={theme}

src/components/Checkbox/CheckboxIOS.tsx

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -69,9 +69,9 @@ const CheckboxIOS = ({
6969
rippleColor={rippleColor}
7070
onPress={onPress}
7171
disabled={disabled}
72-
accessibilityRole="checkbox"
73-
accessibilityState={{ disabled, checked }}
74-
accessibilityLiveRegion="polite"
72+
role="checkbox"
73+
aria-checked={checked}
74+
aria-disabled={disabled}
7575
style={styles.container}
7676
testID={testID}
7777
theme={theme}

0 commit comments

Comments
 (0)