diff --git a/core/modules/edit/edit.info b/core/modules/edit/edit.info
index 7c6d4b9..bcc5929 100644
--- a/core/modules/edit/edit.info
+++ b/core/modules/edit/edit.info
@@ -5,3 +5,4 @@ core = 8.x
 version = VERSION
 dependencies[] = contextual
 dependencies[] = field
+dependencies[] = filter
diff --git a/core/modules/filter/filter.info b/core/modules/filter/filter.info
index 03ed179..bc071c6 100644
--- a/core/modules/filter/filter.info
+++ b/core/modules/filter/filter.info
@@ -3,5 +3,4 @@ description = Filters content in preparation for display.
 package = Core
 version = VERSION
 core = 8.x
-required = TRUE
 configure = admin/config/content/formats
diff --git a/core/modules/taxonomy/taxonomy.info b/core/modules/taxonomy/taxonomy.info
index 837b556..76e65f3 100644
--- a/core/modules/taxonomy/taxonomy.info
+++ b/core/modules/taxonomy/taxonomy.info
@@ -3,5 +3,6 @@ description = Enables the categorization of content.
 package = Core
 version = VERSION
 core = 8.x
+dependencies[] = filter
 dependencies[] = options
 configure = admin/structure/taxonomy
diff --git a/core/modules/text/text.info b/core/modules/text/text.info
index 3ba8357..f70819c 100644
--- a/core/modules/text/text.info
+++ b/core/modules/text/text.info
@@ -4,4 +4,5 @@ package = Core
 version = VERSION
 core = 8.x
 dependencies[] = field
+dependencies[] = filter
 required = TRUE
diff --git a/core/modules/user/lib/Drupal/user/AccountFormController.php b/core/modules/user/lib/Drupal/user/AccountFormController.php
index 8f2f0c5..6654ca1 100644
--- a/core/modules/user/lib/Drupal/user/AccountFormController.php
+++ b/core/modules/user/lib/Drupal/user/AccountFormController.php
@@ -159,20 +159,21 @@ public function form(array $form, array &$form_state, EntityInterface $account)
     );
 
     // Signature.
-    $form['signature_settings'] = array(
-      '#type' => 'details',
-      '#title' => t('Signature settings'),
-      '#weight' => 1,
-      '#access' => (!$register && $config->get('signatures')),
-    );
-
-    $form['signature_settings']['signature'] = array(
-      '#type' => 'text_format',
-      '#title' => t('Signature'),
-      '#default_value' => isset($account->signature) ? $account->signature : '',
-      '#description' => t('Your signature will be publicly displayed at the end of your comments.'),
-      '#format' => isset($account->signature_format) ? $account->signature_format : NULL,
-    );
+    if (drupal_container()->get('module_handler')->moduleExists('filter')) {
+      $form['signature_settings'] = array(
+        '#type' => 'details',
+        '#title' => t('Signature settings'),
+        '#weight' => 1,
+        '#access' => (!$register && $config->get('signatures')),
+      );
+      $form['signature_settings']['signature'] = array(
+        '#type' => 'text_format',
+        '#title' => t('Signature'),
+        '#default_value' => isset($account->signature) ? $account->signature : '',
+        '#description' => t('Your signature will be publicly displayed at the end of your comments.'),
+        '#format' => isset($account->signature_format) ? $account->signature_format : NULL,
+      );
+    }
 
     $user_preferred_langcode = $register ? $language_interface->langcode : user_preferred_langcode($account);
 
@@ -284,7 +285,7 @@ public function validate(array $form, array &$form_state) {
       $form_state['values']['signature'] = $form_state['values']['signature']['value'];
 
       $user_schema = drupal_get_schema('users');
-      if (drupal_strlen($form_state['values']['signature']) > $user_schema['fields']['signature']['length']) {
+      if (isset($user_schema['fields']['signature']) && drupal_strlen($form_state['values']['signature']) > $user_schema['fields']['signature']['length']) {
         form_set_error('signature', t('The signature is too long: it must be %max characters or less.', array('%max' => $user_schema['fields']['signature']['length'])));
       }
     }
diff --git a/core/modules/user/lib/Drupal/user/Tests/UserRegistrationTest.php b/core/modules/user/lib/Drupal/user/Tests/UserRegistrationTest.php
index 38ca376..8a8503e 100644
--- a/core/modules/user/lib/Drupal/user/Tests/UserRegistrationTest.php
+++ b/core/modules/user/lib/Drupal/user/Tests/UserRegistrationTest.php
@@ -16,7 +16,7 @@ class UserRegistrationTest extends WebTestBase {
    *
    * @var array
    */
-  public static $modules = array('field_test');
+  public static $modules = array('filter', 'field_test');
 
   public static function getInfo() {
     return array(
diff --git a/core/modules/user/lib/Drupal/user/Tests/UserSignatureTest.php b/core/modules/user/lib/Drupal/user/Tests/UserSignatureTest.php
index ab4c706..7886d33 100644
--- a/core/modules/user/lib/Drupal/user/Tests/UserSignatureTest.php
+++ b/core/modules/user/lib/Drupal/user/Tests/UserSignatureTest.php
@@ -19,7 +19,7 @@ class UserSignatureTest extends WebTestBase {
    *
    * @var array
    */
-  public static $modules = array('comment');
+  public static $modules = array('filter', 'comment');
 
   public static function getInfo() {
     return array(
diff --git a/core/modules/user/user.admin.inc b/core/modules/user/user.admin.inc
index 31c6bea..c39e787 100644
--- a/core/modules/user/user.admin.inc
+++ b/core/modules/user/user.admin.inc
@@ -385,14 +385,17 @@ function user_admin_settings($form, &$form_state) {
   }
 
   // Account settings.
+  $filter_exists = drupal_container()->get('module_handler')->moduleExists('filter');
   $form['personalization'] = array(
     '#type' => 'details',
     '#title' => t('Personalization'),
+    '#access' => $filter_exists,
   );
   $form['personalization']['user_signatures'] = array(
     '#type' => 'checkbox',
     '#title' => t('Enable signatures.'),
-    '#default_value' => $config->get('signatures'),
+    '#default_value' => $filter_exists ? $config->get('signatures') : 0,
+    '#access' => $filter_exists,
   );
 
   // Default notifications address.
diff --git a/core/modules/user/user.views.inc b/core/modules/user/user.views.inc
index 13b1690..30ded38 100644
--- a/core/modules/user/user.views.inc
+++ b/core/modules/user/user.views.inc
@@ -266,18 +266,20 @@ function user_views_data() {
     ),
   );
 
-  $data['users']['signature'] = array(
-    'title' => t('Signature'),
-    'help' => t("The user's signature."),
-    'field' => array(
-      'id' => 'markup',
-      'format' => filter_fallback_format(),
-      'click sortable' => FALSE,
-    ),
-    'filter' => array(
-      'id' => 'string',
-    ),
-  );
+  if (drupal_container()->get('module_handler')->moduleExists('filter')) {
+    $data['users']['signature'] = array(
+      'title' => t('Signature'),
+      'help' => t("The user's signature."),
+      'field' => array(
+        'id' => 'markup',
+        'format' => filter_fallback_format(),
+        'click sortable' => FALSE,
+      ),
+      'filter' => array(
+        'id' => 'string',
+      ),
+    );
+  }
 
   if (drupal_container()->get('module_handler')->moduleExists('translation_entity')) {
     $data['users']['translation_link'] = array(
diff --git a/core/modules/views/views.info b/core/modules/views/views.info
index edd7390..a9a426c 100644
--- a/core/modules/views/views.info
+++ b/core/modules/views/views.info
@@ -3,3 +3,4 @@ description = Create customized lists and queries from your database.
 package = Core
 version = VERSION
 core = 8.x
+dependencies[] = filter
