It seems like we need to markup the output of the autocomplete as a
liveregion. Screen readers do not support liveregions very well at this
point, but Jaws and NVDA will read new information as it is written to the
element or one of its children.
The other problem is that there is no way of controlling exactly what should
be read. From what I can gather from my tests, each keypress refreshes the
list of possibilities. The liveregion spec allows for reading the new info
as it is added, either atomically or strictly as it comes in. However, seems
we want to wait till the list has completely refreshed, then read only the
first item.
I wonder if there might be a way of doing inline autocomplete as an option.
This tends to work much better for screen readers.
-- Rich