diff --git a/core/lib/Drupal/Core/Plugin/ContextAwarePluginAssignmentTrait.php b/core/lib/Drupal/Core/Plugin/ContextAwarePluginAssignmentTrait.php
index 012bd30..299c209 100644
--- a/core/lib/Drupal/Core/Plugin/ContextAwarePluginAssignmentTrait.php
+++ b/core/lib/Drupal/Core/Plugin/ContextAwarePluginAssignmentTrait.php
@@ -53,7 +53,7 @@ protected function addContextAssignmentElement(ContextAwarePluginInterface $plug
         ];
       }
 
-      if (count($options) > 1 || !$definition->isRequired()) {
+      if (count($options) > 0 || !$definition->isRequired()) {
         $assignments = $plugin->getContextMapping();
         $element[$context_slot] = [
           '#title' => $definition->getLabel() ?: $this->t('Select a @context value:', ['@context' => $context_slot]),
@@ -66,6 +66,10 @@ protected function addContextAssignmentElement(ContextAwarePluginInterface $plug
         if (!$definition->isRequired()) {
           $element[$context_slot]['#empty_value'] = '';
         }
+        elseif (count($options) == 1) {
+          $element[$context_slot]['#disabled'] = TRUE;
+          $element[$context_slot]['#description'] .= '<p>' . $this->t('<strong>Note:</strong> This field cannot be changed because there is only one context item available and it is required.') . '</p>';
+        }
       }
     }
     return $element;
