From f9be1f55a87f74ee4bf2d6173ee5adf100333dde Mon Sep 17 00:00:00 2001
From: Nathaniel <catch@35733.no-reply.drupal.org>
Date: Tue, 20 Dec 2011 14:32:29 +0900
Subject: [PATCH] Issue #1347266 by Everett Zufelt, pcambra, JohnAlbin,
 tim.plunkett: Convert theme_breadcrumb() to HTML5.

---
 core/includes/theme.inc                   | 11 ++++++-----
 core/modules/book/book.test               |  2 +-
 core/modules/node/node.test               |  2 +-
 core/modules/simpletest/tests/menu.test   |  2 +-
 core/modules/system/page.tpl.php          |  4 +---
 core/modules/system/system.theme.css      | 10 ++++++++++
 core/themes/bartik/css/layout.css         |  2 +-
 core/themes/bartik/templates/page.tpl.php |  4 +---
 8 files changed, 22 insertions(+), 15 deletions(-)

diff --git a/core/includes/theme.inc b/core/includes/theme.inc
index 6c7272c421db..5304d25c0c18 100644
--- a/core/includes/theme.inc
+++ b/core/includes/theme.inc
@@ -1687,15 +1687,16 @@ function theme_image($variables) {
  */
 function theme_breadcrumb($variables) {
   $breadcrumb = $variables['breadcrumb'];
-
+  $output = '';
   if (!empty($breadcrumb)) {
+    $output .= '<nav role="navigation" 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>';
-    return $output;
+    $output .= '<h2 class="element-invisible">' . t('You are here') . '</h2>';
+    $output .= '<ol><li>' . implode(' » </li><li>', $breadcrumb) . '</li></ol>';
+    $output .= '</nav>';
   }
+  return $output;
 }
 
 /**
diff --git a/core/modules/book/book.test b/core/modules/book/book.test
index 6b457428507e..83328e053241 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[@class="breadcrumb"]/ol/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 a04b0e663002..2e9b075d3303 100644
--- a/core/modules/node/node.test
+++ b/core/modules/node/node.test
@@ -1732,7 +1732,7 @@ class NodeTitleTestCase extends DrupalWebTestCase {
 
     // Test breadcrumb in comment preview.
     $this->drupalGet("comment/reply/$node->nid");
-    $xpath = '//div[@class="breadcrumb"]/a[last()]';
+    $xpath = '//nav[@class="breadcrumb"]/ol/li[last()]/a';
     $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 d0612ac77a6b..5a173b146c56 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[@class="breadcrumb"]/ol/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 23b577e8b305..c76e27f20af3 100644
--- a/core/modules/system/page.tpl.php
+++ b/core/modules/system/page.tpl.php
@@ -107,9 +107,7 @@
       </nav>
     <?php endif; ?>
 
-    <?php if ($breadcrumb): ?>
-      <div id="breadcrumb"><?php print $breadcrumb; ?></div>
-    <?php endif; ?>
+    <?php print $breadcrumb; ?>
 
     <?php if ($messages): ?>
       <div id="messages"><?php print $messages; ?></div>
diff --git a/core/modules/system/system.theme.css b/core/modules/system/system.theme.css
index 1993d176d743..7121813ba88a 100644
--- a/core/modules/system/system.theme.css
+++ b/core/modules/system/system.theme.css
@@ -294,6 +294,16 @@ ul.inline li {
 .breadcrumb {
   padding-bottom: 0.5em;
 }
+.breadcrumb ol {
+  margin: 0;
+  padding: 0;
+}
+.breadcrumb li {
+  display: inline;
+  list-style-type: none;
+  margin: 0;
+  padding: 0;
+}
 
 /**
  * Markup generated by theme_menu_local_tasks().
diff --git a/core/themes/bartik/css/layout.css b/core/themes/bartik/css/layout.css
index b561f4c021cd..7dfddf77d505 100644
--- a/core/themes/bartik/css/layout.css
+++ b/core/themes/bartik/css/layout.css
@@ -75,7 +75,7 @@ body,
 .sidebar .section {
   padding: 0 15px;
 }
-#breadcrumb {
+.breadcrumb {
   margin: 0 15px;
 }
 .region-triptych-first,
diff --git a/core/themes/bartik/templates/page.tpl.php b/core/themes/bartik/templates/page.tpl.php
index 7b0f99097a0e..44e9ceae68bf 100644
--- a/core/themes/bartik/templates/page.tpl.php
+++ b/core/themes/bartik/templates/page.tpl.php
@@ -172,9 +172,7 @@
 
   <div id="main-wrapper" class="clearfix"><div id="main" class="clearfix">
 
-    <?php if ($breadcrumb): ?>
-      <div id="breadcrumb"><?php print $breadcrumb; ?></div>
-    <?php endif; ?>
+    <?php print $breadcrumb; ?>
 
     <?php if ($page['sidebar_first']): ?>
       <div id="sidebar-first" class="column sidebar"><div class="section">
-- 
GitLab