diff --git a/core/modules/link/src/Plugin/Field/FieldType/LinkItem.php b/core/modules/link/src/Plugin/Field/FieldType/LinkItem.php
index 77d733f..aef95e3 100644
--- a/core/modules/link/src/Plugin/Field/FieldType/LinkItem.php
+++ b/core/modules/link/src/Plugin/Field/FieldType/LinkItem.php
@@ -52,6 +52,9 @@ public static function propertyDefinitions(FieldStorageDefinitionInterface $fiel
     $properties['title'] = DataDefinition::create('string')
       ->setLabel(t('Link text'));
 
+    $properties['description'] = DataDefinition::create('string')
+      ->setLabel(t('Link description'));
+
     $properties['options'] = MapDataDefinition::create()
       ->setLabel(t('Options'));
 
@@ -74,6 +77,11 @@ public static function schema(FieldStorageDefinitionInterface $field_definition)
           'type' => 'varchar',
           'length' => 255,
         ),
+        'description' => array(
+          'description' => 'The link description.',
+          'type' => 'varchar',
+          'length' => 255,
+        ),
         'options' => array(
           'description' => 'Serialized array of options for the link.',
           'type' => 'blob',
diff --git a/core/modules/link/src/Plugin/Field/FieldWidget/LinkWidget.php b/core/modules/link/src/Plugin/Field/FieldWidget/LinkWidget.php
index f686ea8..915f696 100644
--- a/core/modules/link/src/Plugin/Field/FieldWidget/LinkWidget.php
+++ b/core/modules/link/src/Plugin/Field/FieldWidget/LinkWidget.php
@@ -81,6 +81,14 @@ public function formElement(FieldItemListInterface $items, $delta, array $elemen
       '#maxlength' => 255,
       '#access' => $this->getFieldSetting('title') != DRUPAL_DISABLED,
     );
+
+    $element['description'] = array(
+      '#type' => 'textfield',
+      '#title' => $this->t('Link description'),
+      '#default_value' => isset($items[$delta]->description) ? $items[$delta]->description : NULL,
+      '#maxlength' => 255,
+    );
+
     // Post-process the title field to make it conditionally required if URL is
     // non-empty. Omit the validation on the field edit form, since the field
     // settings cannot be saved otherwise.
