diff options
author | Minh Nguyễn <mxn@1ec5.org> | 2017-09-10 14:21:28 -0700 |
---|---|---|
committer | Minh Nguyễn <mxn@1ec5.org> | 2017-11-02 15:19:54 -0700 |
commit | 91d563574cca1ca57f6380c0ce4830dec6f62cc9 (patch) | |
tree | 37ef4b63fdba46fa724e738fd504ae225942da0a | |
parent | 56088bfa0322619330d79460bb987a09ebf5bfb8 (diff) | |
download | qtlocation-mapboxgl-91d563574cca1ca57f6380c0ce4830dec6f62cc9.tar.gz |
[ios] Refactored accessibility traits
Also created a new MGLPlaceFeatureAccessibilityElement class.
-rw-r--r-- | platform/ios/src/MGLMapAccessibilityElement.h | 4 | ||||
-rw-r--r-- | platform/ios/src/MGLMapAccessibilityElement.m | 30 |
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. |