Plumb View.getAccessibilityNodeProvider though WebViewProvider.

This is needed to make use of the new Accessibility implementation
in the Chromium WebView. nos for WebView Classic.

Change-Id: I96bd2426d2de3b26dc9b72d0fdbacefa9bbe20f7
This commit is contained in:
Ben Murdoch
2013-06-05 14:19:48 +01:00
parent 9865ef1ba5
commit e3f9071e0d
3 changed files with 17 additions and 0 deletions

View File

@@ -41,6 +41,7 @@ import android.view.ViewGroup;
import android.view.ViewTreeObserver;
import android.view.accessibility.AccessibilityEvent;
import android.view.accessibility.AccessibilityNodeInfo;
import android.view.accessibility.AccessibilityNodeProvider;
import android.view.inputmethod.EditorInfo;
import android.view.inputmethod.InputConnection;
import android.widget.AbsoluteLayout;
@@ -2051,6 +2052,13 @@ public class WebView extends AbsoluteLayout
}
*/
@Override
public AccessibilityNodeProvider getAccessibilityNodeProvider() {
AccessibilityNodeProvider provider =
mProvider.getViewDelegate().getAccessibilityNodeProvider();
return provider == null ? super.getAccessibilityNodeProvider() : provider;
}
@Deprecated
@Override
public boolean shouldDelayChildPressedState() {

View File

@@ -90,6 +90,7 @@ import android.view.ViewRootImpl;
import android.view.accessibility.AccessibilityEvent;
import android.view.accessibility.AccessibilityManager;
import android.view.accessibility.AccessibilityNodeInfo;
import android.view.accessibility.AccessibilityNodeProvider;
import android.view.inputmethod.BaseInputConnection;
import android.view.inputmethod.EditorInfo;
import android.view.inputmethod.InputConnection;
@@ -1768,6 +1769,11 @@ public final class WebViewClassic implements WebViewProvider, WebViewProvider.Sc
return mWebViewPrivate.super_performAccessibilityAction(action, arguments);
}
@Override
public AccessibilityNodeProvider getAccessibilityNodeProvider() {
return null;
}
@Override
public void onInitializeAccessibilityNodeInfo(AccessibilityNodeInfo info) {
if (!mWebView.isEnabled()) {

View File

@@ -32,6 +32,7 @@ import android.view.View;
import android.view.ViewGroup.LayoutParams;
import android.view.accessibility.AccessibilityEvent;
import android.view.accessibility.AccessibilityNodeInfo;
import android.view.accessibility.AccessibilityNodeProvider;
import android.view.inputmethod.EditorInfo;
import android.view.inputmethod.InputConnection;
import android.webkit.WebView.HitTestResult;
@@ -279,6 +280,8 @@ public interface WebViewProvider {
interface ViewDelegate {
public boolean shouldDelayChildPressedState();
public AccessibilityNodeProvider getAccessibilityNodeProvider();
public void onInitializeAccessibilityNodeInfo(AccessibilityNodeInfo info);
public void onInitializeAccessibilityEvent(AccessibilityEvent event);