diff --git a/core/includes/theme.inc b/core/includes/theme.inc
index c7dff02..2c8a5ad 100644
--- a/core/includes/theme.inc
+++ b/core/includes/theme.inc
@@ -1082,30 +1082,6 @@ function template_preprocess_item_list(&$variables) {
 }
 
 /**
- * Prepares variables for feed icon templates.
- *
- * Default template: feed-icon.html.twig.
- *
- * @param array $variables
- *   An associative array containing:
- *   - url: An internal system path or a fully qualified external URL of the
- *     feed.
- *   - title: A descriptive title of the feed.
- */
-function template_preprocess_feed_icon(&$variables) {
-  $text = t('Subscribe to !feed-title', array('!feed-title' => $variables['title']));
-  $variables['icon'] = array(
-    '#theme' => 'image__feed_icon',
-    '#uri' => 'core/misc/feed.png',
-    '#width' => 16,
-    '#height' => 16,
-    '#alt' => $text,
-  );
-  // Stripping tags because that's what l() used to do.
-  $variables['attributes']['title'] = strip_tags($text);
-}
-
-/**
  * Returns HTML for an indentation div; used for drag and drop tables.
  *
  * @param $variables
diff --git a/core/modules/system/css/system.theme.css b/core/modules/system/css/system.theme.css
index f7af1e4..be759ab 100644
--- a/core/modules/system/css/system.theme.css
+++ b/core/modules/system/css/system.theme.css
@@ -162,6 +162,17 @@ abbr.ajax-changed {
 }
 
 /**
+ * Feed Icon.
+ * Markup generated by feed-icon.html.twig.
+ */
+.feed-icon {
+  background: url(../../../misc/feed.png) no-repeat;
+  display: block;
+  width: 16px;
+  height: 16px;
+}
+
+/**
  * Markup generated by pager.html.twig.
  */
 .pager__items {
diff --git a/core/modules/system/src/Tests/Common/AddFeedTest.php b/core/modules/system/src/Tests/Common/AddFeedTest.php
index 5da8ffb..43caf15 100644
--- a/core/modules/system/src/Tests/Common/AddFeedTest.php
+++ b/core/modules/system/src/Tests/Common/AddFeedTest.php
@@ -91,7 +91,7 @@ function testFeedIconEscaping() {
       '#title' => '<>&"\'',
     );
     $text = drupal_render($variables);
-    preg_match('/title="(.*?)"/', $text, $matches);
-    $this->assertEqual($matches[1], 'Subscribe to &amp;&quot;&#039;', 'feed_icon template escapes reserved HTML characters.');
+    preg_match('/>(.*?)</', $text, $matches);
+    $this->assertEqual($matches[1], 'Subscribe to &lt;&gt;&amp;&quot;&#039;', 'feed_icon template escapes reserved HTML characters.');
   }
 }
diff --git a/core/modules/system/templates/feed-icon.html.twig b/core/modules/system/templates/feed-icon.html.twig
index b3c10d1..a8eb5f9 100644
--- a/core/modules/system/templates/feed-icon.html.twig
+++ b/core/modules/system/templates/feed-icon.html.twig
@@ -5,14 +5,13 @@
  *
  * Available variables:
  * - url: An internal system path or a fully qualified external URL of the feed.
- * - icon: The rendered HTML (<img> tag) for the feed icon image.
  * - attributes: Remaining HTML attributes for the feed link.
  *   - title: A descriptive title of the feed link.
  *   - class: HTML classes to be applied to the feed link.
  *
- * @see template_preprocess_feed_icon()
- *
  * @ingroup themeable
  */
 #}
-<a href="{{ url }}"{{ attributes.addClass('feed-icon') }}>{{ icon }}</a>
+<a href="{{ url }}"{{ attributes }}>
+  <span class="visually-hidden">{{ 'Subscribe to @title'|t({'@title': title}) }}</span>
+</a>
diff --git a/core/themes/bartik/css/base/elements.css b/core/themes/bartik/css/base/elements.css
index 6eb45b5..7bb2cb1 100644
--- a/core/themes/bartik/css/base/elements.css
+++ b/core/themes/bartik/css/base/elements.css
@@ -127,8 +127,8 @@ blockquote > p:first-child {
   display: inline;
 }
 a.feed-icon {
-  display: inline-block;
-  padding: 15px 0 0 0;
+  display: block;
+  margin: 25px 0 0 0;
 }
 img {
   max-width: 100%;
diff --git a/core/themes/classy/templates/misc/feed-icon.html.twig b/core/themes/classy/templates/misc/feed-icon.html.twig
index b3c10d1..57d8433 100644
--- a/core/themes/classy/templates/misc/feed-icon.html.twig
+++ b/core/themes/classy/templates/misc/feed-icon.html.twig
@@ -5,14 +5,13 @@
  *
  * Available variables:
  * - url: An internal system path or a fully qualified external URL of the feed.
- * - icon: The rendered HTML (<img> tag) for the feed icon image.
  * - attributes: Remaining HTML attributes for the feed link.
  *   - title: A descriptive title of the feed link.
  *   - class: HTML classes to be applied to the feed link.
  *
- * @see template_preprocess_feed_icon()
- *
  * @ingroup themeable
  */
 #}
-<a href="{{ url }}"{{ attributes.addClass('feed-icon') }}>{{ icon }}</a>
+<a href="{{ url }}"{{ attributes.addClass('feed-icon') }}>
+  <span class="visually-hidden">{{ 'Subscribe to @title'|t({'@title': title}) }}</span>
+</a>
