From ef82095a21b46916cc5a69e0c6996e599e550a80 Mon Sep 17 00:00:00 2001 From: Tobrun Date: Wed, 1 Mar 2017 17:07:01 -0500 Subject: [PATCH] [android] - add accessibility support to the Android SDK by applying content descriptions on Views overlain on the map. (#8230) --- .../annotations/MarkerViewManager.java | 1 + .../com/mapbox/mapboxsdk/maps/MapView.java | 3 +++ .../mapboxsdk/maps/widgets/CompassView.java | 1 - .../src/main/res-public/values/public.xml | 6 ++++++ .../res/layout/mapbox_mapview_internal.xml | 18 +++++++++++------- .../main/res/layout/mapbox_mapview_preview.xml | 4 ++-- .../src/main/res/values/strings.xml | 7 ++++--- 7 files changed, 27 insertions(+), 13 deletions(-) diff --git a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/annotations/MarkerViewManager.java b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/annotations/MarkerViewManager.java index 17a186637..315e12d28 100644 --- a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/annotations/MarkerViewManager.java +++ b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/annotations/MarkerViewManager.java @@ -636,6 +636,7 @@ public class MarkerViewManager implements MapView.OnMapChangedListener { viewHolder = (ViewHolder) convertView.getTag(); } viewHolder.imageView.setImageBitmap(marker.getIcon().getBitmap()); + viewHolder.imageView.setContentDescription(marker.getTitle()); return convertView; } diff --git a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/MapView.java b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/MapView.java index 16b7bf180..8fa2d0b15 100644 --- a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/MapView.java +++ b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/MapView.java @@ -118,6 +118,9 @@ public class MapView extends FrameLayout { ImageView attrView = (ImageView) view.findViewById(R.id.attributionView); initalizeDrawingSurface(context, options); + // add accessibility support + setContentDescription(context.getString(R.string.mapbox_mapActionDescription)); + // create native Map object nativeMapView = new NativeMapView(this); diff --git a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/widgets/CompassView.java b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/widgets/CompassView.java index 6d8adc1e2..5c9cf93eb 100644 --- a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/widgets/CompassView.java +++ b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/widgets/CompassView.java @@ -56,7 +56,6 @@ public final class CompassView extends AppCompatImageView implements Runnable, F private void initialize(Context context) { setImageDrawable(ContextCompat.getDrawable(getContext(), R.drawable.mapbox_compass_icon)); - setContentDescription(getResources().getString(R.string.mapbox_compassContentDescription)); setEnabled(false); // Layout params diff --git a/platform/android/MapboxGLAndroidSDK/src/main/res-public/values/public.xml b/platform/android/MapboxGLAndroidSDK/src/main/res-public/values/public.xml index e786aaca4..641020906 100644 --- a/platform/android/MapboxGLAndroidSDK/src/main/res-public/values/public.xml +++ b/platform/android/MapboxGLAndroidSDK/src/main/res-public/values/public.xml @@ -74,6 +74,12 @@ + + + + + + diff --git a/platform/android/MapboxGLAndroidSDK/src/main/res/layout/mapbox_mapview_internal.xml b/platform/android/MapboxGLAndroidSDK/src/main/res/layout/mapbox_mapview_internal.xml index 9810e8900..e6a267778 100644 --- a/platform/android/MapboxGLAndroidSDK/src/main/res/layout/mapbox_mapview_internal.xml +++ b/platform/android/MapboxGLAndroidSDK/src/main/res/layout/mapbox_mapview_internal.xml @@ -5,30 +5,34 @@ android:id="@+id/surfaceView" android:layout_width="match_parent" android:layout_height="match_parent" - android:visibility="gone" /> + android:contentDescription="@null" + android:visibility="gone"/> + android:background="@android:color/transparent" + android:contentDescription="@null"/> + android:layout_height="match_parent" + android:contentDescription="@string/mapbox_myLocationViewContentDescription"/> + android:layout_height="wrap_content" + android:contentDescription="@string/mapbox_compassContentDescription"/> + android:contentDescription="@null" + android:src="@drawable/mapbox_logo_icon"/> + android:src="@drawable/mapbox_info_bg_selector"/> diff --git a/platform/android/MapboxGLAndroidSDK/src/main/res/layout/mapbox_mapview_preview.xml b/platform/android/MapboxGLAndroidSDK/src/main/res/layout/mapbox_mapview_preview.xml index d87f44358..d015bc578 100644 --- a/platform/android/MapboxGLAndroidSDK/src/main/res/layout/mapbox_mapview_preview.xml +++ b/platform/android/MapboxGLAndroidSDK/src/main/res/layout/mapbox_mapview_preview.xml @@ -17,8 +17,8 @@ android:layout_alignParentLeft="true" android:layout_marginBottom="@dimen/mapbox_eight_dp" android:layout_marginLeft="@dimen/mapbox_eight_dp" - android:contentDescription="@string/mapbox_iconContentDescription" - android:src="@drawable/mapbox_logo_icon" /> + android:contentDescription="@null" + android:src="@drawable/mapbox_logo_icon"/> - Map compass. Click to reset the map rotation to North. - Attribution icon. Click to show attribution dialog. + Map compass. Activate to reset the map rotation to North. + Attribution icon. Activate to show attribution dialog. + Location View. This shows your location on the map. + Showing a Map created with Mapbox. Scroll by dragging two fingers. Zoom by pinching two fingers. Mapbox Android SDK Make Mapbox Maps Better You are helping to make OpenStreetMap and Mapbox maps better by contributing anonymous usage data. Agree Disagree More info - The Mapbox logo. Title Description Address