diff --git a/core/modules/history/src/Plugin/views/field/HistoryUserTimestamp.php b/core/modules/history/src/Plugin/views/field/HistoryUserTimestamp.php
index 500d780..d93bcda 100644
--- a/core/modules/history/src/Plugin/views/field/HistoryUserTimestamp.php
+++ b/core/modules/history/src/Plugin/views/field/HistoryUserTimestamp.php
@@ -100,8 +100,15 @@ public function render(ResultRow $values) {
       $build = array(
         '#theme' => 'mark',
         '#status' => $mark,
+        '#access' => ($mark == MARK_NEW || $mark == MARK_UPDATED),
+        '#cache' => array(
+          'contexts' => array(
+            'user.roles:authenticated',
+          ),
+        ),
       );
-      return $this->renderLink(drupal_render($build), $values);
+
+      return $this->renderLink(\Drupal::service('renderer')->render($build), $values);
     }
   }
 
diff --git a/core/modules/node/src/NodeListBuilder.php b/core/modules/node/src/NodeListBuilder.php
index 35013f6..bf20af8 100644
--- a/core/modules/node/src/NodeListBuilder.php
+++ b/core/modules/node/src/NodeListBuilder.php
@@ -103,9 +103,11 @@ public function buildHeader() {
    */
   public function buildRow(EntityInterface $entity) {
     /** @var \Drupal\node\NodeInterface $entity */
+    $node_mark = node_mark($entity->id(), $entity->getChangedTime());
     $mark = array(
       '#theme' => 'mark',
-      '#mark_type' => node_mark($entity->id(), $entity->getChangedTime()),
+      '#status' => $node_mark,
+      '#access' => (\Drupal::currentUser()->isAuthenticated() && ($node_mark == MARK_NEW || $node_mark == MARK_UPDATED)),
     );
     $langcode = $entity->language()->getId();
     $uri = $entity->urlInfo();
diff --git a/core/modules/system/templates/mark.html.twig b/core/modules/system/templates/mark.html.twig
index 58adae1..3b53410 100644
--- a/core/modules/system/templates/mark.html.twig
+++ b/core/modules/system/templates/mark.html.twig
@@ -13,10 +13,10 @@
  * @ingroup themeable
  */
 #}
-{% if logged_in %}
-  {% if status is constant('MARK_NEW') %}
-    {{ 'New'|t }}
-  {% elseif status is constant('MARK_UPDATED') %}
-    {{ 'Updated'|t }}
-  {% endif %}
+{% if status is constant('MARK_NEW') %}
+  <mark{{ attributes }}>{{ 'New'|t }}</mark>
+{% elseif status is constant('MARK_UPDATED') %}
+  <mark{{ attributes }}>{{ 'Updated'|t }}</mark>
+{% elseif status is constant('MARK_READ') %}
+  <mark{{ attributes }}>{{ 'Read'|t }}</mark>
 {% endif %}
diff --git a/core/themes/classy/templates/content/mark.html.twig b/core/themes/classy/templates/content/mark.html.twig
index 9219915..9ffdb34 100644
--- a/core/themes/classy/templates/content/mark.html.twig
+++ b/core/themes/classy/templates/content/mark.html.twig
@@ -13,8 +13,10 @@
 #}
 {% if logged_in %}
   {% if status is constant('MARK_NEW') %}
-    <span class="marker">{{ 'New'|t }}</span>
+    <span{{ attributes.addClass('marker') }}>{{ 'New'|t }}</span>
   {% elseif status is constant('MARK_UPDATED') %}
-    <span class="marker">{{ 'Updated'|t }}</span>
+    <span{{ attributes.addClass('marker') }}>{{ 'Updated'|t }}</span>
+  {% elseif status is constant('MARK_READ') %}
+    <span{{ attributes.addClass('marker') }}>{{ 'Read'|t }}</span>
   {% endif %}
 {% endif %}
diff --git a/core/themes/stable/templates/content/mark.html.twig b/core/themes/stable/templates/content/mark.html.twig
index bc70b5c..757f7bb 100644
--- a/core/themes/stable/templates/content/mark.html.twig
+++ b/core/themes/stable/templates/content/mark.html.twig
@@ -16,5 +16,7 @@
     {{ 'New'|t }}
   {% elseif status is constant('MARK_UPDATED') %}
     {{ 'Updated'|t }}
+  {% elseif status is constant('MARK_READ') %}
+    {{ 'Read'|t }}
   {% endif %}
 {% endif %}
