Fix accessiblity issue around work tab

1. Instead of always announcing "Apps list", we now announce
"personal apps list" and "work apps list" if tab is there.
2. Fix an issue that "personal" and "work" are announced twice.
3. Work footer is now announced as a group

FIX: 71703082

Change-Id: I0240bc04df09a5599540cfe67f0f48156f285548
This commit is contained in:
Tony Mak 2018-03-14 15:40:41 +00:00
parent 446aa8c122
commit 98f7350f8f
5 changed files with 24 additions and 5 deletions

View File

@ -25,6 +25,7 @@ import com.android.launcher3.AbstractFloatingView;
import com.android.launcher3.Launcher;
import com.android.launcher3.LauncherState;
import com.android.launcher3.R;
import com.android.launcher3.allapps.AllAppsContainerView;
import com.android.launcher3.userevent.nano.LauncherLogProto.ContainerType;
/**
@ -58,7 +59,8 @@ public class AllAppsState extends LauncherState {
@Override
public String getDescription(Launcher launcher) {
return launcher.getString(R.string.all_apps_button_label);
AllAppsContainerView appsView = launcher.getAppsView();
return appsView.getDescription();
}
@Override

View File

@ -17,6 +17,7 @@
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:focusable="true"
android:paddingBottom="@dimen/all_apps_work_profile_tab_footer_bottom_padding"
android:paddingLeft="@dimen/dynamic_grid_cell_padding_x"
android:paddingRight="@dimen/dynamic_grid_cell_padding_x"

View File

@ -80,6 +80,9 @@
<!-- All applications label -->
<string name="all_apps_button_label">Apps list</string>
<string name="all_apps_button_personal_label">Personal apps list</string>
<string name="all_apps_button_work_label">Work apps list</string>
<!-- Label for button in all applications label to go back home (to the workspace / desktop)
for accessibilty (spoken when the button gets focus). -->
<string name="all_apps_home_button_label">Home</string>

View File

@ -25,6 +25,7 @@ import android.graphics.Rect;
import android.os.Process;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import android.support.annotation.StringRes;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.text.Selection;
@ -192,6 +193,19 @@ public class AllAppsContainerView extends SpringRelativeLayout implements DragSo
return false;
}
public String getDescription() {
@StringRes int descriptionRes;
if (mUsingTabs) {
descriptionRes =
mViewPager.getNextPage() == 0
? R.string.all_apps_button_personal_label
: R.string.all_apps_button_work_label;
} else {
descriptionRes = R.string.all_apps_button_label;
}
return getContext().getString(descriptionRes);
}
public AllAppsRecyclerView getActiveRecyclerView() {
if (!mUsingTabs || mViewPager.getNextPage() == 0) {
return mAH[AdapterHolder.MAIN].recyclerView;

View File

@ -17,10 +17,9 @@ package com.android.launcher3.allapps;
import android.content.Context;
import android.util.AttributeSet;
import android.view.MotionEvent;
import com.android.launcher3.PagedView;
import com.android.launcher3.R;
public class AllAppsPagedView extends PagedView<PersonalWorkSlidingTabStrip> {
@ -42,8 +41,8 @@ public class AllAppsPagedView extends PagedView<PersonalWorkSlidingTabStrip> {
@Override
protected String getCurrentPageDescription() {
return getResources().getString(
getNextPage() == 0 ? R.string.all_apps_personal_tab : R.string.all_apps_work_tab);
// Not necessary, tab-bar already has two tabs with their own descriptions.
return "";
}
@Override