From ce52f41a29a0803aff54c37bc3d48aef4d6e7c50 Mon Sep 17 00:00:00 2001 From: Angie Byron Date: Mon, 31 Aug 2009 19:50:18 +0000 Subject: #364219 follow-up by TheRec: One last API nicety to theme_links() for the accessibility header stuff. --- includes/theme.inc | 22 +++++++++++++++++----- modules/system/page.tpl.php | 4 ++-- 2 files changed, 19 insertions(+), 7 deletions(-) diff --git a/includes/theme.inc b/includes/theme.inc index c549544ac..9f0a74db8 100644 --- a/includes/theme.inc +++ b/includes/theme.inc @@ -1386,13 +1386,16 @@ function theme_status_messages($display = NULL) { * @param $attributes * A keyed array of attributes. * @param $heading - * An optional keyed array for a heading to precede the links: + * An optional keyed array or a string for a heading to precede the links. + * When using an array the following keys can be used: * - text: the heading text * - level: the heading level (e.g. 'h2', 'h3') * - class: (optional) an array of the CSS classes for the heading + * When using a string it will be used as the text of the heading and the + * level will default to 'h2'. * Headings should be used on navigation menus and any list of links that * consistently appears on multiple pages. To make the heading invisible - * use class => 'element-invisible'. Do not use 'display:none', which + * use the 'element-invisible' CSS class. Do not use 'display:none', which * removes it from screen-readers and assistive technology. Headings allow * screen-reader and keyboard only users to navigate to or skip the links. * See http://juicystudio.com/article/screen-readers-display-none.php @@ -1409,10 +1412,19 @@ function theme_links($links, $attributes = array('class' => array('links')), $he // Treat the heading first if it is present to prepend it to the // list of links. - if (!empty($heading['text']) && !empty($heading['level'])) { + if (!empty($heading)) { + if (is_string($heading)) { + // Prepare the array that will be used when the passed heading + // is a string. + $heading = array( + 'text' => $heading, + // Set the default level of the heading. + 'level' => 'h2', + ); + } $output .= '<' . $heading['level']; if (!empty($heading['class'])) { - $output .= ' ' . drupal_attributes(array('class' => $heading['class'])); + $output .= drupal_attributes(array('class' => $heading['class'])); } $output .= '>' . check_plain($heading['text']) . ''; } @@ -2279,4 +2291,4 @@ function template_preprocess_maintenance_page(&$variables) { if (isset($variables['db_is_active']) && !$variables['db_is_active']) { $variables['template_file'] = 'maintenance-page-offline'; } -} \ No newline at end of file +} diff --git a/modules/system/page.tpl.php b/modules/system/page.tpl.php index 5f0a96fdb..a6092204e 100644 --- a/modules/system/page.tpl.php +++ b/modules/system/page.tpl.php @@ -156,7 +156,7 @@ @@ -195,7 +195,7 @@ -- cgit v1.2.3