diff --git a/core/modules/node/node.module b/core/modules/node/node.module
index e44f43c..e75b816 100644
--- a/core/modules/node/node.module
+++ b/core/modules/node/node.module
@@ -1196,6 +1196,9 @@ function template_preprocess_node(&$variables) {
   // Add article ARIA role.
   $variables['attributes']['role'] = 'article';
 
+  // Add a unique ID.
+  $variables['attributes']['id'] = drupal_html_id('node-' . $node->nid);
+
   // Gather node classes.
   $variables['attributes']['class'][] = drupal_html_class('node-' . $node->type);
   if ($variables['promote']) {
diff --git a/core/modules/node/templates/node.tpl.php b/core/modules/node/templates/node.tpl.php
index b1da4aa..aa32c7b 100644
--- a/core/modules/node/templates/node.tpl.php
+++ b/core/modules/node/templates/node.tpl.php
@@ -78,7 +78,7 @@
  * @ingroup themeable
  */
 ?>
-<article id="node-<?php print $node->nid; ?>" class="<?php print $attributes['class']; ?> clearfix"<?php print $attributes; ?>>
+<article id="<?php print $attributes['id']; ?>" class="<?php print $attributes['class']; ?> clearfix"<?php print $attributes; ?>>
 
   <?php print render($title_prefix); ?>
   <?php if (!$page): ?>
diff --git a/core/themes/bartik/templates/node.tpl.php b/core/themes/bartik/templates/node.tpl.php
index accc60d..a566c90 100644
--- a/core/themes/bartik/templates/node.tpl.php
+++ b/core/themes/bartik/templates/node.tpl.php
@@ -78,7 +78,7 @@
  * @ingroup themeable
  */
 ?>
-<div id="node-<?php print $node->nid; ?>" class="<?php print $attributes['class']; ?> clearfix"<?php print $attributes; ?>>
+<div id="<?php print $attributes['id']; ?>" class="<?php print $attributes['class']; ?> clearfix"<?php print $attributes; ?>>
 
   <?php print render($title_prefix); ?>
   <?php if (!$page): ?>
