diff --git a/src/com/android/settings/applications/AppHeaderController.java b/src/com/android/settings/applications/AppHeaderController.java
index 01d5fc7..1d64fca 100644
--- a/src/com/android/settings/applications/AppHeaderController.java
+++ b/src/com/android/settings/applications/AppHeaderController.java
@@ -267,6 +267,8 @@
                         || !AppHeader.includeAppInfo(mFragment)) {
                     button.setVisibility(View.GONE);
                 } else {
+                    button.setContentDescription(
+                            mContext.getString(R.string.application_info_label));
                     button.setImageResource(com.android.settings.R.drawable.ic_info);
                     button.setOnClickListener(v -> AppInfoBase.startAppInfoFragment(
                             InstalledAppDetails.class, R.string.application_info_label,
diff --git a/tests/robotests/src/com/android/settings/applications/AppHeaderControllerTest.java b/tests/robotests/src/com/android/settings/applications/AppHeaderControllerTest.java
index 458af5b..3ee33aa 100644
--- a/tests/robotests/src/com/android/settings/applications/AppHeaderControllerTest.java
+++ b/tests/robotests/src/com/android/settings/applications/AppHeaderControllerTest.java
@@ -52,6 +52,7 @@
 import static com.google.common.truth.Truth.assertThat;
 import static org.mockito.Matchers.any;
 import static org.mockito.Matchers.anyInt;
+import static org.mockito.Matchers.eq;
 import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.verify;
 import static org.mockito.Mockito.when;
@@ -234,6 +235,25 @@
     }
 
     @Test
+    public void bindButton_hasAppInfo_shouldHaveContentDescription() {
+        final View appLinks = mLayoutInflater
+                .inflate(R.layout.app_details, null /* root */);
+        when(mFragment.getActivity()).thenReturn(mock(Activity.class));
+        when(mContext.getString(eq(R.string.application_info_label))).thenReturn("App Info");
+
+        mController = new AppHeaderController(mContext, mFragment, appLinks);
+        mController.setPackageName("123")
+                .setUid(UserHandle.USER_SYSTEM)
+                .setButtonActions(
+                        AppHeaderController.ActionType.ACTION_APP_INFO,
+                        AppHeaderController.ActionType.ACTION_NOTIF_PREFERENCE);
+        mController.done();
+
+        assertThat(appLinks.findViewById(R.id.left_button).getContentDescription())
+                .isEqualTo("App Info");
+    }
+
+    @Test
     public void bindButton_hasAppNotifIntent_shouldShowButton() {
         final View appLinks = mLayoutInflater
                 .inflate(R.layout.app_details, null /* root */);
