diff --git a/core/includes/form.inc b/core/includes/form.inc index 87ae891321a..969e60aed20 100644 --- a/core/includes/form.inc +++ b/core/includes/form.inc @@ -4003,7 +4003,7 @@ function theme_form_element_label($variables) { $t = get_t(); // If title and required marker are both empty, output no label. - if (empty($element['#title']) && empty($element['#required'])) { + if ((!isset($element['#title']) || $element['#title'] === '') && empty($element['#required'])) { return ''; } diff --git a/core/modules/simpletest/tests/form.test b/core/modules/simpletest/tests/form.test index 70ebf865392..94dfa8749e1 100644 --- a/core/modules/simpletest/tests/form.test +++ b/core/modules/simpletest/tests/form.test @@ -612,9 +612,17 @@ class FormsElementsLabelsTestCase extends DrupalWebTestCase { $elements = $this->xpath('//input[@id="edit-form-checkboxes-test-third-checkbox"]/following-sibling::label[@for="edit-form-checkboxes-test-third-checkbox" and @class="option"]'); $this->assertTrue(isset($elements[0]), t("Label follows field and label option class correct for regular checkboxes.")); + // Make sure the label is rendered for checkboxes. + $elements = $this->xpath('//input[@id="edit-form-checkboxes-test-0"]/following-sibling::label[@for="edit-form-checkboxes-test-0" and @class="option"]'); + $this->assertTrue(isset($elements[0]), t("Label 0 found checkbox.")); + $elements = $this->xpath('//input[@id="edit-form-radios-test-second-radio"]/following-sibling::label[@for="edit-form-radios-test-second-radio" and @class="option"]'); $this->assertTrue(isset($elements[0]), t("Label follows field and label option class correct for regular radios.")); + // Make sure the label is rendered for radios. + $elements = $this->xpath('//input[@id="edit-form-radios-test-0"]/following-sibling::label[@for="edit-form-radios-test-0" and @class="option"]'); + $this->assertTrue(isset($elements[0]), t("Label 0 found radios.")); + // Exercise various defaults for checkboxes and modifications to ensure // appropriate override and correct behaviour. $elements = $this->xpath('//input[@id="edit-form-checkbox-test"]/following-sibling::label[@for="edit-form-checkbox-test" and @class="option"]'); diff --git a/core/modules/simpletest/tests/form_test.module b/core/modules/simpletest/tests/form_test.module index 0393b184e1a..5e3fb173ed9 100644 --- a/core/modules/simpletest/tests/form_test.module +++ b/core/modules/simpletest/tests/form_test.module @@ -702,6 +702,7 @@ function form_label_test_form() { 'first-checkbox' => t('First checkbox'), 'second-checkbox' => t('Second checkbox'), 'third-checkbox' => t('Third checkbox'), + '0' => t('0'), ), ); $form['form_radios_test'] = array( @@ -711,6 +712,7 @@ function form_label_test_form() { 'first-radio' => t('First radio'), 'second-radio' => t('Second radio'), 'third-radio' => t('Third radio'), + '0' => t('0'), ), // Test #field_prefix and #field_suffix placement. '#field_prefix' => '' . t('Radios #field_prefix element') . '',