diff --git a/core/lib/Drupal/Core/Menu/menu.api.php b/core/lib/Drupal/Core/Menu/menu.api.php
index 2a77914..3569b24 100644
--- a/core/lib/Drupal/Core/Menu/menu.api.php
+++ b/core/lib/Drupal/Core/Menu/menu.api.php
@@ -388,7 +388,7 @@ function hook_contextual_links_alter(array &$links, $group, array $route_paramet
     // Dynamically use the menu name for the title of the menu_edit contextual
     // link.
     $menu = \Drupal::entityManager()->getStorage('menu')->load($route_parameters['menu']);
-    $links['menu_edit']['title'] = t('Edit menu: !label', array('!label' => $menu->label()));
+    $links['menu_edit']['title'] = t('Edit menu: @label', array('@label' => $menu->label()));
   }
 }
 
diff --git a/core/modules/aggregator/src/FeedViewBuilder.php b/core/modules/aggregator/src/FeedViewBuilder.php
index 50462af..d631790 100644
--- a/core/modules/aggregator/src/FeedViewBuilder.php
+++ b/core/modules/aggregator/src/FeedViewBuilder.php
@@ -114,7 +114,7 @@ public function buildComponents(array &$build, array $entities, array $displays,
         $build[$id]['feed_icon'] = array(
           '#theme' => 'feed_icon',
           '#url' => $entity->getUrl(),
-          '#title' => t('!title feed', array('!title' => $entity->label())),
+          '#title' => t('@title feed', array('@title' => $entity->label())),
         );
       }
 
diff --git a/core/modules/aggregator/src/Tests/AddFeedTest.php b/core/modules/aggregator/src/Tests/AddFeedTest.php
index 2a7f037..b66ac55 100644
--- a/core/modules/aggregator/src/Tests/AddFeedTest.php
+++ b/core/modules/aggregator/src/Tests/AddFeedTest.php
@@ -6,6 +6,7 @@
  */
 
 namespace Drupal\aggregator\Tests;
+use Drupal\Component\Utility\Html;
 
 /**
  * Add feed test.
@@ -45,6 +46,23 @@ public function testAddFeed() {
   }
 
   /**
+   * Ensures that the feed label is escaping when rendering the feed icon.
+   */
+  public function testFeedLabelEscaping() {
+    $feed = $this->createFeed(NULL, ['title[0][value]' => 'Test feed title <script>alert(123);</script>']);
+    $this->checkForMetaRefresh();
+
+    $this->drupalGet('aggregator/sources/' . $feed->id());
+    $this->assertResponse(200);
+
+    $result = $this->xpath('//h1');
+    $this->assertEqual((string) $result[0], 'Test feed title alert(123);');
+
+    // Ensure the feed icon title is escaped.
+    $this->assertRaw('class="feed-icon">  Subscribe to Test feed title &lt;script&gt;alert(123);&lt;/script&gt; feed</a>');
+  }
+
+  /**
    * Tests feeds with very long URLs.
    */
   public function testAddLongFeed() {
diff --git a/core/modules/config_translation/config_translation.module b/core/modules/config_translation/config_translation.module
index 3c81f78..ae995b9 100644
--- a/core/modules/config_translation/config_translation.module
+++ b/core/modules/config_translation/config_translation.module
@@ -8,6 +8,7 @@
 use Drupal\config_translation\Plugin\Derivative\ConfigTranslationLocalTasks;
 use Drupal\Core\Entity\EntityInterface;
 use Drupal\Core\Routing\RouteMatchInterface;
+use Drupal\Core\StringTranslation\TranslationWrapper;
 use Drupal\field\FieldConfigInterface;
 use Symfony\Component\Routing\Exception\RouteNotFoundException;
 
@@ -115,7 +116,7 @@ function config_translation_config_translation_info(&$info) {
         $info[$entity_type_id . '_fields'] = array(
           'base_route_name' => "entity.field_config.{$entity_type_id}_field_edit_form",
           'entity_type' => 'field_config',
-          'title' => '!label field',
+          'title' => '@label field',
           'class' => '\Drupal\config_translation\ConfigFieldMapper',
           'base_entity_type' => $entity_type_id,
           'weight' => 10,
@@ -144,7 +145,7 @@ function config_translation_config_translation_info(&$info) {
     $info[$entity_type_id] = array(
       'class' => '\Drupal\config_translation\ConfigEntityMapper',
       'base_route_name' => $base_route_name,
-      'title' => '!label !entity_type',
+      'title' => $entity_type->getLowercaseLabel(),
       'names' => array(),
       'entity_type' => $entity_type_id,
       'weight' => 10,
diff --git a/core/modules/config_translation/src/ConfigEntityMapper.php b/core/modules/config_translation/src/ConfigEntityMapper.php
index 4a6d275..c6605f1 100644
--- a/core/modules/config_translation/src/ConfigEntityMapper.php
+++ b/core/modules/config_translation/src/ConfigEntityMapper.php
@@ -154,11 +154,7 @@ public function setEntity(ConfigEntityInterface $entity) {
    * {@inheritdoc}
    */
   public function getTitle() {
-    // Title based on the entity label. Should be translated for display in the
-    // current page language. The title placeholder is later escaped for
-    // display.
-    $entity_type_info = $this->entityManager->getDefinition($this->entityType);
-    return $this->t($this->pluginDefinition['title'], array('!label' => $this->entity->label(), '!entity_type' => $entity_type_info->getLowercaseLabel()));
+    return $this->entity->label() . ' ' . $this->pluginDefinition['title'];
   }
 
   /**
diff --git a/core/modules/config_translation/src/FormElement/FormElementBase.php b/core/modules/config_translation/src/FormElement/FormElementBase.php
index 7db01e1..9f6261d 100644
--- a/core/modules/config_translation/src/FormElement/FormElementBase.php
+++ b/core/modules/config_translation/src/FormElement/FormElementBase.php
@@ -100,8 +100,8 @@ protected function getSourceElement(LanguageInterface $source_language, $source_
 
     return array(
       '#type' => 'item',
-      '#title' => $this->t('!label <span class="visually-hidden">(!source_language)</span>', array(
-        '!label' => $this->t($this->definition->getLabel()),
+      '#title' => $this->t('@label <span class="visually-hidden">(!source_language)</span>', array(
+        '@label' => $this->definition->getLabel(),
         '!source_language' => $source_language->getName(),
       )),
       '#markup' => $value,
@@ -162,8 +162,8 @@ protected function getSourceElement(LanguageInterface $source_language, $source_
   protected function getTranslationElement(LanguageInterface $translation_language, $source_config, $translation_config) {
     // Add basic properties that apply to all form elements.
     return array(
-      '#title' => $this->t('!label <span class="visually-hidden">(!source_language)</span>', array(
-        '!label' => $this->t($this->definition['label']),
+      '#title' => $this->t('@label <span class="visually-hidden">(!source_language)</span>', array(
+        '@label' => $this->definition['label'],
         '!source_language' => $translation_language->getName(),
       )),
       '#default_value' => $translation_config,
diff --git a/core/modules/config_translation/src/Tests/ConfigTranslationOverviewTest.php b/core/modules/config_translation/src/Tests/ConfigTranslationOverviewTest.php
index 687da5b..3048e01 100644
--- a/core/modules/config_translation/src/Tests/ConfigTranslationOverviewTest.php
+++ b/core/modules/config_translation/src/Tests/ConfigTranslationOverviewTest.php
@@ -7,6 +7,7 @@
 
 namespace Drupal\config_translation\Tests;
 
+use Drupal\Component\Utility\Html;
 use Drupal\language\Entity\ConfigurableLanguage;
 use Drupal\simpletest\WebTestBase;
 
@@ -116,8 +117,8 @@ public function testMapperListPage() {
       $entity_type = \Drupal::entityManager()->getDefinition($test_entity->getEntityTypeId());
       $this->drupalGet($base_url . '/translate');
 
-      $title = t('@label @entity_type', array('@label' => $test_entity->label(), '@entity_type' => $entity_type->getLowercaseLabel()));
-      $title = t('Translations for %label', array('%label' => $title));
+      $title = $test_entity->label() . ' ' . $entity_type->getLowercaseLabel();
+      $title = 'Translations for <em class="placeholder">' . Html::escape($title) . '</em>';
       $this->assertRaw($title);
       $this->assertRaw('<th>' . t('Language') . '</th>');
 
diff --git a/core/modules/config_translation/tests/src/Unit/ConfigEntityMapperTest.php b/core/modules/config_translation/tests/src/Unit/ConfigEntityMapperTest.php
index 8041931..efbe68d 100644
--- a/core/modules/config_translation/tests/src/Unit/ConfigEntityMapperTest.php
+++ b/core/modules/config_translation/tests/src/Unit/ConfigEntityMapperTest.php
@@ -70,7 +70,7 @@ protected function setUp() {
     $definition = array(
       'class' => '\Drupal\config_translation\ConfigEntityMapper',
       'base_route_name' => 'entity.configurable_language.edit_form',
-      'title' => '!label language',
+      'title' => '@label language',
       'names' => array(),
       'entity_type' => 'configurable_language',
       'route_name' => 'config_translation.item.overview.entity.configurable_language.edit_form',
diff --git a/core/modules/config_translation/tests/src/Unit/ConfigFieldMapperTest.php b/core/modules/config_translation/tests/src/Unit/ConfigFieldMapperTest.php
index 740b722..3a78357 100644
--- a/core/modules/config_translation/tests/src/Unit/ConfigFieldMapperTest.php
+++ b/core/modules/config_translation/tests/src/Unit/ConfigFieldMapperTest.php
@@ -50,7 +50,7 @@ protected function setUp() {
     $definition = array(
       'class' => '\Drupal\config_translation\ConfigFieldMapper',
       'base_route_name' => 'entity.field_config.node_field_edit_form',
-      'title' => '!label field',
+      'title' => '@label field',
       'names' => array(),
       'entity_type' => 'field_config',
     );
