diff --git a/res/values/strings.xml b/res/values/strings.xml
index 2912291..8f61014 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -2693,6 +2693,8 @@
     <string name="accessibility_power_button_ends_call">Power button ends call</string>
     <!-- Accessibility settings: power button behavior summary text -->
     <string name="accessibility_power_button_ends_call_summary">During a call, pressing Power ends call instead of turning off screen</string>
+    <!-- Accessibility settings: touch exploration state -->
+    <string name="accessibility_touch_exploration_enabled">Touch exploration</string>
 
     <!-- Accessibility settings: button for lauching settings for an accessibility service -->
     <string name="settings_button">Settings</string>
diff --git a/res/xml/accessibility_settings.xml b/res/xml/accessibility_settings.xml
index 90aef84..feb5fb1 100644
--- a/res/xml/accessibility_settings.xml
+++ b/res/xml/accessibility_settings.xml
@@ -56,6 +56,10 @@
                 android:entries="@array/long_press_timeout_selector_titles"
                 android:entryValues="@array/long_press_timeout_selector_values"
                 android:defaultValue="@string/long_press_timeout_selector_default_value"/>
+        <CheckBoxPreference
+                android:key="touch_exploration_enabled"
+                android:title="@string/accessibility_touch_exploration_enabled"
+                android:persistent="false" />
     </PreferenceCategory>
 
 </PreferenceScreen>
diff --git a/src/com/android/settings/AccessibilitySettings.java b/src/com/android/settings/AccessibilitySettings.java
index bbb3678..52d5e92 100644
--- a/src/com/android/settings/AccessibilitySettings.java
+++ b/src/com/android/settings/AccessibilitySettings.java
@@ -74,6 +74,9 @@
     private static final String POWER_BUTTON_ENDS_CALL_CHECKBOX =
         "power_button_ends_call";
 
+    private static final String TOUCH_EXPLORATION_ENABLED_CHECKBOX =
+        "touch_exploration_enabled";
+
     private static final String KEY_TOGGLE_ACCESSIBILITY_SERVICE_CHECKBOX =
         "key_toggle_accessibility_service_checkbox";
 
@@ -92,6 +95,7 @@
 
     private PreferenceCategory mPowerButtonCategory;
     private CheckBoxPreference mPowerButtonEndsCallCheckBox;
+    private CheckBoxPreference mTouchExplorationEnabledCheckBox;
 
     private PreferenceGroup mAccessibilityServicesCategory;
 
@@ -127,6 +131,9 @@
         mPowerButtonEndsCallCheckBox = (CheckBoxPreference) findPreference(
                 POWER_BUTTON_ENDS_CALL_CHECKBOX);
 
+        mTouchExplorationEnabledCheckBox = (CheckBoxPreference) findPreference(
+                TOUCH_EXPLORATION_ENABLED_CHECKBOX);
+
         mLongPressTimeoutListPreference = (ListPreference) findPreference(
                 KEY_LONG_PRESS_TIMEOUT_LIST_PREFERENCE);
 
@@ -154,6 +161,10 @@
             getPreferenceScreen().removePreference(mPowerButtonCategory);
         }
 
+        boolean touchExplorationEnabled = (Settings.Secure.getInt(getContentResolver(),
+                Settings.Secure.TOUCH_EXPLORATION_REQUESTED, 0) == 1);
+        mTouchExplorationEnabledCheckBox.setChecked(touchExplorationEnabled);
+
         mLongPressTimeoutListPreference.setOnPreferenceChangeListener(this);
     }
 
@@ -295,6 +306,10 @@
                     Settings.Secure.INCALL_POWER_BUTTON_BEHAVIOR,
                     (isChecked ? Settings.Secure.INCALL_POWER_BUTTON_BEHAVIOR_HANGUP
                             : Settings.Secure.INCALL_POWER_BUTTON_BEHAVIOR_SCREEN_OFF));
+        } else if (TOUCH_EXPLORATION_ENABLED_CHECKBOX.equals(key)) {
+            final int touchExplorationState = ((CheckBoxPreference) preference).isChecked() ? 1 : 0;
+            Settings.Secure.putInt(getContentResolver(),
+                    Settings.Secure.TOUCH_EXPLORATION_REQUESTED, touchExplorationState);
         } else if (TOGGLE_ACCESSIBILITY_SCRIPT_INJECTION_CHECKBOX.equals(key)) {
             handleToggleAccessibilityScriptInjection((CheckBoxPreference) preference);
         } else if (preference instanceof CheckBoxPreference) {
