diff --git a/core/modules/views/src/Plugin/views/style/StylePluginBase.php b/core/modules/views/src/Plugin/views/style/StylePluginBase.php
index faacdf8e51a29fc230801a3d216395312a3ae6fd..33c8af36ece106dea40a22090f14d2076308c18f 100644
--- a/core/modules/views/src/Plugin/views/style/StylePluginBase.php
+++ b/core/modules/views/src/Plugin/views/style/StylePluginBase.php
@@ -601,7 +601,8 @@ public function renderGrouping($records, $groupings = [], $group_rendered = NULL
           if (isset($this->view->field[$field])) {
             $group_content = $this->getField($index, $field);
             if ($this->view->field[$field]->options['label']) {
-              $group_content = $this->view->field[$field]->options['label'] . ': ' . $group_content;
+              $delimiter = $this->view->field[$field]->options['element_label_colon'] ? ': ' : ' ';
+              $group_content = $this->view->field[$field]->options['label'] . $delimiter . $group_content;
             }
             if ($rendered) {
               $grouping = (string) $group_content;
diff --git a/core/modules/views/tests/src/Kernel/Plugin/StyleTest.php b/core/modules/views/tests/src/Kernel/Plugin/StyleTest.php
index cfc2e38db25da21dcdcdc508372ee4a065bc463c..364fdc75289b7b2f56ccef13f5e79288c8ded73a 100644
--- a/core/modules/views/tests/src/Kernel/Plugin/StyleTest.php
+++ b/core/modules/views/tests/src/Kernel/Plugin/StyleTest.php
@@ -227,15 +227,49 @@ protected function doTestGrouping($stripped = FALSE) {
     }
 
     $sets_new_rendered = $view->style_plugin->renderGrouping($view->result, $view->style_plugin->options['grouping'], TRUE);
-
+    $no_label_expected = $expected;
     // Remove labels from expected results.
-    foreach ($expected as $job => $data) {
-      unset($expected[$job]);
+    foreach ($no_label_expected as $job => $data) {
+      unset($no_label_expected[$job]);
       $job = str_replace('Job: ', '', $job);
       $data['group'] = $job;
-      $expected[$job] = $data;
+      $no_label_expected[$job] = $data;
     }
-    $this->assertEquals($expected, $sets_new_rendered);
+    $this->assertEquals($no_label_expected, $sets_new_rendered);
+
+    // Test that grouping works on fields having no colon after the label.
+    $fields['job']['label'] = 'Job';
+    $fields['job']['element_label_colon'] = FALSE;
+    $view->destroy();
+    $view->setDisplay();
+    $view->initStyle();
+    $view->displayHandlers->get('default')->overrideOption('fields', $fields);
+    $view->style_plugin->options['grouping'] = [
+      ['field' => 'job'],
+      ['field' => 'age'],
+    ];
+
+    $this->executeView($view);
+
+    if ($stripped) {
+      $view->result[0]->views_test_data_job .= $rand1;
+      $view->result[1]->views_test_data_job .= $rand2;
+      $view->result[2]->views_test_data_job .= $rand3;
+      $view->style_plugin->options['grouping'][0] = ['field' => 'job', 'rendered' => TRUE, 'rendered_strip' => TRUE];
+      $view->style_plugin->options['grouping'][1] = ['field' => 'age', 'rendered' => TRUE, 'rendered_strip' => TRUE];
+    }
+
+    $sets_new_rendered = $view->style_plugin->renderGrouping($view->result, $view->style_plugin->options['grouping'], TRUE);
+
+    // Remove colons from expected results.
+    $no_colon_expected = $expected;
+    foreach ($no_colon_expected as $job => $data) {
+      unset($no_colon_expected[$job]);
+      $job = str_replace('Job: ', 'Job ', $job);
+      $data['group'] = $job;
+      $no_colon_expected[$job] = $data;
+    }
+    $this->assertEquals($no_colon_expected, $sets_new_rendered);
   }
 
   /**