diff --git a/core/includes/theme.inc b/core/includes/theme.inc
index 68dd70b..4c31390 100644
--- a/core/includes/theme.inc
+++ b/core/includes/theme.inc
@@ -1679,13 +1679,16 @@ function theme_image($variables) {
  */
 function theme_breadcrumb($variables) {
   $breadcrumb = $variables['breadcrumb'];
-
   if (!empty($breadcrumb)) {
+    $output = '<nav role="nav" class="breadcrumb">';
     // Provide a navigational heading to give context for breadcrumb links to
     // screen-reader users. Make the heading invisible with .element-invisible.
-    $output = '<h2 class="element-invisible">' . t('You are here') . '</h2>';
-
-    $output .= '<div class="breadcrumb">' . implode(' » ', $breadcrumb) . '</div>';
+    $output .= '<h2 class="element-invisible">' . t('You are here') . '</h2>';
+    $output .= '<ul>';
+    foreach ($breadcrumb as $crumb) {
+      $output .= '<li>' . $crumb . ' »</li>';
+    }
+    $output .= '</ul></nav>';
     return $output;
   }
 }
diff --git a/core/modules/book/book.test b/core/modules/book/book.test
index 6b45742..cc806a5 100644
--- a/core/modules/book/book.test
+++ b/core/modules/book/book.test
@@ -156,7 +156,7 @@ class BookTestCase extends DrupalWebTestCase {
     }
 
     // Fetch links in the current breadcrumb.
-    $links = $this->xpath('//div[@class="breadcrumb"]/a');
+    $links = $this->xpath('//nav[@id="breadcrumb"]/ul/li/a');
     $got_breadcrumb = array();
     foreach ($links as $link) {
       $got_breadcrumb[] = (string) $link['href'];
diff --git a/core/modules/node/node.test b/core/modules/node/node.test
index 817f390..d72c56d 100644
--- a/core/modules/node/node.test
+++ b/core/modules/node/node.test
@@ -1723,7 +1723,7 @@ class NodeTitleTestCase extends DrupalWebTestCase {
 
     // Test breadcrumb in comment preview.
     $this->drupalGet("comment/reply/$node->nid");
-    $xpath = '//div[@class="breadcrumb"]/a[last()]';
+    $xpath = '//nav[@id="breadcrumb"]/ul/li/a[last()]';
     $this->assertEqual(current($this->xpath($xpath)), $node->title, 'Node breadcrumb is equal to node title.', 'Node');
 
     // Test node title in comment preview.
diff --git a/core/modules/simpletest/tests/menu.test b/core/modules/simpletest/tests/menu.test
index d0612ac..79bbb93 100644
--- a/core/modules/simpletest/tests/menu.test
+++ b/core/modules/simpletest/tests/menu.test
@@ -107,7 +107,7 @@ class MenuWebTestCase extends DrupalWebTestCase {
    */
   protected function getParts() {
     $parts = array();
-    $elements = $this->xpath('//div[@class="breadcrumb"]/a');
+    $elements = $this->xpath('//nav[@id="breadcrumb"]/ul/li/a');
     if (!empty($elements)) {
       foreach ($elements as $element) {
         $parts[] = array(
diff --git a/core/modules/system/page.tpl.php b/core/modules/system/page.tpl.php
index 23b577e..4d109ff 100644
--- a/core/modules/system/page.tpl.php
+++ b/core/modules/system/page.tpl.php
@@ -108,7 +108,7 @@
     <?php endif; ?>
 
     <?php if ($breadcrumb): ?>
-      <div id="breadcrumb"><?php print $breadcrumb; ?></div>
+      <?php print $breadcrumb; ?>
     <?php endif; ?>
 
     <?php if ($messages): ?>
