Skip to content

Commit

Permalink
iOS: Remove leading space from accessibilityLabel
Browse files Browse the repository at this point in the history
Summary:
In some cases, the accessibilityLabel contains a leading space. This is because `RCTRecursiveAccessibilityLabel` adds a space before every iteration of the loop including the first.

After this change, the contract is that:
  - `RCTRecursiveAccessibilityLabel` always returns a string with a leading space.
  - `accessibilityLabel` never returns a string with a leading space.

**Test plan**

I created a test app with the following code:

```
<View style={{height: 100, width: 100, backgroundColor: 'steelblue'}} accessible={true}>
  <View style={{height: 20, width: 20, backgroundColor: 'red'}} accessibilityLabel='One' />
  <View style={{height: 20, width: 20, backgroundColor: 'yellow'}} accessibilityLabel='Two' />
  <View style={{height: 20, width: 20, backgroundColor: 'green'}} accessibilityLabel='Three' />
</View>
```

Before this change, the accessibilityLabel of the outermost View was " One Two Three" (notice the leading space).

After this change, it is "One Two Three" as desired.

Adam
Closes #12269

Reviewed By: javache

Differential Revision: D4596761

Pulled By: shergin

fbshipit-source-id: 7d5ff704e858d9f277d1547339a2831ffa90f592
  • Loading branch information
Adam Comella authored and facebook-github-bot committed Feb 22, 2017
1 parent 15429e3 commit 6fbc2c9
Showing 1 changed file with 7 additions and 1 deletion.
8 changes: 7 additions & 1 deletion React/Views/RCTView.m
Original file line number Diff line number Diff line change
Expand Up @@ -81,11 +81,17 @@ - (UIView *)react_findClipView

static NSString *RCTRecursiveAccessibilityLabel(UIView *view)
{
BOOL isFirstIteration = YES;
NSMutableString *str = [NSMutableString stringWithString:@""];
for (UIView *subview in view.subviews) {
if (isFirstIteration) {
isFirstIteration = NO;
} else {
[str appendString:@" "];
}

NSString *label = subview.accessibilityLabel;
if (label) {
[str appendString:@" "];
[str appendString:label];
} else {
[str appendString:RCTRecursiveAccessibilityLabel(subview)];
Expand Down

0 comments on commit 6fbc2c9

Please sign in to comment.