Closed Bug 417518 Opened 13 years ago Closed 13 years ago

Prevent text leaf accessibles from implementing advanced interfaces

Categories

(Core :: Disability Access APIs, defect)

defect
Not set
normal

Tracking

()

RESOLVED FIXED

People

(Reporter: aaronlev, Assigned: aaronlev)

Details

(Keywords: access)

Attachments

(1 file)

It's weird that text leafs are being used as IAccessibleText. I see it in this
crash:
http://crash-stats.mozilla.com/report/index/7f4d174f-da72-11dc-b877-001a4bd43ef6

We should stop that from happening.

This is a simpler fix for that than bug 372131, because we still do need some behavior from nsLinkableAccessible in text leaf accessibles. Just changing what QI can do is a good fix for Firefox 3.
Attachment #303295 - Flags: review?(surkov.alexander)
Marco, a try server build is underway. It has the name FixQIonTextLeaves417518.

I just want to make sure it doesn't break basic page navigation (both in or out of virtual buffer). It should be pretty obvious if this causes any problems. Please check form controls with <label>'s as well as ordinary text.
We also need to make sure that triggering links works, and that they are reported as visited/unvisited.
(In reply to comment #2)
> I just want to make sure it doesn't break basic page navigation (both in or out
> of virtual buffer). It should be pretty obvious if this causes any problems.
> Please check form controls with <label>'s as well as ordinary text.


OK on all counts!

(In reply to comment #3)
> We also need to make sure that triggering links works, and that they are
> reported as visited/unvisited.

Yep also still fine!

Question: Won't this break Orca in some way if they rely on getTextAtOffset, or is this not implemented by text leaf nodes anyway?
Orca doesn't even see the text leaf nodes. It won't affect them at all. We only expose those on Windows for backwards-compat with older Windows screen readers. Orca sees the text via the text interface on the container elements.
Comment on attachment 303295 [details] [diff] [review]
Make QI do the right thing for text leaf objects


>-NS_IMPL_ISUPPORTS_INHERITED0(nsTextAccessible, nsLinkableAccessible)
>+// Make sure we don't support text or other irrelevant interfaces.
>+// We have nsLinkableAccessible in our inheritance chain as a convenience in order to
>+// get link actions and states on the text accessibles. Windows screen readers expect that.
>+NS_IMPL_ISUPPORTS_INHERITED2(nsTextAccessible, nsAccessNode, nsIAccessible, nsPIAccessible)

why nsAccessNode? Do we loose nsIAccessibleHyperLink because nsLinkableAccessible implements getURI()?
That's right. We don't want to support nsIAccessibleHyperLink on a text leaf. We only want to support it on elements that are embedded in text.
Surkov, I answered your question in comment 7.
Comment on attachment 303295 [details] [diff] [review]
Make QI do the right thing for text leaf objects

r=me
Attachment #303295 - Flags: review?(surkov.alexander)
Attachment #303295 - Flags: review+
Attachment #303295 - Flags: approval1.9?
Comment on attachment 303295 [details] [diff] [review]
Make QI do the right thing for text leaf objects

a=beltzner for 1.9
Attachment #303295 - Flags: approval1.9? → approval1.9+
Status: NEW → RESOLVED
Closed: 13 years ago
Resolution: --- → FIXED
You need to log in before you can comment on or make changes to this bug.