diff --git a/core/modules/link/src/Plugin/Field/FieldWidget/LinkWidget.php b/core/modules/link/src/Plugin/Field/FieldWidget/LinkWidget.php
index 3230a41..e832ec1 100644
--- a/core/modules/link/src/Plugin/Field/FieldWidget/LinkWidget.php
+++ b/core/modules/link/src/Plugin/Field/FieldWidget/LinkWidget.php
@@ -66,9 +66,16 @@ public function formElement(FieldItemListInterface $items, $delta, array $elemen
     /** @var \Drupal\link\LinkItemInterface $item */
     $item = $items[$delta];
 
+    // We will customize the form depending on if the title form element is
+    // to be show.
+    $title_is_enabled = $this->getFieldSetting('title') != DRUPAL_DISABLED;
+
     $element['uri'] = array(
       '#type' => 'url',
-      '#title' => $this->t('URL'),
+      // When the title is not enabled, we will not use a fieldset and will
+      // lose the field label. So, use the field label as the uri form element
+      // label in that case.
+      '#title' => $title_is_enabled ? $this->t('URL') : $this->fieldDefinition->getLabel(),
       '#placeholder' => $this->getSetting('placeholder_url'),
       // The current field value could have been entered by a different user.
       // However, if it is inaccessible to the current user, do not display it
@@ -86,6 +93,13 @@ public function formElement(FieldItemListInterface $items, $delta, array $elemen
       $element['uri']['#type'] = 'textfield';
     }
 
+    // We will be taking off the fieldset since the title is not enabled. Which
+    // will mean the description from the field will not show. Add the
+    // description from the field so it shows.
+    if (!$title_is_enabled) {
+      $element['uri']['#description'] = $this->fieldDefinition->getDescription();
+    }
+
     // If the field is configured to allow only internal links, add a useful
     // element prefix.
     if (!$this->supportsExternalLinks()) {
@@ -94,7 +108,16 @@ public function formElement(FieldItemListInterface $items, $delta, array $elemen
     // If the field is configured to allow both internal and external links,
     // show a useful description.
     elseif ($this->supportsExternalLinks() && $this->supportsInternalLinks()) {
-      $element['uri']['#description'] = $this->t('This can be an internal Drupal path such as %add-node or an external URL such as %drupal. Enter %front to link to the front page.', array('%front' => '<front>', '%add-node' => 'node/add', '%drupal' => 'http://drupal.org'));
+      // If description is not already initialized from the field, initialize
+      // it. If using the description from the field, add a space before
+      // appending the description from the uri form element.
+      if (!isset($element['uri']['#description'])) {
+        $element['uri']['#description'] = '';
+      }
+      else {
+        $element['uri']['#description'] .= ' ';
+      }
+      $element['uri']['#description'] .= $this->t('This can be an internal Drupal path such as %add-node or an external URL such as %drupal. Enter %front to link to the front page.', array('%front' => '<front>', '%add-node' => 'node/add', '%drupal' => 'http://drupal.org'));
     }
 
     $element['title'] = array(
@@ -103,7 +126,7 @@ public function formElement(FieldItemListInterface $items, $delta, array $elemen
       '#placeholder' => $this->getSetting('placeholder_title'),
       '#default_value' => isset($items[$delta]->title) ? $items[$delta]->title : NULL,
       '#maxlength' => 255,
-      '#access' => $this->getFieldSetting('title') != DRUPAL_DISABLED,
+      '#access' => $title_is_enabled,
     );
     // 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
@@ -121,9 +144,15 @@ public function formElement(FieldItemListInterface $items, $delta, array $elemen
       '#attributes' => array('class' => array('link-field-widget-attributes')),
     );
 
-    // If cardinality is 1, ensure a label is output for the field by wrapping it
-    // in a details element.
-    if ($this->fieldDefinition->getFieldStorageDefinition()->getCardinality() == 1) {
+    // If cardinality is 1, a title and URI form elements will mix with other
+    // form elements and not appear related. Ensure a label is output for the
+    // link field and the title and URI form elements are grouped by making it
+    // a fieldset. When the cardinality is greater than one, each set of title
+    // and URI form elements are already grouped visually, because of the UI
+    // that allows reordering them. Also, if the title form element is not shown
+    // we do not need the grouping. So, only make it a fieldset when title is
+    // enabled.
+    if ($this->fieldDefinition->getFieldStorageDefinition()->getCardinality() == 1 && $title_is_enabled) {
       $element += array(
         '#type' => 'fieldset',
       );
diff --git a/core/modules/menu_link_content/src/Entity/MenuLinkContent.php b/core/modules/menu_link_content/src/Entity/MenuLinkContent.php
index 420ebca..8131c74 100644
--- a/core/modules/menu_link_content/src/Entity/MenuLinkContent.php
+++ b/core/modules/menu_link_content/src/Entity/MenuLinkContent.php
@@ -282,8 +282,7 @@ public static function baseFieldDefinitions(EntityTypeInterface $entity_type) {
       ->setSetting('default_value', 'tools');
 
     $fields['link'] = BaseFieldDefinition::create('link')
-      ->setLabel(t('Link'))
-      ->setDescription(t('The location this menu link points to.'))
+      ->setLabel(t('Menu link location'))
       ->setRequired(TRUE)
       ->setSettings(array(
         'default_value' => '',
