Skip to content

Commit 3cfa7ae

Browse files
Ziqi Chenfacebook-github-bot
authored andcommitted
Added in Prop for CurrentViewState
Summary: Added in a prop for CurrentViewState that is used to set the state of the current view for both accessibility and regular view settings.. Ex: AccessibilityRole = "button" CurrentViewState = ['selected'] This will trigger talk back/voiceover to announce both the role and the state. Unlike Accessibility Role, Accessibility States can take on more than one form, and are passed in an array. Ex: AccessibilityState = ['selected', 'disabled'] Currently, two options are available: selected and disabled Reviewed By: PeteTheHeat Differential Revision: D8837848 fbshipit-source-id: ca30c950a2aa713813be8577ea4fa9ba9bfc698a
1 parent d9eeae9 commit 3cfa7ae

File tree

2 files changed

+14
-1
lines changed

2 files changed

+14
-1
lines changed

Libraries/Components/View/ViewAccessibility.js

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,12 @@ export type AccessibilityRole =
5050
| 'adjustable'
5151
| 'imagebutton';
5252

53+
export type CurrentViewState = 'selected' | 'disabled';
54+
55+
export type CurrentViewStates =
56+
| CurrentViewState
57+
| $ReadOnlyArray<CurrentViewState>;
58+
5359
module.exports = {
5460
AccessibilityTraits: [
5561
'none',
@@ -87,4 +93,5 @@ module.exports = {
8793
'adjustable',
8894
'imagebutton',
8995
],
96+
CurrentViewStates: ['selected', 'disabled'],
9097
};

Libraries/Components/View/ViewPropTypes.js

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,12 +21,14 @@ const {
2121
AccessibilityComponentTypes,
2222
AccessibilityTraits,
2323
AccessibilityRoles,
24+
CurrentViewStates,
2425
} = require('ViewAccessibility');
2526

2627
import type {
2728
AccessibilityComponentType,
2829
AccessibilityTrait,
2930
AccessibilityRole,
31+
CurrentViewState,
3032
} from 'ViewAccessibility';
3133
import type {EdgeInsetsProp} from 'EdgeInsetsPropType';
3234
import type {TVViewProps} from 'TVViewPropTypes';
@@ -92,6 +94,7 @@ export type ViewProps = $ReadOnly<{|
9294
accessibilityIgnoresInvertColors?: boolean,
9395
accessibilityTraits?: AccessibilityTrait | Array<AccessibilityTrait>,
9496
accessibilityRole?: AccessibilityRole,
97+
currentViewStates?: Array<CurrentViewState>,
9598
accessibilityViewIsModal?: boolean,
9699
accessibilityElementsHidden?: boolean,
97100
children?: ?React.Node,
@@ -144,10 +147,13 @@ module.exports = {
144147

145148
/**
146149
* Indicates to accessibility services to treat UI component like a
147-
* native one. Merging accessibilityComponentType and accessibilityTraits.
148150
*/
149151
accessibilityRole: PropTypes.oneOf(AccessibilityRoles),
150152

153+
/**
154+
* Indicates to accessibility services that UI Component is in a specific State.
155+
*/
156+
currentViewStates: PropTypes.arrayOf(PropTypes.oneOf(CurrentViewStates)),
151157
/**
152158
* Indicates to accessibility services whether the user should be notified
153159
* when this view changes. Works for Android API >= 19 only.

0 commit comments

Comments
 (0)