Skip to content

Commit 25a1612

Browse files
anaskhrazafacebook-github-bot
authored andcommitted
Added Support for Entrance/exit from collection by Flatlist (#31630)
Summary: Issue #30964 .When using a screen reader, flatlist does not announce entrance/ exit from the flat list. ## Changelog [Android] [Changed] - Added support for accessibility role of "list" for flatlist and sectioned list Pull Request resolved: #31630 Test Plan: I have added accessibility role prop in flatlist and sectioned list in rntester app, that will announce entrance/ exit from flatlist and sectioned list. Reviewed By: kacieb Differential Revision: D29599351 Pulled By: blavalla fbshipit-source-id: e16ec69a694780d12f15f88a1e6bb5d7d77ac15f
1 parent 157d595 commit 25a1612

File tree

7 files changed

+9
-0
lines changed

7 files changed

+9
-0
lines changed

Libraries/Components/View/ViewAccessibility.js

+1
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,7 @@ export type AccessibilityRole =
4141
| 'tab'
4242
| 'tablist'
4343
| 'timer'
44+
| 'list'
4445
| 'toolbar';
4546

4647
// the info associated with an accessibility action

Libraries/DeprecatedPropTypes/DeprecatedViewAccessibility.js

+1
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,7 @@ module.exports = {
4040
'tab',
4141
'tablist',
4242
'timer',
43+
'list',
4344
'toolbar',
4445
],
4546
};

React/Views/RCTViewManager.m

+1
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,7 @@ @implementation RCTConvert (UIAccessibilityTraits)
6161
@"tablist" : @(UIAccessibilityTraitNone),
6262
@"timer" : @(UIAccessibilityTraitNone),
6363
@"toolbar" : @(UIAccessibilityTraitNone),
64+
@"list" : @(UIAccessibilityTraitNone),
6465
}),
6566
UIAccessibilityTraitNone,
6667
unsignedLongLongValue)

ReactAndroid/src/main/java/com/facebook/react/uimanager/ReactAccessibilityDelegate.java

+3
Original file line numberDiff line numberDiff line change
@@ -107,6 +107,7 @@ public enum AccessibilityRole {
107107
TAB,
108108
TABLIST,
109109
TIMER,
110+
LIST,
110111
TOOLBAR;
111112

112113
public static String getValue(AccessibilityRole role) {
@@ -135,6 +136,8 @@ public static String getValue(AccessibilityRole role) {
135136
return "android.widget.SpinButton";
136137
case SWITCH:
137138
return "android.widget.Switch";
139+
case LIST:
140+
return "android.widget.AbsListView";
138141
case NONE:
139142
case LINK:
140143
case SUMMARY:

packages/rn-tester/js/examples/FlatList/FlatListExample.js

+1
Original file line numberDiff line numberDiff line change
@@ -196,6 +196,7 @@ class FlatListExample extends React.PureComponent<Props, State> {
196196
getItemLayout={
197197
this.state.fixedHeight ? this._getItemLayout : undefined
198198
}
199+
accessibilityRole="list"
199200
horizontal={this.state.horizontal}
200201
inverted={this.state.inverted}
201202
key={

packages/rn-tester/js/examples/SectionList/SectionList-scrollable.js

+1
Original file line numberDiff line numberDiff line change
@@ -275,6 +275,7 @@ export function SectionList_scrollable(Props: {
275275
ItemSeparatorComponent={info => (
276276
<CustomSeparatorComponent {...info} text="ITEM SEPARATOR" />
277277
)}
278+
accessibilityRole="list"
278279
debug={debug}
279280
inverted={inverted}
280281
disableVirtualization={!virtualized}

packages/rn-tester/js/examples/SectionList/SectionListBaseExample.js

+1
Original file line numberDiff line numberDiff line change
@@ -95,6 +95,7 @@ const SectionListBaseExample: React.AbstractComponent<
9595
<SectionList
9696
ref={ref}
9797
testID="section_list"
98+
accessibilityRole="list"
9899
sections={DATA}
99100
keyExtractor={(item, index) => item + index}
100101
style={styles.list}

0 commit comments

Comments
 (0)