Index: chrome/browser/ui/cocoa/profiles/avatar_button_controller.mm |
diff --git a/chrome/browser/ui/cocoa/profiles/avatar_button_controller.mm b/chrome/browser/ui/cocoa/profiles/avatar_button_controller.mm |
index 65024ab6b23c8b4839acc84e31de4e08c5b70cdd..08be14c19134bb8ff37e3458011a77edfc909d69 100644 |
--- a/chrome/browser/ui/cocoa/profiles/avatar_button_controller.mm |
+++ b/chrome/browser/ui/cocoa/profiles/avatar_button_controller.mm |
@@ -13,9 +13,11 @@ |
#include "chrome/browser/ui/browser_window.h" |
#import "chrome/browser/ui/cocoa/browser_window_controller.h" |
#include "components/signin/core/browser/signin_error_controller.h" |
+#include "grit/generated_resources.h" |
#include "grit/theme_resources.h" |
#import "ui/base/cocoa/appkit_utils.h" |
#import "ui/base/cocoa/hover_image_button.h" |
+#include "ui/base/l10n/l10n_util_mac.h" |
#include "ui/base/nine_image_painter_factory.h" |
#include "ui/base/resource/resource_bundle.h" |
#include "ui/gfx/image/image_skia_operations.h" |
@@ -51,7 +53,7 @@ NSImage* GetImageFromResourceID(int resourceId) { |
base::scoped_nsobject<NSImage> authenticationErrorImage_; |
} |
- (void)setIsThemedWindow:(BOOL)isThemedWindow; |
-- (void)setHasError:(BOOL)hasError; |
+- (void)setHasError:(BOOL)hasError withTitle:(NSString*)title; |
@end |
@@ -131,13 +133,19 @@ NSImage* GetImageFromResourceID(int resourceId) { |
isThemedWindow_ = isThemedWindow; |
} |
-- (void)setHasError:(BOOL)hasError { |
+- (void)setHasError:(BOOL)hasError withTitle:(NSString*)title { |
if (hasError) { |
authenticationErrorImage_.reset( |
[ui::ResourceBundle::GetSharedInstance().GetImageNamed( |
IDR_ICON_PROFILES_AVATAR_BUTTON_ERROR).ToNSImage() retain]); |
+ [self accessibilitySetOverrideValue:l10n_util::GetNSStringF( |
+ IDS_PROFILES_ACCOUNT_BUTTON_AUTH_ERROR_ACCESSIBLE_NAME, |
+ base::SysNSStringToUTF16(title)) |
+ forAttribute:NSAccessibilityTitleAttribute]; |
} else { |
authenticationErrorImage_.reset(); |
+ [self accessibilitySetOverrideValue:title |
+ forAttribute:NSAccessibilityTitleAttribute]; |
} |
} |
@@ -172,8 +180,7 @@ NSImage* GetImageFromResourceID(int resourceId) { |
[[CustomThemeButtonCell alloc] initWithThemedWindow:isThemedWindow_]); |
SigninErrorController* errorController = |
profiles::GetSigninErrorController(browser->profile()); |
- if (errorController) |
- [cell setHasError:errorController->HasError()]; |
+ |
[button_ setCell:cell.get()]; |
[self setView:button_]; |
@@ -189,6 +196,8 @@ NSImage* GetImageFromResourceID(int resourceId) { |
[button_ setAction:@selector(buttonClicked:)]; |
[self updateAvatarButtonAndLayoutParent:NO]; |
+ if (errorController) |
+ [cell setHasError:errorController->HasError() withTitle:[button_ title]]; |
NSNotificationCenter* center = [NSNotificationCenter defaultCenter]; |
[center addObserver:self |
@@ -262,7 +271,7 @@ NSImage* GetImageFromResourceID(int resourceId) { |
} |
- (void)updateErrorStatus:(BOOL)hasError { |
- [[button_ cell] setHasError:hasError]; |
+ [[button_ cell] setHasError:hasError withTitle:[button_ title]]; |
[self updateAvatarButtonAndLayoutParent:YES]; |
} |