Unify LinkAt in HyperTextAccessibleBase
Categories
(Core :: Disability Access APIs, task)
Tracking
()
Tracking | Status | |
---|---|---|
firefox95 | --- | fixed |
People
(Reporter: Jamie, Assigned: Jamie)
References
(Blocks 1 open bug)
Details
Attachments
(6 files)
LinkAt is needed to get embedded objects for hypertext clients. In particular, it's needed for NVDA to render a virtual buffer.
Assignee | ||
Comment 1•3 years ago
|
||
This required renaming LocalAccessible::GetEmbeddedChildAt to EmbeddedChildAt.
LocalAccessible::EmbeddedChildAt uses a covariant return type to return a LocalAccessible* while still overriding the base method (which returns Accessible*).
Unfortunately, this can't be done for RemoteAccessible, since the Derived type isn't complete in time due to the templating.
There was only one caller of RemoteAccessible::EmbeddedChildAt, so I just changed it to call AsRemote.
Eventually, even that caller will use the unified tree anyway.
Assignee | ||
Comment 2•3 years ago
|
||
This uses the unified Accessible::EmbeddedChildAt from the previous patch.
HyperTextAccessible::LinkAt still exists, since there are still some callers that depend on it returning a LocalAccessible.
xpcAccessibleHyperText has also been updated to call this, which means tests will work on Windows when the cache is enabled.
Assignee | ||
Comment 3•3 years ago
|
||
Assignee | ||
Comment 4•3 years ago
|
||
We don't support any of the methods in this interface for RemoteAccessible yet.
However, IAccessibleHypertext::get_hyperlink returns an IAccessibleHyperlink, so we must support QI to it.
Assignee | ||
Comment 5•3 years ago
|
||
This makes way for a new unified TextAcc method in a subsequent patch.
Strictly speaking, doing it like this isn't correct because methods will return CO_E_OBJNOTCONNECTED for a RemoteAccessible instead of E_NOTIMPL.
I fixed this for IAccessibleText, but I realised fixing this for all interfaces is going to involve a lot of churn which we're going to end up removing anyway once we unify everything.
Clients don't really care about the error code, so I think this situation is acceptable while this is still in early development.
Assignee | ||
Comment 6•3 years ago
|
||
Comment 8•3 years ago
|
||
bugherder |
https://hg.mozilla.org/mozilla-central/rev/7d5b04d917ab
https://hg.mozilla.org/mozilla-central/rev/f5d402b9c8e0
https://hg.mozilla.org/mozilla-central/rev/3c9adcebbd98
https://hg.mozilla.org/mozilla-central/rev/417190cd31c6
https://hg.mozilla.org/mozilla-central/rev/c4747685e885
https://hg.mozilla.org/mozilla-central/rev/5ce097bae426
Description
•