summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMinh Nguyễn <mxn@1ec5.org>2017-09-10 14:21:28 -0700
committerMinh Nguyễn <mxn@1ec5.org>2017-11-02 15:19:54 -0700
commit91d563574cca1ca57f6380c0ce4830dec6f62cc9 (patch)
tree37ef4b63fdba46fa724e738fd504ae225942da0a
parent56088bfa0322619330d79460bb987a09ebf5bfb8 (diff)
downloadqtlocation-mapboxgl-91d563574cca1ca57f6380c0ce4830dec6f62cc9.tar.gz
[ios] Refactored accessibility traits
Also created a new MGLPlaceFeatureAccessibilityElement class.
-rw-r--r--platform/ios/src/MGLMapAccessibilityElement.h4
-rw-r--r--platform/ios/src/MGLMapAccessibilityElement.m30
2 files changed, 26 insertions, 8 deletions
diff --git a/platform/ios/src/MGLMapAccessibilityElement.h b/platform/ios/src/MGLMapAccessibilityElement.h
index 9693c570f6..e59cd628fb 100644
--- a/platform/ios/src/MGLMapAccessibilityElement.h
+++ b/platform/ios/src/MGLMapAccessibilityElement.h
@@ -32,6 +32,10 @@ typedef uint32_t MGLAnnotationTag;
@end
+/** An accessibility element representing a place feature. */
+@interface MGLPlaceFeatureAccessibilityElement : MGLFeatureAccessibilityElement
+@end
+
/** An accessibility element representing the MGLMapView at large. */
@interface MGLMapViewProxyAccessibilityElement : UIAccessibilityElement
diff --git a/platform/ios/src/MGLMapAccessibilityElement.m b/platform/ios/src/MGLMapAccessibilityElement.m
index b0170a8506..2641dcdfc6 100644
--- a/platform/ios/src/MGLMapAccessibilityElement.m
+++ b/platform/ios/src/MGLMapAccessibilityElement.m
@@ -7,11 +7,8 @@
@implementation MGLMapAccessibilityElement
-- (instancetype)initWithAccessibilityContainer:(id)container {
- if (self = [super initWithAccessibilityContainer:container]) {
- self.accessibilityTraits = UIAccessibilityTraitButton | UIAccessibilityTraitAdjustable;
- }
- return self;
+- (UIAccessibilityTraits)accessibilityTraits {
+ return super.accessibilityTraits | UIAccessibilityTraitAdjustable;
}
- (void)accessibilityIncrement {
@@ -34,6 +31,10 @@
return self;
}
+- (UIAccessibilityTraits)accessibilityTraits {
+ return super.accessibilityTraits | UIAccessibilityTraitButton;
+}
+
@end
@implementation MGLFeatureAccessibilityElement
@@ -42,11 +43,24 @@
if (self = [super initWithAccessibilityContainer:container]) {
_feature = feature;
- NSDictionary *attributes = feature.attributes;
NSString *nameAttribute = [NSString stringWithFormat:@"name_%@",
[MGLVectorSource preferredMapboxStreetsLanguage]];
- self.accessibilityLabel = attributes[nameAttribute];
-
+ self.accessibilityLabel = [feature attributeForKey:nameAttribute];
+ }
+ return self;
+}
+
+- (UIAccessibilityTraits)accessibilityTraits {
+ return super.accessibilityTraits | UIAccessibilityTraitStaticText;
+}
+
+@end
+
+@implementation MGLPlaceFeatureAccessibilityElement
+
+- (instancetype)initWithAccessibilityContainer:(id)container feature:(id<MGLFeature>)feature {
+ if (self = [super initWithAccessibilityContainer:container feature:feature]) {
+ NSDictionary *attributes = feature.attributes;
NSMutableArray *facts = [NSMutableArray array];
// Announce the kind of place or POI.