diff --git a/MVMCoreUI/Containers/TabBarController/TopTabbar.m b/MVMCoreUI/Containers/TabBarController/TopTabbar.m index 9b4e632c..e1c96c20 100644 --- a/MVMCoreUI/Containers/TabBarController/TopTabbar.m +++ b/MVMCoreUI/Containers/TabBarController/TopTabbar.m @@ -193,13 +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 = [title stringByAppendingString:[MVMCoreUIUtility hardcodedStringWithKey:@"AccTab"]]; - cell.contentView.accessibilityLabel = accLabel; - [cell.contentView setAccessibilityHint:[MVMCoreUIUtility hardcodedStringWithKey:@"AccTabHint"]]; + [self setCellAccessibility:cell title:label.text isSelected:NO]; if (indexPath.row == self.selectedIndex) { label.textColor = [UIColor mfTomatoRed]; @@ -404,20 +398,27 @@ static NSString * const COLLECTION_CELL_ID = @"cell"; [cell layoutIfNeeded]; } - //setup selected tab accessibility - NSString *string = label.text; - NSString *accLabel = [string stringByAppendingString:[MVMCoreUIUtility hardcodedStringWithKey:@"toptabbar_tab_selected"]]; - cell.contentView.accessibilityLabel = accLabel; - [cell.contentView setAccessibilityHint:nil]; - self.selectedIndex = indexPath.row; if ([self.delegate respondsToSelector:@selector(topTabbar:titleForItemAtIndex:)]){ [self.delegate topTabbar:self didSelectItemAtIndex:indexPath.row]; } + + [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 diff --git a/MVMCoreUI/Styles/MFStyler.m b/MVMCoreUI/Styles/MFStyler.m index e7f14546..ca0fcd2e 100644 --- a/MVMCoreUI/Styles/MFStyler.m +++ b/MVMCoreUI/Styles/MFStyler.m @@ -13,6 +13,7 @@ #import "NSLayoutConstraint+MFConvenience.h" #import "MVMCoreUISplitViewController.h" @import MVMCore.MVMCoreDispatchUtility; +#import CGFloat const PaddingDefault = 24; CGFloat const PaddingDefaultHorizontalSpacing = 32; @@ -947,7 +948,8 @@ CGFloat const LabelWithInternalButtonLineSpace = 2; if ([times containsObject:@"DD"]) { [timeString appendString:[NSString stringWithFormat:@"%02ld",days]]; if (timeUnit == MFTimeFormatNormal) { - NSString *dayUnit = (days <= 1) ? @" day": @" days"; + NSString *dayKey = (days <= 1) ? @"CountDownDay": @"CountDownDays"; + NSString *dayUnit = [MVMCoreUIUtility hardcodedStringWithKey:dayKey]; [timeString appendString:dayUnit]; } else if (timeUnit == MFTimeFormatColon && ![[times lastObject] isEqualToString:@"DD"]) { [timeString appendString:@" : "]; @@ -962,7 +964,8 @@ CGFloat const LabelWithInternalButtonLineSpace = 2; } [timeString appendString:[NSString stringWithFormat:@"%02d",hours]]; if (timeUnit == MFTimeFormatNormal) { - NSString *hourUnit = (hours <= 1) ? @" hour": @" hours"; + NSString *hourKey = (hours <= 1) ? @"CountDownHour": @"CountDownHours"; + NSString *hourUnit = [MVMCoreUIUtility hardcodedStringWithKey:hourKey]; [timeString appendString:hourUnit]; } else if (timeUnit == MFTimeFormatColon && ![[times lastObject] isEqualToString:@"HH"]) { [timeString appendString:@" : "]; @@ -981,7 +984,8 @@ CGFloat const LabelWithInternalButtonLineSpace = 2; } [timeString appendString:[NSString stringWithFormat:@"%02d",minutes]]; if (timeUnit == MFTimeFormatNormal) { - NSString *minuteUnit = (minutes <= 1) ? @" min": @" mins"; + NSString *minKey = (minutes <= 1) ? @"CountDownMin": @"CountDownMins"; + NSString *minuteUnit = [MVMCoreUIUtility hardcodedStringWithKey:minKey]; [timeString appendString:minuteUnit]; } else if (timeUnit == MFTimeFormatColon && ![[times lastObject] isEqualToString:@"MM"]) { [timeString appendString:@" : "]; @@ -1005,7 +1009,8 @@ CGFloat const LabelWithInternalButtonLineSpace = 2; } [timeString appendString:[NSString stringWithFormat:@"%02d",seconds]]; if (timeUnit == MFTimeFormatNormal) { - NSString *secondUnit = (seconds <= 1) ? @" sec": @" secs"; + NSString *secondKey = (seconds <= 1) ? @"CountDownSec": @"CountDownSecs"; + NSString *secondUnit = [MVMCoreUIUtility hardcodedStringWithKey:secondKey]; [timeString appendString:secondUnit]; } } diff --git a/MVMCoreUI/SupportingFiles/Strings/en.lproj/Localizable.strings b/MVMCoreUI/SupportingFiles/Strings/en.lproj/Localizable.strings index 472bb9b6..96088cab 100644 --- a/MVMCoreUI/SupportingFiles/Strings/en.lproj/Localizable.strings +++ b/MVMCoreUI/SupportingFiles/Strings/en.lproj/Localizable.strings @@ -11,6 +11,7 @@ // Tab "AccTab" = ", tab"; "AccTabHint" = "Double tap to select."; +"AccTabIndex" = ", %ld of %ld"; // top alert "toptabbar_tab_selected" = ", tab, Selected"; "AccTopAlertClosed" = "Top alert notification is closed."; @@ -39,3 +40,12 @@ "AccOn" = "on"; "AccOff" = "off"; "AccToggleHint" = "double tap to toggle"; +//Styler +"CountDownDay" = " day"; +"CountDownHour" = " hour"; +"CountDownMin" = " min"; +"CountDownSec" = " sec"; +"CountDownDays" = " days"; +"CountDownHours" = " hours"; +"CountDownMins" = " mins"; +"CountDownSecs" = " secs"; diff --git a/MVMCoreUI/SupportingFiles/Strings/es-MX.lproj/Localizable.strings b/MVMCoreUI/SupportingFiles/Strings/es-MX.lproj/Localizable.strings index f640133a..a006b218 100644 --- a/MVMCoreUI/SupportingFiles/Strings/es-MX.lproj/Localizable.strings +++ b/MVMCoreUI/SupportingFiles/Strings/es-MX.lproj/Localizable.strings @@ -10,6 +10,7 @@ // Tab "AccTab" = ", pestaña"; "AccTabHint" = "Toca dos veces para seleccionar."; +"AccTabIndex" = ", %ld de %ld"; // top alert "toptabbar_tab_selected" = ", pestaña, Seleccionado"; "AccTopAlertClosed" = "La notificación de alerta máxima está desactivada."; @@ -38,3 +39,12 @@ "AccOn" = "encendido"; "AccOff" = "apagado"; "AccToggleHint" = "toca dos veces para alternar"; +//Styler +"CountDownDay" = " día"; +"CountDownHour" = " hora"; +"CountDownMin" = " min"; +"CountDownSec" = " seg"; +"CountDownDays" = " días"; +"CountDownHours" = " horas"; +"CountDownMins" = " min"; +"CountDownSecs" = " seg"; diff --git a/MVMCoreUI/SupportingFiles/Strings/es.lproj/Localizable.strings b/MVMCoreUI/SupportingFiles/Strings/es.lproj/Localizable.strings index f640133a..a006b218 100644 --- a/MVMCoreUI/SupportingFiles/Strings/es.lproj/Localizable.strings +++ b/MVMCoreUI/SupportingFiles/Strings/es.lproj/Localizable.strings @@ -10,6 +10,7 @@ // Tab "AccTab" = ", pestaña"; "AccTabHint" = "Toca dos veces para seleccionar."; +"AccTabIndex" = ", %ld de %ld"; // top alert "toptabbar_tab_selected" = ", pestaña, Seleccionado"; "AccTopAlertClosed" = "La notificación de alerta máxima está desactivada."; @@ -38,3 +39,12 @@ "AccOn" = "encendido"; "AccOff" = "apagado"; "AccToggleHint" = "toca dos veces para alternar"; +//Styler +"CountDownDay" = " día"; +"CountDownHour" = " hora"; +"CountDownMin" = " min"; +"CountDownSec" = " seg"; +"CountDownDays" = " días"; +"CountDownHours" = " horas"; +"CountDownMins" = " min"; +"CountDownSecs" = " seg";