iOS: Introduce API for moving screen reader's focus

Summary:
This change introduces an API, `setAccessibilityFocus`, which moves the screen reader's focus to the passed in element. This causes VoiceOver to announce the element and draw a focus rectangle around it.

Similar functionality is already available in RN Android through the `sendAccessibilityEvent` method. Here's an example of what exists today in RN Android:

```
RCTUIManager.sendAccessibilityEvent(
  node,
  8 /* TYPE_VIEW_FOCUSED */);
```

Called `setAccessibilityFocus` on a couple of elements to verify that focus does indeed move when VoiceOver is enabled. Additionally, my team is using this change in our app.

Adam Comella
Microsoft Corp.
Closes https://github.com/facebook/react-native/pull/14169

Differential Revision: D5137002

Pulled By: javache

fbshipit-source-id: 466e8b187e625de7c0f0d36e0400327dcd8d192a
This commit is contained in:
Adam Comella
2017-05-26 03:07:49 -07:00
committed by Facebook Github Bot
parent 3840618a01
commit e40d1a1065
2 changed files with 18 additions and 0 deletions

View File

@@ -112,6 +112,15 @@ var AccessibilityInfo = {
};
},
/**
* iOS-Only. Set accessibility focus to a react component.
*/
setAccessibilityFocus: function(
reactTag: number
): void {
AccessibilityManager.setAccessibilityFocus(reactTag);
},
/**
* Remove an event handler.
*/