Attach selection listener to original target for focus events, which is where the focus really is. For XUL textboxes this allows us to listen to selection in the HTML input for it.
8.44 KB, patch
|Details | Diff | Splinter Review|
Steps: 1. Run MSAA Inspect 2. Enable viewing of caret move events 3. Move caret in address bar of Firefox What happens: Caret location change events are not reported but should be as they are for HTML. This would also help fix bug 244119 for Tablet PC support.
Created attachment 200020 [details] [diff] [review] Attach selection listener to original target for focus events, which is where the focus really is. For XUL textboxes this allows us to listen to selection in the HTML input for it.
So, are there reasons why a) you don't special case nsIDOMXULTextBoxElement or b) you don't do all accessible events on the original target?
(In reply to comment #2) > a) you don't special case nsIDOMXULTextBoxElement What if a web author uses XBL to create a widget with a HTML input or textarea as anonymous content? This general rule will catch that. > b) you don't do all accessible events on the original target? Because the accessible itself is created for the XUL element. If we used the original target we would be handing back an nsHTMLInputAccessible for events instead of a nsXULTextBoxAccessible.
Unfortunately, while this fix does generate the proper caret location change events generated by mouse clicks, location changes originated from the keyboard, i.e. inserting text, still don't generate any events in the XUL textboxes. This can be verified with the MSAA Inspector. In reference to bug 244119 (Tablet PC support), this fix now allows the tablet extension to open the floating input panel when the XUL textboxes are clicked, but it automatically closes if the user types any keystroke on the onscreen keyboard and the textbox must be continually re-clicked after each keystroke to use the onscreen keyboard for input.