blob: e625830c56d0993af672c3d627d6bd02c5d86390 [file] [log] [blame] [view] [edit]
## Accessibility
To help ensure your bottom navigation item is accessible to as many users as possible, please
be sure to review the following recommendations:
`-accessibilityLabel` The label will be the title of the UITabBarItem. Currently you can't set this to a custom value.
`-accessibilityValue` Set an appropriate `accessibilityValue` value if your item has a badge value.
For example, an item with an inbox icon with a badge value for how many emails are unread. You should explicitly
set the `accessibilityValue` when the badge value doesn't provide enough context. For example, in an inbox
example simply having the value "10" doesn't provide enough context, instead the accessibility value should explain
what the badge value symbolizes. The default value if there is a badge value and you haven't set any
`accessibilityValue` will be that the `accessibilityValue` is the `badgeValue`.
#### Swift
```swift
tabBarItem.accessibilityValue = "10 unread emails"
```
#### Objective-C
```objc
tabBarItem.accessibilityValue = @"10 unread emails";
```
### Minimum touch size
Make sure that your bottom navigation bar respects the minimum touch area. The Material spec calls for
[touch areas that should be least 48 points high and 48 wide](https://material.io/design/layout/spacing-methods.html#touch-click-targets).
#### Swift
```swift
override func viewWillLayoutSubviews() {
super.viewWillLayoutSubviews()
let size = bottomNavBar.sizeThatFits(view.bounds.size)
let bottomNavBarFrame = CGRect(x: 0,
y: view.bounds.height - size.height,
width: size.width,
height: size.height)
bottomNavBar.frame = bottomNavBarFrame
}
```
#### Objective-C
```objc
- (void)viewWillLayoutSubviews {
[super viewWillLayoutSubviews];
CGSize size = [_bottomNavigationBar sizeThatFits:self.view.bounds.size];
CGRect bottomNavBarFrame = CGRectMake(0,
CGRectGetHeight(self.view.bounds) - size.height,
size.width,
size.height);
_bottomNavigationBar.frame = bottomNavBarFrame;
}
```