Comment 2 by mdcurran on 2010-01-29 07:05
Having investigated this problem, it seems that those lists are firing two focus winEvents when focus moves from one item to another. However, the two focus winEvents differe from each other in their childID, and this is why they are not just filtered out by winEventLimiter.
The first winEvent has a childID of the item, the second winEvent has a childID of self (0).
But, because NVDA (IAccessibleHandler.processFocusWinEvent) has special code to correct focus going to the list itself, the real focus is retreaved, and therefore we get two identical focus events.
One option is to:
create a sysListView32.MenuItem NVDAObject who's shouldAllowIAccessibleFocusEvent will be false if the item already has focus / is going to have focus.