summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMinh Nguyễn <mxn@1ec5.org>2017-11-02 18:19:49 -0700
committerMinh Nguyễn <mxn@1ec5.org>2017-11-02 18:19:49 -0700
commit08ff14292a4f8dac4db86cd7f37faee07fbe618c (patch)
tree8e502fa4eabfb68e5370749222885172049873bb
parent096d48661f844ae94056cf41687f2e810be7a5e4 (diff)
downloadqtlocation-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.strings3
-rw-r--r--platform/ios/src/MGLMapAccessibilityElement.mm5
-rw-r--r--platform/ios/test/MGLMapAccessibilityElementTests.m9
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",