Index: misc/autocomplete.js
===================================================================
RCS file: /cvs/drupal/drupal/misc/autocomplete.js,v
retrieving revision 1.37
diff -u -p -r1.37 autocomplete.js
--- misc/autocomplete.js	13 Jun 2010 05:31:02 -0000	1.37
+++ misc/autocomplete.js	7 Nov 2010 04:10:27 -0000
@@ -16,6 +16,9 @@ Drupal.behaviors.autocomplete = {
         .attr('autocomplete', 'OFF')[0];
       $(input.form).submit(Drupal.autocompleteSubmit);
       new Drupal.jsAC(input, acdb[uri]);
+      $(input).parent().attr('role', 'application');
+      $(input).attr('aria-autocomplete', 'list');
+      $(input).parent().append($('<span class="element-invisible" aria-live="assertive"></span>').attr('id', $(input).attr('id') + '-autocomplete-aria-live'));
     });
   }
 };
@@ -141,6 +144,7 @@ Drupal.jsAC.prototype.highlight = functi
   }
   $(node).addClass('selected');
   this.selected = node;
+  $('#' + $(this.input).attr('id') + '-autocomplete-aria-live').html($(this.selected).html());
 };
 
 /**
@@ -149,6 +153,7 @@ Drupal.jsAC.prototype.highlight = functi
 Drupal.jsAC.prototype.unhighlight = function (node) {
   $(node).removeClass('selected');
   this.selected = false;
+  $('#' + $(this.input).attr('id') + '-autocomplete-aria-live').html('');
 };
 
 /**
@@ -166,6 +171,7 @@ Drupal.jsAC.prototype.hidePopup = functi
     $(popup).fadeOut('fast', function () { $(popup).remove(); });
   }
   this.selected = false;
+  $('#' + $(this.input).attr('id') + '-autocomplete-aria-live').html('');
 };
 
 /**
@@ -217,6 +223,7 @@ Drupal.jsAC.prototype.found = function (
   if (this.popup) {
     if (ul.children().size()) {
       $(this.popup).empty().append(ul).show();
+      $('#' + $(this.input).attr('id') + '-autocomplete-aria-live').html(Drupal.t('Autocomplete popup'));
     }
     else {
       $(this.popup).css({ visibility: 'hidden' });
