Brion VIBBER has uploaded a new change for review. https://gerrit.wikimedia.org/r/151788
Change subject: Work in progress: accessibility fixes ...................................................................... Work in progress: accessibility fixes * adds localizable accessibility labels to wiki glyph buttons * adds button and link traits to some places where they belong Lots more to improve still... Bug: 69120 Change-Id: I9ddb8b277194afc947dd04a2bf810892dfc419a1 --- M wikipedia/MenuButton/MenuButton.m M wikipedia/MenuButton/WikiGlyphButton.m M wikipedia/View Controllers/Navigation/Bottom/BottomMenuViewController.m M wikipedia/View Controllers/Navigation/Primary/PrimaryMenuViewController.m M wikipedia/View Controllers/Navigation/Secondary/SecondaryMenuViewController.m M wikipedia/View Controllers/Navigation/Top/TopMenuViewController.m M wikipedia/en.lproj/Localizable.strings M wikipedia/qqq.lproj/Localizable.strings 8 files changed, 60 insertions(+), 11 deletions(-) git pull ssh://gerrit.wikimedia.org:29418/apps/ios/wikipedia refs/changes/88/151788/1 diff --git a/wikipedia/MenuButton/MenuButton.m b/wikipedia/MenuButton/MenuButton.m index 4d93521..8d3bebf 100755 --- a/wikipedia/MenuButton/MenuButton.m +++ b/wikipedia/MenuButton/MenuButton.m @@ -57,6 +57,8 @@ [self addSubview:self.label]; self.margin = margin; [self constrainLabel]; + self.isAccessibilityElement = YES; + self.accessibilityTraits = UIAccessibilityTraitButton; } return self; } diff --git a/wikipedia/MenuButton/WikiGlyphButton.m b/wikipedia/MenuButton/WikiGlyphButton.m index 80f18a8..31709dc 100644 --- a/wikipedia/MenuButton/WikiGlyphButton.m +++ b/wikipedia/MenuButton/WikiGlyphButton.m @@ -30,6 +30,8 @@ self.clipsToBounds = YES; self.label = [[WikiGlyphLabel alloc] init]; self.label.translatesAutoresizingMaskIntoConstraints = NO; + self.isAccessibilityElement = YES; + self.accessibilityTraits = UIAccessibilityTraitButton; [self addSubview:self.label]; [self constrainLabel]; } @@ -43,6 +45,11 @@ { _enabled = enabled; self.alpha = (enabled) ? 1.0 : 0.2; + if (enabled) { + self.accessibilityTraits = self.accessibilityTraits & (~UIAccessibilityTraitNotEnabled); + } else { + self.accessibilityTraits = self.accessibilityTraits | UIAccessibilityTraitNotEnabled; + } } -(void)constrainLabel diff --git a/wikipedia/View Controllers/Navigation/Bottom/BottomMenuViewController.m b/wikipedia/View Controllers/Navigation/Bottom/BottomMenuViewController.m index d4660d3..7113632 100644 --- a/wikipedia/View Controllers/Navigation/Bottom/BottomMenuViewController.m +++ b/wikipedia/View Controllers/Navigation/Bottom/BottomMenuViewController.m @@ -63,6 +63,7 @@ color: buttonColor size: buttonTextSize baselineOffset: baseLineOffset]; + self.backButton.accessibilityLabel = MWLocalizedString(@"menu-back-accessibility-label", nil); self.backButton.tag = BOTTOM_MENU_BUTTON_PREVIOUS; [self.forwardButton.label setWikiText: isRTL ? IOS_WIKIGLYPH_BACKWARD : IOS_WIKIGLYPH_FORWARD @@ -70,6 +71,7 @@ size: buttonTextSize baselineOffset: baseLineOffset ]; + self.forwardButton.accessibilityLabel = MWLocalizedString(@"menu-forward-accessibility-label", nil); self.forwardButton.tag = BOTTOM_MENU_BUTTON_NEXT; // self.forwardButton.label.transform = CGAffineTransformMakeScale(-1, 1); @@ -79,6 +81,7 @@ baselineOffset: baseLineOffset + 1.0 ]; self.rightButton.tag = BOTTOM_MENU_BUTTON_SHARE; + self.rightButton.accessibilityLabel = MWLocalizedString(@"menu-share-accessibility-label", nil); self.allButtons = @[self.backButton, self.forwardButton, self.rightButton]; diff --git a/wikipedia/View Controllers/Navigation/Primary/PrimaryMenuViewController.m b/wikipedia/View Controllers/Navigation/Primary/PrimaryMenuViewController.m index fc76834..c25bcd6 100644 --- a/wikipedia/View Controllers/Navigation/Primary/PrimaryMenuViewController.m +++ b/wikipedia/View Controllers/Navigation/Primary/PrimaryMenuViewController.m @@ -73,6 +73,7 @@ size: 64 baselineOffset: 2.0 ]; + self.moreButton.accessibilityLabel = MWLocalizedString(@"menu-more-accessibility-label", nil); self.moreButton.label.textAlignment = [WikipediaAppUtils rtlSafeAlignment]; diff --git a/wikipedia/View Controllers/Navigation/Secondary/SecondaryMenuViewController.m b/wikipedia/View Controllers/Navigation/Secondary/SecondaryMenuViewController.m index c69007e..cc4b487 100644 --- a/wikipedia/View Controllers/Navigation/Secondary/SecondaryMenuViewController.m +++ b/wikipedia/View Controllers/Navigation/Secondary/SecondaryMenuViewController.m @@ -309,6 +309,11 @@ NSNumber *rowType = row[@"type"]; rowView.rowType = rowType.integerValue; + + NSNumber *traits = row[@"accessibilityTraits"]; + if (traits) { + rowView.textLabel.accessibilityTraits = traits.integerValue; + } } // Let the rows know their relative positions so they can draw @@ -398,6 +403,7 @@ @"tag": @(SECONDARY_MENU_ROW_INDEX_HEADING_ZERO), @"icon": @"", @"type": @(ROW_TYPE_HEADING), + @"accessibilityTraits": @(UIAccessibilityTraitLink), }.mutableCopy , @{ @@ -405,6 +411,7 @@ @"tag": @(SECONDARY_MENU_ROW_INDEX_ZERO_FAQ), @"icon": @"", @"type": @(ROW_TYPE_SELECTION), + @"accessibilityTraits": @(UIAccessibilityTraitLink), }.mutableCopy , @{ @@ -442,6 +449,7 @@ @"tag": @(SECONDARY_MENU_ROW_INDEX_PRIVACY_POLICY), @"icon": @"", @"type": @(ROW_TYPE_SELECTION), + @"accessibilityTraits": @(UIAccessibilityTraitLink), }.mutableCopy , @{ @@ -449,6 +457,7 @@ @"tag": @(SECONDARY_MENU_ROW_INDEX_TERMS), @"icon": @"", @"type": @(ROW_TYPE_SELECTION), + @"accessibilityTraits": @(UIAccessibilityTraitLink), }.mutableCopy , /* @@ -478,6 +487,7 @@ @"tag": @(SECONDARY_MENU_ROW_INDEX_RATE_APP), @"icon": @"", @"type": @(ROW_TYPE_SELECTION), + @"accessibilityTraits": @(UIAccessibilityTraitLink), }.mutableCopy , @{ diff --git a/wikipedia/View Controllers/Navigation/Top/TopMenuViewController.m b/wikipedia/View Controllers/Navigation/Top/TopMenuViewController.m index 99b35af..d556e93 100644 --- a/wikipedia/View Controllers/Navigation/Top/TopMenuViewController.m +++ b/wikipedia/View Controllers/Navigation/Top/TopMenuViewController.m @@ -221,7 +221,7 @@ self.textFieldContainer.textField.rightView = clearButton; self.textFieldContainer.textField.rightViewMode = UITextFieldViewModeNever; - WikiGlyphButton *(^getWikiGlyphButton)(NSString *, NavBarItemTag, CGFloat, CGFloat) = ^WikiGlyphButton *(NSString *character, NavBarItemTag tag, CGFloat size, CGFloat baselineOffset) { + WikiGlyphButton *(^getWikiGlyphButton)(NSString *, NSString *accessLabel, NavBarItemTag, CGFloat, CGFloat) = ^WikiGlyphButton *(NSString *character, NSString *accessLabel, NavBarItemTag tag, CGFloat size, CGFloat baselineOffset) { WikiGlyphButton *button = [[WikiGlyphButton alloc] init]; [button.label setWikiText:character color:[UIColor blackColor] size:size baselineOffset:baselineOffset]; @@ -230,6 +230,9 @@ [button addGestureRecognizer:[[UITapGestureRecognizer alloc] initWithTarget: self action: @selector(postNavItemTappedNotification:)]]; button.tag = tag; + + button.accessibilityLabel = accessLabel; + button.accessibilityTraits = UIAccessibilityTraitButton; return button; }; @@ -239,16 +242,16 @@ BOOL isRTL = [WikipediaAppUtils isDeviceLanguageRTL]; NSString *caret = !isRTL ? WIKIGLYPH_CARET_LEFT: IOS_WIKIGLYPH_FORWARD; - self.buttonPencil = getWikiGlyphButton(WIKIGLYPH_PENCIL, NAVBAR_BUTTON_PENCIL, size, baselineOffset); - self.buttonX = getWikiGlyphButton(WIKIGLYPH_X, NAVBAR_BUTTON_X, size - 4, baselineOffset - 0.5); - self.buttonEye = getWikiGlyphButton(WIKIGLYPH_EYE, NAVBAR_BUTTON_EYE, size, baselineOffset); - self.buttonArrowLeft = getWikiGlyphButton(caret, NAVBAR_BUTTON_ARROW_LEFT, size, baselineOffset - 2.0); - self.buttonArrowRight = getWikiGlyphButton(caret, NAVBAR_BUTTON_ARROW_RIGHT, size, baselineOffset - 2.0); - self.buttonW = getWikiGlyphButton(IOS_WIKIGLYPH_W, NAVBAR_BUTTON_LOGO_W, size, baselineOffset); - self.buttonTOC = getWikiGlyphButton(IOS_WIKIGLYPH_TOC, NAVBAR_BUTTON_TOC, size, baselineOffset); - self.buttonMagnify = getWikiGlyphButton(IOS_WIKIGLYPH_MAGNIFY, NAVBAR_BUTTON_MAGNIFY, size, baselineOffset); - self.buttonBlank = getWikiGlyphButton(@"", NAVBAR_BUTTON_BLANK, size, baselineOffset); - self.buttonCancel = getWikiGlyphButton(@"", NAVBAR_BUTTON_CANCEL, size, baselineOffset); + self.buttonPencil = getWikiGlyphButton(WIKIGLYPH_PENCIL, MWLocalizedString(@"menu-edit-accessibility-label", nil), NAVBAR_BUTTON_PENCIL, size, baselineOffset); + self.buttonX = getWikiGlyphButton(WIKIGLYPH_X, MWLocalizedString(@"menu-close-accessibility-label", nil), NAVBAR_BUTTON_X, size - 4, baselineOffset - 0.5); + self.buttonEye = getWikiGlyphButton(WIKIGLYPH_EYE, MWLocalizedString(@"menu-preview-accessibility-label", nil), NAVBAR_BUTTON_EYE, size, baselineOffset); + self.buttonArrowLeft = getWikiGlyphButton(caret, MWLocalizedString(@"menu-back-accessibility-label", nil), NAVBAR_BUTTON_ARROW_LEFT, size, baselineOffset - 2.0); + self.buttonArrowRight = getWikiGlyphButton(caret, MWLocalizedString(@"menu-forward-accessibility-label", nil), NAVBAR_BUTTON_ARROW_RIGHT, size, baselineOffset - 2.0); + self.buttonW = getWikiGlyphButton(IOS_WIKIGLYPH_W, MWLocalizedString(@"menu-w-accessibility-label", nil), NAVBAR_BUTTON_LOGO_W, size, baselineOffset); + self.buttonTOC = getWikiGlyphButton(IOS_WIKIGLYPH_TOC, MWLocalizedString(@"menu-toc-accessibility-label", nil), NAVBAR_BUTTON_TOC, size, baselineOffset); + self.buttonMagnify = getWikiGlyphButton(IOS_WIKIGLYPH_MAGNIFY, MWLocalizedString(@"menu-search-accessibility-label", nil), NAVBAR_BUTTON_MAGNIFY, size, baselineOffset); + self.buttonBlank = getWikiGlyphButton(@"", @"", NAVBAR_BUTTON_BLANK, size, baselineOffset); + self.buttonCancel = getWikiGlyphButton(@"", MWLocalizedString(@"menu-cancel-accessibility-label", nil), NAVBAR_BUTTON_CANCEL, size, baselineOffset); self.buttonCancel.label.font = [UIFont systemFontOfSize:17.0]; self.buttonCancel.label.text = MWLocalizedString(@"search-cancel", nil); diff --git a/wikipedia/en.lproj/Localizable.strings b/wikipedia/en.lproj/Localizable.strings index c16a57e..adf5373 100644 --- a/wikipedia/en.lproj/Localizable.strings +++ b/wikipedia/en.lproj/Localizable.strings @@ -193,3 +193,15 @@ "abuse-filter-disallow-heading" = "You cannot save this edit. Please go back and change it."; "abuse-filter-disallow-unconstructive" = "An automated filter has identified this edit as potentially unconstructive or a vandalism attempt."; "abuse-filter-disallow-notable" = "Wikipedia is an encyclopedia and only neutral, notable content belongs here."; + +"menu-edit-accessibility-label" = "Edit"; +"menu-close-accessibility-label" = "Close"; +"menu-preview-accessibility-label" = "Preview"; +"menu-back-accessibility-label" = "Back"; +"menu-forward-accessibility-label" = "Forward"; +"menu-w-accessibility-label" = "Menu"; +"menu-toc-accessibility-label" = "Contents"; +"menu-search-accessibility-label" = "Search"; +"menu-cancel-accessibility-label" = "Cancel"; +"menu-share-accessibility-label" = "Share"; +"menu-more-accessibility-label" = "More settings"; diff --git a/wikipedia/qqq.lproj/Localizable.strings b/wikipedia/qqq.lproj/Localizable.strings index b9f2a8f..f159bab 100644 --- a/wikipedia/qqq.lproj/Localizable.strings +++ b/wikipedia/qqq.lproj/Localizable.strings @@ -174,3 +174,14 @@ "abuse-filter-disallow-heading" = "Header text for disallowed edit warning."; "abuse-filter-disallow-unconstructive" = "Label text for unconstructive edit description"; "abuse-filter-disallow-notable" = "Label text for notable content description"; +"menu-edit-accessibility-label" = "Accessible label text for toolbar edit icon button"; +"menu-close-accessibility-label" = "Accessible label text for toolbar close icon button"; +"menu-preview-accessibility-label" = "Accessible label text for toolbar preview icon button"; +"menu-back-accessibility-label" = "Accessible label text for toolbar back icon button"; +"menu-forward-accessibility-label" = "Accessible label text for toolbar forward icon button"; +"menu-w-accessibility-label" = "Accessible label text for toolbar 'W' menu icon button"; +"menu-toc-accessibility-label" = "Accessible label text for toolbar table of contents icon button"; +"menu-search-accessibility-label" = "Accessible label text for toolbar search icon button"; +"menu-cancel-accessibility-label" = "Accessible label text for toolbar cancel button"; +"menu-share-accessibility-label" = "Accessible label text for toolbar share button"; +"menu-more-accessibility-label" = "Accessible label for more/... button in 'W' menu"; -- To view, visit https://gerrit.wikimedia.org/r/151788 To unsubscribe, visit https://gerrit.wikimedia.org/r/settings Gerrit-MessageType: newchange Gerrit-Change-Id: I9ddb8b277194afc947dd04a2bf810892dfc419a1 Gerrit-PatchSet: 1 Gerrit-Project: apps/ios/wikipedia Gerrit-Branch: master Gerrit-Owner: Brion VIBBER <br...@wikimedia.org> _______________________________________________ MediaWiki-commits mailing list MediaWiki-commits@lists.wikimedia.org https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits