Side nav accounts menu a11y improvements
Add account type string to the content description for the
account filters menu items so Talkback reads them as well.
Bug: 29152997
Change-Id: Id7034b79769dce36479615b7e841b096f998ac28
diff --git a/src/com/android/contacts/ContactsDrawerActivity.java b/src/com/android/contacts/ContactsDrawerActivity.java
index a12d0e1..6ae6a59 100644
--- a/src/com/android/contacts/ContactsDrawerActivity.java
+++ b/src/com/android/contacts/ContactsDrawerActivity.java
@@ -43,6 +43,7 @@
import android.view.SubMenu;
import android.view.View;
import android.view.ViewGroup;
+import android.widget.LinearLayout;
import android.widget.Toast;
import com.android.contacts.activities.GroupMembersActivity;
@@ -53,6 +54,7 @@
import com.android.contacts.common.list.ContactListFilter;
import com.android.contacts.common.list.ContactListFilterController;
import com.android.contacts.common.model.AccountTypeManager;
+import com.android.contacts.common.model.account.AccountType;
import com.android.contacts.common.model.account.AccountWithDataSet;
import com.android.contacts.common.preference.ContactsPreferenceActivity;
import com.android.contacts.common.util.AccountFilterUtil;
@@ -488,6 +490,16 @@
menuItem.setIcon(filter.icon);
// Get rid of the default menu item overlay and show original account icons.
menuItem.getIcon().setColorFilter(Color.TRANSPARENT, PorterDuff.Mode.SRC_ATOP);
+ // Create a dummy action view to attach extra hidden content description to the menuItem
+ // for Talkback. We want Talkback to read out the account type but not have it be part
+ // of the menuItem title.
+ final AccountType account = AccountTypeManager.getInstance(this)
+ .getAccountType(filter.accountType, filter.dataSet);
+ LinearLayout view = (LinearLayout) LayoutInflater.from(this)
+ .inflate(R.layout.account_type_info, null);
+ view.setContentDescription(account.getDisplayLabel(this));
+ view.setVisibility(View.VISIBLE);
+ menuItem.setActionView(view);
}
if (getContactListFilter() != null) {