Example usage for android.view View setAccessibilityDelegate

List of usage examples for android.view View setAccessibilityDelegate

Introduction

In this page you can find the example usage for android.view View setAccessibilityDelegate.

Prototype

public void setAccessibilityDelegate(@Nullable AccessibilityDelegate delegate) 

Source Link

Document

Sets a delegate for implementing accessibility support via composition (as opposed to inheritance).

Usage

From source file:Main.java

public static void updateAccessibilityComponentType(View view, String componentType) {
    if (componentType == null) {
        view.setAccessibilityDelegate(null);
        return;/*from w w w. j a v  a 2s . c  o m*/
    }
    switch (componentType) {
    case BUTTON:
        view.setAccessibilityDelegate(BUTTON_DELEGATE);
        break;
    case RADIOBUTTON_CHECKED:
        view.setAccessibilityDelegate(RADIOBUTTON_CHECKED_DELEGATE);
        break;
    case RADIOBUTTON_UNCHECKED:
        view.setAccessibilityDelegate(RADIOBUTTON_UNCHECKED_DELEGATE);
        break;
    default:
        view.setAccessibilityDelegate(null);
        break;
    }
}

From source file:com.facebook.react.uimanager.AccessibilityRoleUtil.java

/**
 * Method for setting accessibilityRole on view properties.
 *///from  w w w.j a  va  2  s  .co  m
public static void updateAccessibilityRole(View view, String role) {
    if (role == null) {
        view.setAccessibilityDelegate(null);
    }
    try {
        setRole(view, AccessibilityRole.valueOf(role.toUpperCase()));
    } catch (NullPointerException e) {
        view.setAccessibilityDelegate(null);
    } catch (IllegalArgumentException e) {
        view.setAccessibilityDelegate(null);
    }
}

From source file:com.android.talkback.menurules.RuleCustomActionTest.java

@MediumTest
public void testNodeWithCustomActions_shouldHaveOwnActions() throws Throwable {
    if (Build.VERSION.SDK_INT < RuleCustomAction.MIN_API_LEVEL) {
        return;/*from w  w w  . ja  v  a 2s  .  c  o  m*/
    }

    setContentView(R.layout.nested_views);

    View button = getActivity().findViewById(R.id.nested_button_1);
    button.setAccessibilityDelegate(new AccessibilityDelegate1());

    mTalkBack.getCursorController().setCursor(getNodeForId(R.id.nested_button_1));
    waitForAccessibilityIdleSync();

    AccessibilityNodeInfoCompat buttonInfo = getNodeForId(R.id.nested_button_1);
    waitForAccessibilityIdleSync();

    RuleCustomAction customAction = new RuleCustomAction();

    ListMenu listMenu = new ListMenu(mTalkBack);
    List<ContextMenuItem> items = customAction.getMenuItemsForNode(mTalkBack, listMenu.getMenuItemBuilder(),
            buttonInfo);

    assertEquals(2, items.size());
    assertHasItemWithTitle(items, "CA1");
    assertHasItemWithTitle(items, "CA2");
}

From source file:com.android.talkback.menurules.RuleCustomActionTest.java

@MediumTest
public void testNodeWithoutCustomActions_shouldInheritParentActions() throws Throwable {
    if (Build.VERSION.SDK_INT < RuleCustomAction.MIN_API_LEVEL) {
        return;/*from   ww w . j a va 2  s . c  om*/
    }

    setContentView(R.layout.nested_views);

    View parentFrame = getActivity().findViewById(R.id.parent_frame);
    parentFrame.setAccessibilityDelegate(new AccessibilityDelegate1());

    mTalkBack.getCursorController().setCursor(getNodeForId(R.id.nested_button_1));
    waitForAccessibilityIdleSync();

    AccessibilityNodeInfoCompat buttonInfo = getNodeForId(R.id.nested_button_1);
    waitForAccessibilityIdleSync();

    RuleCustomAction customAction = new RuleCustomAction();

    ListMenu listMenu = new ListMenu(mTalkBack);
    List<ContextMenuItem> items = customAction.getMenuItemsForNode(mTalkBack, listMenu.getMenuItemBuilder(),
            buttonInfo);

    assertEquals(2, items.size());
    assertHasItemWithTitle(items, "CA1");
    assertHasItemWithTitle(items, "CA2");
}

From source file:com.android.talkback.menurules.RuleCustomActionTest.java

@MediumTest
public void testNodeWithCustomActions_shouldNotInheritParentActions() throws Throwable {
    if (Build.VERSION.SDK_INT < RuleCustomAction.MIN_API_LEVEL) {
        return;//www .  j  a  va 2s .  c  o m
    }

    setContentView(R.layout.nested_views);

    View parentFrame = getActivity().findViewById(R.id.parent_frame);
    parentFrame.setAccessibilityDelegate(new AccessibilityDelegate1());
    View button = getActivity().findViewById(R.id.nested_button_1);
    button.setAccessibilityDelegate(new AccessibilityDelegate2());

    mTalkBack.getCursorController().setCursor(getNodeForId(R.id.nested_button_1));
    waitForAccessibilityIdleSync();

    AccessibilityNodeInfoCompat buttonInfo = getNodeForId(R.id.nested_button_1);
    waitForAccessibilityIdleSync();

    RuleCustomAction customAction = new RuleCustomAction();

    ListMenu listMenu = new ListMenu(mTalkBack);
    List<ContextMenuItem> items = customAction.getMenuItemsForNode(mTalkBack, listMenu.getMenuItemBuilder(),
            buttonInfo);

    assertEquals(2, items.size());
    assertHasItemWithTitle(items, "CA3");
    assertHasItemWithTitle(items, "CA4");
}

From source file:com.android.talkback.menurules.RuleCustomActionTest.java

@MediumTest
public void testNodeWithoutCustomActions_shouldInheritHierarchyActions() throws Throwable {
    if (Build.VERSION.SDK_INT < RuleCustomAction.MIN_API_LEVEL) {
        return;/*from  w w w . jav  a 2  s . c  om*/
    }

    setContentView(R.layout.nested_views);

    View parentFrame = getActivity().findViewById(R.id.parent_frame);
    parentFrame.setAccessibilityDelegate(new AccessibilityDelegate1());
    View nestedFrame = getActivity().findViewById(R.id.nested_frame);
    nestedFrame.setAccessibilityDelegate(new AccessibilityDelegate2());

    mTalkBack.getCursorController().setCursor(getNodeForId(R.id.nested_button_2));
    waitForAccessibilityIdleSync();

    AccessibilityNodeInfoCompat buttonInfo = getNodeForId(R.id.nested_button_2);
    waitForAccessibilityIdleSync();

    RuleCustomAction customAction = new RuleCustomAction();

    ListMenu listMenu = new ListMenu(mTalkBack);
    List<ContextMenuItem> items = customAction.getMenuItemsForNode(mTalkBack, listMenu.getMenuItemBuilder(),
            buttonInfo);

    assertEquals(2, items.size());
    assertHasItemWithTitle(items, "CA3");
    assertHasItemWithTitle(items, "CA4");
}

From source file:com.android.utils.traversal.OrderedTraversalControllerTest.java

@MediumTest
public void testWebDescendantsExcludedWhenNotRequested() {
    View view2 = getActivity().findViewById(R.id.node2);
    view2.setAccessibilityDelegate(new View.AccessibilityDelegate() {
        @Override//from   w w  w.j a va2  s . co m
        public void onInitializeAccessibilityNodeInfo(View host, AccessibilityNodeInfo info) {
            super.onInitializeAccessibilityNodeInfo(host, info);
            info.addAction(AccessibilityNodeInfo.ACTION_NEXT_HTML_ELEMENT);
        }
    });

    initController(false);
    assertForwardOrder(mNode1, mNode2, mNode5, mNode6, mNode7);
    assertBackwardOrder(mNode7, mNode6, mNode5, mNode2, mNode1);
}

From source file:com.android.utils.traversal.OrderedTraversalControllerTest.java

@MediumTest
public void testWebDescendantsIncludedWhenRequested() {
    View view2 = getActivity().findViewById(R.id.node2);
    view2.setAccessibilityDelegate(new View.AccessibilityDelegate() {
        @Override//  w w w.j a v a  2s.  c  o m
        public void onInitializeAccessibilityNodeInfo(View host, AccessibilityNodeInfo info) {
            super.onInitializeAccessibilityNodeInfo(host, info);
            info.addAction(AccessibilityNodeInfo.ACTION_NEXT_HTML_ELEMENT);
        }
    });

    initController(true);
    assertForwardOrder(mNode1, mNode2, mNode3, mNode4, mNode5, mNode6, mNode7);
    assertBackwardOrder(mNode7, mNode6, mNode5, mNode4, mNode3, mNode2, mNode1);
}

From source file:com.android.talkback.eventprocessor.AccessibilityEventProcessorTest.java

private void sendEvent(final int event, final CharSequence className) {
    final View outerView = getViewForId(R.id.outer_view);
    getInstrumentation().runOnMainSync(new Runnable() {
        @Override/*from   w ww.ja  v  a  2  s.c o m*/
        public void run() {
            outerView.setAccessibilityDelegate(new AccessibilityDelegate() {
                @Override
                public void onInitializeAccessibilityEvent(View host, AccessibilityEvent event) {
                    super.onInitializeAccessibilityEvent(host, event);
                    event.setClassName(className);
                }
            });
            outerView.sendAccessibilityEvent(event);
        }
    });
    getInstrumentation().waitForIdleSync();
    waitForAccessibilityIdleSync();
}

From source file:com.android.talkback.controller.CursorControllerAppTest.java

@MediumTest
public void testNextPrevious_web() {
    setContentView(R.layout.cursor_web_test);

    WebAccessibilityDelegate delegate1 = new WebAccessibilityDelegate(true /* next */, false /* previous */);
    View webElement1 = getViewForId(R.id.web_element_1);
    webElement1.setAccessibilityDelegate(delegate1);
    AccessibilityNodeInfoCompat webNode1 = getNodeForView(webElement1);

    WebAccessibilityDelegate delegate2 = new WebAccessibilityDelegate(false /* next */, true /* previous */);
    View webElement2 = getViewForId(R.id.web_element_2);
    webElement2.setAccessibilityDelegate(delegate2);
    AccessibilityNodeInfoCompat webNode2 = getNodeForView(webElement2);

    AccessibilityNodeInfoCompat nativeNode = getNodeForId(R.id.native_element);

    // Start at web element 1.
    mCursorController.setCursor(webNode1);
    waitForAccessibilityIdleSync();// ww  w.j av a2s  . c om

    // Navigate to next web element. We verify that CursorController doesn't move cursor.
    mCursorController.next(false /* wrap */, false /* scroll */, false /* useInput */,
            InputModeManager.INPUT_MODE_TOUCH);
    waitForAccessibilityIdleSync();

    assertTrue(delegate1.didPerformNextHtmlAction());
    assertEquals(webNode1, mCursorController.getCursor());

    // Set a11y focus to web element 2 manually using the CursorController.
    mCursorController.setCursor(webNode2);
    waitForAccessibilityIdleSync();

    // Navigate to previous web element. We verify that CursorController doesn't move cursor.
    mCursorController.previous(false /* wrap */, false /* scroll */, false /* useInput */,
            InputModeManager.INPUT_MODE_TOUCH);
    waitForAccessibilityIdleSync();

    assertTrue(delegate2.didPerformPreviousHtmlAction());
    assertEquals(webNode2, mCursorController.getCursor());

    // We're still at web element 2. Try to move to the native element.
    // We verify that the CursorController should move the cursor in this case.
    mCursorController.next(false /* wrap */, false /* scroll */, false /* useInput */,
            InputModeManager.INPUT_MODE_TOUCH);
    waitForAccessibilityIdleSync();

    assertEquals(nativeNode, mCursorController.getCursor());
}