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

Reply via email to