diff --git a/java/src/com/android/inputmethod/accessibility/AccessibleKeyboardViewProxy.java b/java/src/com/android/inputmethod/accessibility/AccessibleKeyboardViewProxy.java
index 8ca8341..86a5630 100644
--- a/java/src/com/android/inputmethod/accessibility/AccessibleKeyboardViewProxy.java
+++ b/java/src/com/android/inputmethod/accessibility/AccessibleKeyboardViewProxy.java
@@ -105,13 +105,13 @@
     }
 
     /**
-     * Receives hover events when accessibility is turned on in API > 11. In
-     * earlier API levels, events are manually routed from onTouchEvent.
+     * Receives hover events when accessibility is turned on in SDK versions ICS
+     * and higher.
      *
      * @param event The hover event.
      * @return {@code true} if the event is handled
      */
-    public boolean onHoverEvent(MotionEvent event, PointerTracker tracker) {
+    public boolean dispatchHoverEvent(MotionEvent event, PointerTracker tracker) {
         if (mGestureDetector.onHoverEvent(event, this, tracker))
             return true;
 
diff --git a/java/src/com/android/inputmethod/keyboard/LatinKeyboardBaseView.java b/java/src/com/android/inputmethod/keyboard/LatinKeyboardBaseView.java
index 22752d0..cb1a2b7 100644
--- a/java/src/com/android/inputmethod/keyboard/LatinKeyboardBaseView.java
+++ b/java/src/com/android/inputmethod/keyboard/LatinKeyboardBaseView.java
@@ -586,15 +586,22 @@
         return super.dispatchPopulateAccessibilityEvent(event);
     }
 
-    public boolean onHoverEvent(MotionEvent event) {
-        // Since reflection doesn't support calling superclass methods, this
-        // method checks for the existence of onHoverEvent() in the View class
-        // before returning a value.
+    /**
+     * Receives hover events from the input framework. This method overrides
+     * View.dispatchHoverEvent(MotionEvent) on SDK version ICS or higher. On
+     * lower SDK versions, this method is never called.
+     *
+     * @param event The motion event to be dispatched.
+     * @return {@code true} if the event was handled by the view, {@code false}
+     *         otherwise
+     */
+    public boolean dispatchHoverEvent(MotionEvent event) {
         if (AccessibilityUtils.getInstance().isTouchExplorationEnabled()) {
             final PointerTracker tracker = getPointerTracker(0);
-            return AccessibleKeyboardViewProxy.getInstance().onHoverEvent(event, tracker);
+            return AccessibleKeyboardViewProxy.getInstance().dispatchHoverEvent(event, tracker);
         }
 
+        // Reflection doesn't support calling superclass methods.
         return false;
     }
 }
