Index: includes/form.inc
===================================================================
RCS file: /cvs/drupal/drupal/includes/form.inc,v
retrieving revision 1.428
diff -u -p -r1.428 form.inc
--- includes/form.inc	30 Jan 2010 07:54:01 -0000	1.428
+++ includes/form.inc	31 Jan 2010 22:17:54 -0000
@@ -2989,6 +2989,9 @@ function theme_file($variables) {
  *   for radio and checkbox #type elements as set in system_element_info().
  *   If the #title is empty but the field is #required, the label will
  *   contain only the required marker.
+ * - invisible: Labels are critical for screen readers to enable them to 
+ *   properly navigate through forms but can be visually distracting. This
+ *   property hides the label for everyone except screen readers.
  * - attribute: Set the title attribute on the element to create a tooltip
  *   but output no label element. This is supported only for checkboxes
  *   and radios in form_pre_render_conditional_form_element(). It is used
@@ -3041,6 +3044,7 @@ function theme_form_element($variables) 
       $output .= ' ' . $element['#children'] . "\n";
       break;
 
+    case 'invisible':
     case 'after':
       $output .= ' ' . $element['#children'];
       $output .= ' ' . theme('form_element_label', $variables) . "\n";
@@ -3127,6 +3131,11 @@ function theme_form_element_label($varia
     // Style the label as class option to display inline with the element.
     $attributes['class'] = 'option';
   }
+  elseif ($element['#title_display'] == 'invisible') {
+    // Show label only to screen readers to avoid disruption in visual flows.
+    $attributes['class'] = 'element-invisible';
+  }
+  
   if (!empty($element['#id'])) {
     $attributes['for'] = $element['#id'];
   }
Index: modules/filter/filter.module
===================================================================
RCS file: /cvs/drupal/drupal/modules/filter/filter.module,v
retrieving revision 1.315
diff -u -p -r1.315 filter.module
--- modules/filter/filter.module	30 Jan 2010 22:47:24 -0000	1.315
+++ modules/filter/filter.module	31 Jan 2010 22:17:54 -0000
@@ -846,7 +846,7 @@ function theme_filter_tips_more_info() {
 function theme_filter_guidelines($variables) {
   $format = $variables['format'];
 
-  $name = isset($format->name) ? '<label>' . $format->name . ':</label>' : '';
+  $name = isset($format->name) ? $format->name : '';
   return '<div id="filter-guidelines-' . $format->format . '" class="filter-guidelines-item">' . $name . theme('filter_tips', array('tips' => _filter_tips($format->format, FALSE))) . '</div>';
 }
 
Index: modules/simpletest/tests/form.test
===================================================================
RCS file: /cvs/drupal/drupal/modules/simpletest/tests/form.test,v
retrieving revision 1.33
diff -u -p -r1.33 form.test
--- modules/simpletest/tests/form.test	8 Jan 2010 06:36:34 -0000	1.33
+++ modules/simpletest/tests/form.test	31 Jan 2010 22:17:54 -0000
@@ -305,6 +305,9 @@ class FormsElementsLabelsTestCase extend
     $elements = $this->xpath('//input[@id="edit-form-textfield-test-title-after"]/following-sibling::label[@for="edit-form-textfield-test-title-after" and @class="option"]');
     $this->assertTrue(isset($elements[0]), t("Label after field and label option class correct for text field."));
 
+    $elements = $this->xpath('//input[@id="edit-form-textfield-test-title-invisible"]/following-sibling::label[@for="edit-form-textfield-test-title-invisible" and @class="element-invisible"]');
+    $this->assertTrue(isset($elements[0]), t("Label after field and label class is element-invisible."));
+
     $elements = $this->xpath('//label[@for="edit-form-textfield-test-title-no-show"]');
     $this->assertFalse(isset($elements[0]), t("No label tag when title set not to display."));
   }
Index: modules/simpletest/tests/form_test.module
===================================================================
RCS file: /cvs/drupal/drupal/modules/simpletest/tests/form_test.module,v
retrieving revision 1.26
diff -u -p -r1.26 form_test.module
--- modules/simpletest/tests/form_test.module	8 Jan 2010 06:36:34 -0000	1.26
+++ modules/simpletest/tests/form_test.module	31 Jan 2010 22:17:54 -0000
@@ -537,6 +537,11 @@ function form_label_test_form(&$form_sta
     '#title' => t('Textfield test for title after element'),
     '#title_display' => 'after',
   );
+  $form['form_textfield_test_title_invisible'] = array(
+    '#type' => 'textfield',
+    '#title' => t('Textfield test for invisible title'),
+    '#title_display' => 'invisible',
+  );
   // Textfield test for title set not to display
   $form['form_textfield_test_title_no_show'] = array(
     '#type' => 'textfield',
