From 08ff14292a4f8dac4db86cd7f37faee07fbe618c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Minh=20Nguye=CC=82=CC=83n?= Date: Thu, 2 Nov 2017 18:19:49 -0700 Subject: [ios] Announce one-way roads MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit A road feature’s accessibility value now indicates whether the road is a one-way road. --- platform/ios/resources/Base.lproj/Localizable.strings | 3 +++ platform/ios/src/MGLMapAccessibilityElement.mm | 5 +++++ 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", -- cgit v1.2.1