diff --git a/java/res/values/dimens.xml b/java/res/values/dimens.xml
index 565059b1033ae02ec6c13adcaf514a90714451e2..4fd942b1446843f84c3fbec790c97131af32d128 100644
--- a/java/res/values/dimens.xml
+++ b/java/res/values/dimens.xml
@@ -101,4 +101,7 @@
     <dimen name="gesture_floating_preview_text_shadow_border">17.5dp</dimen>
     <dimen name="gesture_floating_preview_text_shading_border">7.5dp</dimen>
     <dimen name="gesture_floating_preview_text_connector_width">1.0dp</dimen>
+
+    <!-- Inset used in Accessibility mode to avoid accidental key presses when a finger slides off the screen. -->
+    <dimen name="accessibility_edge_slop">8dp</dimen>
 </resources>
diff --git a/java/src/com/android/inputmethod/accessibility/AccessibleKeyboardViewProxy.java b/java/src/com/android/inputmethod/accessibility/AccessibleKeyboardViewProxy.java
index 2fff7315460ddc38faea764ab1a5ef2315fa3ef5..e42de0b4c83973ad7a3696a969c5288a42524a27 100644
--- a/java/src/com/android/inputmethod/accessibility/AccessibleKeyboardViewProxy.java
+++ b/java/src/com/android/inputmethod/accessibility/AccessibleKeyboardViewProxy.java
@@ -24,7 +24,6 @@ import android.support.v4.view.accessibility.AccessibilityEventCompat;
 import android.support.v4.view.accessibility.AccessibilityNodeInfoCompat;
 import android.view.MotionEvent;
 import android.view.View;
-import android.view.ViewConfiguration;
 
 import com.android.inputmethod.keyboard.Key;
 import com.android.inputmethod.keyboard.Keyboard;
@@ -44,7 +43,7 @@ public class AccessibleKeyboardViewProxy extends AccessibilityDelegateCompat {
 
     /**
      * Inset in pixels to look for keys when the user's finger exits the
-     * keyboard area. See {@link ViewConfiguration#getScaledEdgeSlop()}.
+     * keyboard area.
      */
     private int mEdgeSlop;
 
@@ -62,7 +61,8 @@ public class AccessibleKeyboardViewProxy extends AccessibilityDelegateCompat {
 
     private void initInternal(InputMethodService inputMethod) {
         mInputMethod = inputMethod;
-        mEdgeSlop = ViewConfiguration.get(inputMethod).getScaledEdgeSlop();
+        mEdgeSlop = inputMethod.getResources().getDimensionPixelSize(
+                R.dimen.accessibility_edge_slop);
     }
 
     /**
@@ -114,8 +114,14 @@ public class AccessibleKeyboardViewProxy extends AccessibilityDelegateCompat {
     public boolean dispatchHoverEvent(MotionEvent event, PointerTracker tracker) {
         final int x = (int) event.getX();
         final int y = (int) event.getY();
-        final Key key = tracker.getKeyOn(x, y);
         final Key previousKey = mLastHoverKey;
+        final Key key;
+
+        if (pointInView(x, y)) {
+            key = tracker.getKeyOn(x, y);
+        } else {
+            key = null;
+        }
 
         mLastHoverKey = key;
 
@@ -123,7 +129,7 @@ public class AccessibleKeyboardViewProxy extends AccessibilityDelegateCompat {
         case MotionEvent.ACTION_HOVER_EXIT:
             // Make sure we're not getting an EXIT event because the user slid
             // off the keyboard area, then force a key press.
-            if (pointInView(x, y) && (key != null)) {
+            if (key != null) {
                 getAccessibilityNodeProvider().simulateKeyPress(key);
             }
             //$FALL-THROUGH$