diff --git a/MVMCoreUI/Containers/TabBarController/TopTabbar.m b/MVMCoreUI/Containers/TabBarController/TopTabbar.m index b69fc233..e1c96c20 100644 --- a/MVMCoreUI/Containers/TabBarController/TopTabbar.m +++ b/MVMCoreUI/Containers/TabBarController/TopTabbar.m @@ -193,14 +193,7 @@ static NSString * const COLLECTION_CELL_ID = @"cell"; [label layoutIfNeeded]; label.baselineAdjustment = UIBaselineAdjustmentAlignCenters; - //set up cell acceessibility label - cell.isAccessibilityElement = NO; - cell.contentView.isAccessibilityElement = YES; - - NSString *accLabel = [label.text stringByAppendingString:[MVMCoreUIUtility hardcodedStringWithKey:@"AccTab"]]; - NSString *accString = [accLabel stringByAppendingString:[NSString stringWithFormat:[MVMCoreUIUtility hardcodedStringWithKey:@"AccTabIndex"], self.selectedIndex + 1, [self.datasource numberOfTopTabbarItems:self]]]; - cell.contentView.accessibilityLabel = accString; - [cell.contentView setAccessibilityHint:[MVMCoreUIUtility hardcodedStringWithKey:@"AccTabHint"]]; + [self setCellAccessibility:cell title:label.text isSelected:NO]; if (indexPath.row == self.selectedIndex) { label.textColor = [UIColor mfTomatoRed]; @@ -410,17 +403,22 @@ static NSString * const COLLECTION_CELL_ID = @"cell"; [self.delegate topTabbar:self didSelectItemAtIndex:indexPath.row]; } - //setup selected tab accessibility - NSString *string = label.text; - NSString *accLabel = [string stringByAppendingString:[MVMCoreUIUtility hardcodedStringWithKey:@"toptabbar_tab_selected"]]; - NSString *accString = [accLabel stringByAppendingString:[NSString stringWithFormat:[MVMCoreUIUtility hardcodedStringWithKey:@"AccTabIndex"], self.selectedIndex + 1, [self.datasource numberOfTopTabbarItems:self]]]; - cell.contentView.accessibilityLabel = accString; - [cell.contentView setAccessibilityHint:nil]; - + [self setCellAccessibility:cell title:label.text isSelected:YES]; } - (void)reloadData { [self.collectionView reloadData]; } +- (void)setCellAccessibility:(UICollectionViewCell *)cell title:(NSString *)title isSelected:(BOOL)isSelected { + cell.isAccessibilityElement = NO; + cell.contentView.isAccessibilityElement = YES; + NSString *accKey = isSelected ? @"toptabbar_tab_selected" : @"AccTab"; + NSString *accLabel = [title stringByAppendingString:[MVMCoreUIUtility hardcodedStringWithKey:accKey]]; + NSString *accString = [accLabel stringByAppendingString:[NSString stringWithFormat:[MVMCoreUIUtility hardcodedStringWithKey:@"AccTabIndex"], self.selectedIndex + 1, [self.datasource numberOfTopTabbarItems:self]]]; + cell.contentView.accessibilityLabel = accString; + NSString *accHint = isSelected ? nil : [MVMCoreUIUtility hardcodedStringWithKey:@"AccTabHint"]; + [cell.contentView setAccessibilityHint:accHint]; +} + @end