Index: includes/common.inc
===================================================================
RCS file: /cvs/drupal/drupal/includes/common.inc,v
retrieving revision 1.981
diff -u -p -r1.981 common.inc
--- includes/common.inc	31 Aug 2009 18:43:12 -0000	1.981
+++ includes/common.inc	2 Sep 2009 21:39:07 -0000
@@ -2347,11 +2347,15 @@ function l($text, $path, array $options 
 
   // Remove all HTML and PHP tags from a tooltip. For best performance, we act only
   // if a quick strpos() pre-check gave a suspicion (because strip_tags() is expensive).
-  if (isset($options['attributes']['title']) && strpos($options['attributes']['title'], '<') !== FALSE) {
-    $options['attributes']['title'] = strip_tags($options['attributes']['title']);
+  $accessibility_title = '';
+  if (isset($options['attributes']['title'])) {
+    if(strpos($options['attributes']['title'], '<') !== FALSE) {
+      $options['attributes']['title'] = strip_tags($options['attributes']['title']);
+    }
+    $accessibility_title = '<span class="element-invisible"> ' . $options['attributes']['title'] . '</span>';
   }
 
-  return '<a href="' . check_plain(url($path, $options)) . '"' . drupal_attributes($options['attributes']) . '>' . ($options['html'] ? $text : check_plain($text)) . '</a>';
+  return '<a href="' . check_plain(url($path, $options)) . '"' . drupal_attributes($options['attributes']) . '>' . ($options['html'] ? $text : check_plain($text)) . $accessibility_title .'</a>';
 }
 
 /**
