diff --git a/core/lib/Drupal/Core/Field/WidgetBase.php b/core/lib/Drupal/Core/Field/WidgetBase.php
index c99dee5..b50dfe8 100644
--- a/core/lib/Drupal/Core/Field/WidgetBase.php
+++ b/core/lib/Drupal/Core/Field/WidgetBase.php
@@ -567,4 +567,14 @@ protected function isDefaultValueWidget(FormStateInterface $form_state) {
     return (bool) $form_state->get('default_value_widget');
   }
 
+  /**
+   * Returns the filtered field description.
+   *
+   * @return \Drupal\Core\Field\FieldFilteredMarkup
+   *   The filtered field description, with tokens replaced.
+   */
+  protected function getFilteredDescription() {
+    return FieldFilteredMarkup::create(\Drupal::token()->replace($this->fieldDefinition->getDescription()));
+  }
+
 }
diff --git a/core/modules/file/src/Plugin/Field/FieldWidget/FileWidget.php b/core/modules/file/src/Plugin/Field/FieldWidget/FileWidget.php
index 887e377..9b120c6 100644
--- a/core/modules/file/src/Plugin/Field/FieldWidget/FileWidget.php
+++ b/core/modules/file/src/Plugin/Field/FieldWidget/FileWidget.php
@@ -119,7 +119,7 @@ protected function formMultipleElements(FieldItemListInterface $items, array &$f
     }
 
     $title = $this->fieldDefinition->getLabel();
-    $description = FieldFilteredMarkup::create($this->fieldDefinition->getDescription());
+    $description = $this->getFilteredDescription();
 
     $elements = array();
 
diff --git a/core/modules/image/src/Plugin/Field/FieldWidget/ImageWidget.php b/core/modules/image/src/Plugin/Field/FieldWidget/ImageWidget.php
index 10ebfb5..7d70e29 100644
--- a/core/modules/image/src/Plugin/Field/FieldWidget/ImageWidget.php
+++ b/core/modules/image/src/Plugin/Field/FieldWidget/ImageWidget.php
@@ -7,6 +7,7 @@
 
 namespace Drupal\image\Plugin\Field\FieldWidget;
 
+use Drupal\Core\Field\FieldFilteredMarkup;
 use Drupal\Core\Field\FieldItemListInterface;
 use Drupal\Component\Utility\NestedArray;
 use Drupal\Core\Form\FormStateInterface;
@@ -98,7 +99,7 @@ protected function formMultipleElements(FieldItemListInterface $items, array &$f
     if ($cardinality == 1) {
       // If there's only one field, return it as delta 0.
       if (empty($elements[0]['#default_value']['fids'])) {
-        $file_upload_help['#description'] = $this->fieldDefinition->getDescription();
+        $file_upload_help['#description'] = $this->getFilteredDescription();
         $elements[0]['#description'] = \Drupal::service('renderer')->renderPlain($file_upload_help);
       }
     }
diff --git a/core/modules/image/src/Tests/ImageFieldTestBase.php b/core/modules/image/src/Tests/ImageFieldTestBase.php
index 9984a76..aed51a9 100644
--- a/core/modules/image/src/Tests/ImageFieldTestBase.php
+++ b/core/modules/image/src/Tests/ImageFieldTestBase.php
@@ -69,8 +69,10 @@ protected function setUp() {
    *   Widget settings to be added to the widget defaults.
    * @param array $formatter_settings
    *   Formatter settings to be added to the formatter defaults.
+   * @param string $description
+   *   A description for the field.
    */
-  function createImageField($name, $type_name, $storage_settings = array(), $field_settings = array(), $widget_settings = array(), $formatter_settings = array()) {
+  function createImageField($name, $type_name, $storage_settings = array(), $field_settings = array(), $widget_settings = array(), $formatter_settings = array(), $description = '') {
     entity_create('field_storage_config', array(
       'field_name' => $name,
       'entity_type' => 'node',
@@ -86,6 +88,7 @@ function createImageField($name, $type_name, $storage_settings = array(), $field
       'bundle' => $type_name,
       'required' => !empty($field_settings['required']),
       'settings' => $field_settings,
+      'description' => $description,
     ));
     $field_config->save();
 
diff --git a/core/modules/image/src/Tests/ImageFieldWidgetTest.php b/core/modules/image/src/Tests/ImageFieldWidgetTest.php
index 8bc70bc..4a80c9a 100644
--- a/core/modules/image/src/Tests/ImageFieldWidgetTest.php
+++ b/core/modules/image/src/Tests/ImageFieldWidgetTest.php
@@ -27,9 +27,10 @@ public function testWidgetElement() {
       'min_resolution' => $min_resolution . 'x' . $min_resolution,
       'alt_field' => 0,
     );
-    $this->createImageField($field_name, 'article', array(), $field_settings);
+    $this->createImageField($field_name, 'article', array(), $field_settings, array(), array(), 'Image test on [site:name]');
     $this->drupalGet('node/add/article');
     $this->assertNotEqual(0, count($this->xpath('//div[contains(@class, "field--widget-image-image")]')), 'Image field widget found on add/node page', 'Browser');
+    $this->assertNoText('Image test on [site:name]');
   }
 
 }
