diff options
author | Minh Nguyễn <mxn@1ec5.org> | 2017-11-02 18:19:49 -0700 |
---|---|---|
committer | Minh Nguyễn <mxn@1ec5.org> | 2017-11-02 18:19:49 -0700 |
commit | 08ff14292a4f8dac4db86cd7f37faee07fbe618c (patch) | |
tree | 8e502fa4eabfb68e5370749222885172049873bb | |
parent | 096d48661f844ae94056cf41687f2e810be7a5e4 (diff) | |
download | qtlocation-mapboxgl-upstream/1ec5-a11y-features-4821.tar.gz |
[ios] Announce one-way roadsupstream/1ec5-a11y-features-4821
A road feature’s accessibility value now indicates whether the road is a one-way road.
-rw-r--r-- | platform/ios/resources/Base.lproj/Localizable.strings | 3 | ||||
-rw-r--r-- | platform/ios/src/MGLMapAccessibilityElement.mm | 5 | ||||
-rw-r--r-- | platform/ios/test/MGLMapAccessibilityElementTests.m | 9 |
3 files changed, 15 insertions, 2 deletions
diff --git a/platform/ios/resources/Base.lproj/Localizable.strings b/platform/ios/resources/Base.lproj/Localizable.strings index d214ccb4d1..039ef4c4b1 100644 --- a/platform/ios/resources/Base.lproj/Localizable.strings +++ b/platform/ios/resources/Base.lproj/Localizable.strings @@ -67,6 +67,9 @@ /* Accessibility value indicating that a road is a divided road (dual carriageway) */ "ROAD_DIVIDED_A11Y_VALUE" = "Divided road"; +/* Accessibility value indicating that a road is a one-way road */ +"ROAD_ONEWAY_A11Y_VALUE" = "One way"; + /* String format for accessibility value for road feature; {route number} */ "ROAD_REF_A11Y_FMT" = "Route %@"; diff --git a/platform/ios/src/MGLMapAccessibilityElement.mm b/platform/ios/src/MGLMapAccessibilityElement.mm index e36f35a60b..4e5f165fbf 100644 --- a/platform/ios/src/MGLMapAccessibilityElement.mm +++ b/platform/ios/src/MGLMapAccessibilityElement.mm @@ -142,6 +142,11 @@ [facts addObject:ref]; } + // Announce whether the road is a one-way road. + if ([attributes[@"oneway"] isEqualToString:@"true"]) { + [facts addObject:NSLocalizedStringWithDefaultValue(@"ROAD_ONEWAY_A11Y_VALUE", nil, nil, @"One way", @"Accessibility value indicating that a road is a one-way road")]; + } + // Announce whether the road is a divided road. MGLPolyline *polyline; if ([feature isKindOfClass:[MGLMultiPolylineFeature class]]) { diff --git a/platform/ios/test/MGLMapAccessibilityElementTests.m b/platform/ios/test/MGLMapAccessibilityElementTests.m index 02656e5452..5c79d85de1 100644 --- a/platform/ios/test/MGLMapAccessibilityElementTests.m +++ b/platform/ios/test/MGLMapAccessibilityElementTests.m @@ -62,15 +62,20 @@ MGLPolylineFeature *roadFeature = [MGLPolylineFeature polylineWithCoordinates:coordinates count:sizeof(coordinates) / sizeof(coordinates[0])]; roadFeature.attributes = @{ @"ref": @"42", + @"oneway": @"true", }; MGLRoadFeatureAccessibilityElement *element = [[MGLRoadFeatureAccessibilityElement alloc] initWithAccessibilityContainer:self feature:roadFeature]; - XCTAssertEqualObjects(element.accessibilityValue, @"Route 42, southwest to northeast"); + XCTAssertEqualObjects(element.accessibilityValue, @"Route 42, One way, southwest to northeast"); CLLocationCoordinate2D opposingCoordinates[] = { - CLLocationCoordinate2DMake(1, 0), CLLocationCoordinate2DMake(2, 1), + CLLocationCoordinate2DMake(1, 0), }; MGLPolylineFeature *opposingRoadFeature = [MGLPolylineFeature polylineWithCoordinates:opposingCoordinates count:sizeof(opposingCoordinates) / sizeof(opposingCoordinates[0])]; + opposingRoadFeature.attributes = @{ + @"ref": @"42", + @"oneway": @"true", + }; MGLMultiPolylineFeature *dividedRoadFeature = [MGLMultiPolylineFeature multiPolylineWithPolylines:@[roadFeature, opposingRoadFeature]]; dividedRoadFeature.attributes = @{ @"ref": @"42", |