From ec6ade1d0da5228580c4b926e4709d2ff59ffc01 Mon Sep 17 00:00:00 2001
From: JohnAlbin <virtually.johnalbin@gmail.com>
Date: Mon, 21 Nov 2011 12:36:45 +0800
Subject: [PATCH 1/1] Issue #1347266 by EverettZ, pcambra and JohnAlbin:
 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 68dd70b..73ba58b 100644
--- a/core/includes/theme.inc
+++ b/core/includes/theme.inc
@@ -1679,15 +1679,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 .= '<ul><li>' . implode(' » </li><li>', $breadcrumb) . '</li></ul>';
+    $output .= '</nav>';
   }
+  return $output;
 }
 
 /**
diff --git a/core/modules/book/book.test b/core/modules/book/book.test
index 6b45742..ff6a870 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"]/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..3b5f63f 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[@class="breadcrumb"]/ul/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 d0612ac..26bbd81 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"]/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..c76e27f 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 786d1f5..7bbb471 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 ul {
+  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 b561f4c..7dfddf7 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 7b0f990..44e9cea 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">
-- 
1.7.6.1

