diff --git a/core/modules/node/node.module b/core/modules/node/node.module
index 81ee84123c68853b82c13892534e7025c35ad7e2..c429fe54fe81f2c42c26e99443e38e70cfb08fc9 100644
--- a/core/modules/node/node.module
+++ b/core/modules/node/node.module
@@ -1476,6 +1476,9 @@ function template_preprocess_node(&$variables) {
     $variables['user_picture'] = '';
   }
 
+  // Add article ARIA role.
+  $variables['attributes_array']['role'] = 'article';
+
   // Gather node classes.
   $variables['classes_array'][] = drupal_html_class('node-' . $node->type);
   if ($variables['promote']) {
diff --git a/core/modules/node/node.tpl.php b/core/modules/node/node.tpl.php
index 06dc1997bc8e03493d281535fb9ffe2a6efe2a43..adb9aa2f65473e78ee8fe30da9690e9bb07d5f5a 100644
--- a/core/modules/node/node.tpl.php
+++ b/core/modules/node/node.tpl.php
@@ -78,20 +78,19 @@
  * @see template_process()
  */
 ?>
-<div id="node-<?php print $node->nid; ?>" class="<?php print $classes; ?> clearfix"<?php print $attributes; ?>>
-
-  <?php print $user_picture; ?>
+<article id="node-<?php print $node->nid; ?>" class="<?php print $classes; ?> clearfix"<?php print $attributes; ?>>
 
   <?php print render($title_prefix); ?>
   <?php if (!$page): ?>
-    <h2<?php print $title_attributes; ?>><a href="<?php print $node_url; ?>"><?php print $title; ?></a></h2>
+    <h2<?php print $title_attributes; ?>><a href="<?php print $node_url; ?>" rel="bookmark"><?php print $title; ?></a></h2>
   <?php endif; ?>
   <?php print render($title_suffix); ?>
 
   <?php if ($display_submitted): ?>
-    <div class="submitted">
-      <?php print $submitted; ?>
-    </div>
+    <footer>
+      <?php print $user_picture; ?>
+      <p class="submitted"><?php print $submitted; ?></p>
+    </footer>
   <?php endif; ?>
 
   <div class="content"<?php print $content_attributes; ?>>
@@ -104,7 +103,6 @@
   </div>
 
   <?php print render($content['links']); ?>
-
   <?php print render($content['comments']); ?>
 
-</div>
+</article>