Closed Bug 376526 Opened 19 years ago Closed 19 years ago

Caret (in composition window) at end of line is not inside IAccessible for line

Categories

(Core :: Disability Access APIs, defect)

x86
Windows XP
defect
Not set
normal

Tracking

()

RESOLVED DUPLICATE of bug 368895

People

(Reporter: accmoz, Assigned: aaronlev)

Details

User-Agent: Mozilla/5.0 (compatible; Konqueror/3.5; Linux) KHTML/3.5.4 (like Gecko) Build Identifier: version 2.0.0.0pre(20070404) http://ftp.mozilla.org/pub/mozilla.org/thunderbird/nightly/2007-04-04-04-mozilla1.8/thunderbird-2.0.0.0pre.en-US.win32.zip In the message body of the email composition window ("About Blank"), the caret's screen location can be reported by a WinEvent callback. I am trying to determine where the caret is within the text in order to inform the assistive technology user. If the caret is positioned at the end of a line, this location is frequently outside the IAccessible that corresponds to the line (or paragraph containing the line). Instead it is only within the "About Blank" element. Sometimes the caret position is within IAccessible of the line (or paragraph), and it is possible to QueryInterface to an ISimpleDOMText object. In many cases, however, the caret position is to the right of the bounds of the last character in the line. Reproducible: Always Steps to Reproduce: 1. Register a WinEventHook for location changes (and in the hook filter for caret location changes) 2. Create a single line paragraph in message body of a Thunderbird composition window. 2. Position the caret at the end of the line 3. Receive the WinEventHook callback 4. Extract caret position 5. Test what IAccessible the caret position is in by calling AccessibleObjectFromPoint 6. The IAccessible's name will frequently be "About Blank" rather than the text of the line. 7. If the IAccessible is actually for the line, QueryInterface to ISimpleDOMText 8. Check if the caret is inside the bounds of the last character (or any other for that matter). Actual Results: Generally the IAccessible the caret is within is "About Blank" rather than the line in question. If it is inside the line itself, then in all the tests I have run like this, it is outside the bounds of all characters in the line. Expected Results: The caret should be within the IAccessible of the line it is at the end of. It should be within the bounds of the last character of the ISimpleDOMText object that corresponds to the line.
We're redoing how we report the caret in trunk. We're no longer using the IAccessible caret methodology, but moving to IAccessible2-related interfaces like IAccessibleText. It's unlikely that we're going to fix anything here. Ideally we'd have the resources to fix this for you, but we have to focus what we have on our new approaches. Can you find a workaround?
I have found a work around for this. Switching to IAccessible2 is clearly the smart approach. May it happen quickly and easily!
Status: UNCONFIRMED → RESOLVED
Closed: 19 years ago
Resolution: --- → DUPLICATE
You need to log in before you can comment on or make changes to this bug.