summaryrefslogtreecommitdiff
path: root/platform/ios/src/MGLAnnotationView.mm
diff options
context:
space:
mode:
Diffstat (limited to 'platform/ios/src/MGLAnnotationView.mm')
-rw-r--r--platform/ios/src/MGLAnnotationView.mm43
1 files changed, 42 insertions, 1 deletions
diff --git a/platform/ios/src/MGLAnnotationView.mm b/platform/ios/src/MGLAnnotationView.mm
index 6f1d94c3e7..31657dbf4e 100644
--- a/platform/ios/src/MGLAnnotationView.mm
+++ b/platform/ios/src/MGLAnnotationView.mm
@@ -1,6 +1,8 @@
#import "MGLAnnotationView.h"
#import "MGLAnnotationView_Private.h"
-#import "MGLMapView.h"
+#import "MGLMapView_Internal.h"
+
+#import "NSBundle+MGLAdditions.h"
#include <mbgl/util/constants.hpp>
@@ -103,4 +105,43 @@
return [super actionForLayer:layer forKey:event];
}
+#pragma mark UIAccessibility methods
+
+- (BOOL)isAccessibilityElement {
+ return !self.hidden;
+}
+
+- (UIAccessibilityTraits)accessibilityTraits {
+ return UIAccessibilityTraitButton | UIAccessibilityTraitAdjustable;
+}
+
+- (NSString *)accessibilityLabel {
+ return [self.annotation respondsToSelector:@selector(title)] ? self.annotation.title : super.accessibilityLabel;
+}
+
+- (NSString *)accessibilityValue {
+ return [self.annotation respondsToSelector:@selector(subtitle)] ? self.annotation.subtitle : super.accessibilityValue;
+}
+
+- (NSString *)accessibilityHint {
+ return NSLocalizedStringWithDefaultValue(@"ANNOTATION_A11Y_HINT", nil, nil, @"Shows more info", @"Accessibility hint");
+}
+
+- (CGRect)accessibilityFrame {
+ CGRect accessibilityFrame = self.frame;
+ CGRect minimumFrame = CGRectInset({ self.center, CGSizeZero },
+ -MGLAnnotationAccessibilityElementMinimumSize.width / 2,
+ -MGLAnnotationAccessibilityElementMinimumSize.height / 2);
+ accessibilityFrame = CGRectUnion(accessibilityFrame, minimumFrame);
+ return accessibilityFrame;
+}
+
+- (void)accessibilityIncrement {
+ [self.superview accessibilityIncrement];
+}
+
+- (void)accessibilityDecrement {
+ [self.superview accessibilityDecrement];
+}
+
@end \ No newline at end of file