diff --git a/core/modules/toolbar/src/Element/Toolbar.php b/core/modules/toolbar/src/Element/Toolbar.php index fac39e2adbc..660ce323f04 100644 --- a/core/modules/toolbar/src/Element/Toolbar.php +++ b/core/modules/toolbar/src/Element/Toolbar.php @@ -7,7 +7,9 @@ namespace Drupal\toolbar\Element; +use Drupal\Component\Utility\Html; use Drupal\Core\Render\Element\RenderElement; +use Drupal\Core\Render\Element; /** * Provides a render element for the default Drupal toolbar. @@ -97,6 +99,11 @@ class Toolbar extends RenderElement { // Merge in the original toolbar values. $element = array_merge($element, $items); + // Assign each item a unique ID, based on its key. + foreach (Element::children($element) as $key) { + $element[$key]['#id'] = Html::getId('toolbar-item-' . $key); + } + // Render the children. $element['#children'] = drupal_render_children($element); diff --git a/core/modules/toolbar/src/Element/ToolbarItem.php b/core/modules/toolbar/src/Element/ToolbarItem.php index e596687df11..929dac410d6 100644 --- a/core/modules/toolbar/src/Element/ToolbarItem.php +++ b/core/modules/toolbar/src/Element/ToolbarItem.php @@ -7,7 +7,6 @@ namespace Drupal\toolbar\Element; -use Drupal\Component\Utility\Html; use Drupal\Core\Render\Element\RenderElement; use Drupal\Core\Url; @@ -50,8 +49,7 @@ class ToolbarItem extends RenderElement { * A renderable array. */ public static function preRenderToolbarItem($element) { - // Assign each item a unique ID. - $id = Html::getUniqueId('toolbar-item'); + $id = $element['#id']; // Provide attributes for a toolbar item. $attributes = array(