Implement GroupPosition for cached RemoteAccessibles
Categories
(Core :: Disability Access APIs, task)
Tracking
()
Tracking | Status | |
---|---|---|
firefox97 | --- | fixed |
People
(Reporter: Jamie, Assigned: eeejay)
References
Details
(Whiteboard: [ctw-m1])
Attachments
(12 files)
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
Bug 1737944 - P12: Add better todo support to attribute tests, and todo failing cache tests. r?Jamie
48 bytes,
text/x-phabricator-request
|
Details | Review |
We need to support GroupPosition for RemoteAccessible when the cache is enabled. Ideally, we'd calculate this on-demand in the parent process (probably caching when we do), as we don't want to send potentially huge cache updates from content every time an item is added or removed.
While this seems quite feasible for most cases, HTML radio inputs are more complicated, as they depend on looking at the name attribute, scanning for other elements with the same name, etc. I guess we'll have a similar problem with relations, so perhaps we can figure this out as part of that.
Reporter | ||
Comment 1•3 years ago
|
||
Interestingly, Chrome doesn't look at the name attribute at all.
data:text/html,<input type="radio" name="foo"><input type="radio" name="bar">
Firefox correctly reports 1 of 1 and 1 of 1. Chrome reports 1 of 2 and 2 of 2.
While Firefox is more correct here, this does make me wonder how much this really happens (or matters) in the real world. If it's not hugely important, we could (at least initially) just do what Chrome does and use generic group position calculation even for HTML radio inputs.
Reporter | ||
Updated•3 years ago
|
Comment 2•2 years ago
|
||
(In reply to James Teh [:Jamie] from comment #1)
Interestingly, Chrome doesn't look at the name attribute at all.
data:text/html,<input type="radio" name="foo"><input type="radio" name="bar">
Firefox correctly reports 1 of 1 and 1 of 1. Chrome reports 1 of 2 and 2 of 2.
While Firefox is more correct here, this does make me wonder how much this really happens (or matters) in the real world. If it's not hugely important, we could (at least initially) just do what Chrome does and use generic group position calculation even for HTML radio inputs.
Fly-by comment: Both browsers have separate tabstops, and arrow keys don't do anything in Chrome, while in Firefox, the previously unchecked radio button becomes checked. Firefox is definitely more correct in that it indicates that the two radio buttons are clearly not related from a keyboard UX standpoint.
Assignee | ||
Updated•2 years ago
|
Assignee | ||
Comment 3•2 years ago
|
||
Assignee | ||
Comment 4•2 years ago
|
||
Depends on D134204
Assignee | ||
Comment 5•2 years ago
|
||
Depends on D134205
Assignee | ||
Comment 6•2 years ago
|
||
Depends on D134206
Assignee | ||
Comment 7•2 years ago
|
||
The nsAccUtils method was a "fast" one for calculating set sizes and
conceptual parents. Unified it with
LocalAccessible::GetLevelInternal in Accessible::GetLevel with an
argument.
I also fixed select->optgroup->option group attributes.
Depends on D134207
Assignee | ||
Comment 8•2 years ago
|
||
Changed the methods a bit, instead of a HasDirty boolean method, I went
with a getter and a get-and-creator. This will lend better to remote
accessibles where we won't have a dirty flag.
Depends on D134208
Assignee | ||
Comment 9•2 years ago
|
||
Now that the AccGroupInfo getter is in Accessible, the position and size
getter could go there too.
Depends on D134209
Assignee | ||
Comment 10•2 years ago
|
||
Depends on D134210
Assignee | ||
Comment 11•2 years ago
|
||
Now that GroupPosition and GetGroupInfo are in Accessible, we can make
AccGroupInfo use the Accessible base class.
With one exception: Tables are still local only. That should be
addressed in bug 1735970.
Depends on D134211
Assignee | ||
Comment 12•2 years ago
|
||
Now that an AccGroupInfo can be constructed with an Accessible, we can
support its getter in remote accessibles.
Depends on D134212
Assignee | ||
Comment 13•2 years ago
|
||
Depends on D134213
Updated•2 years ago
|
Updated•2 years ago
|
Updated•2 years ago
|
Updated•2 years ago
|
Updated•2 years ago
|
Updated•2 years ago
|
Updated•2 years ago
|
Updated•2 years ago
|
Updated•2 years ago
|
Updated•2 years ago
|
Updated•2 years ago
|
Assignee | ||
Comment 14•2 years ago
|
||
Changed how our attributes tests work a bit to be single "is" test
instead of comparing each attribute separately. This allows passing a
todo option without it failing on attributes that are identical.
Depends on D134214
Comment 15•2 years ago
|
||
Pushed by eisaacson@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/e8f4be204683 P1: Port HTML group position test to browser. r=Jamie https://hg.mozilla.org/integration/autoland/rev/7e586e1f7892 P2: Allow AccAttributes to store a UniquePtr of AccGroupInfo. r=Jamie https://hg.mozilla.org/integration/autoland/rev/afea577be988 P3: Introduce Accessible::TagName getter for retrieving HTML tags. r=Jamie https://hg.mozilla.org/integration/autoland/rev/f6ce0e05c92e P4: Cache aria group attributes and introduce Accessible getter. r=Jamie https://hg.mozilla.org/integration/autoland/rev/c0a7fdc4bfca P5: Unify GetLevelInternal and GetDefaultLevel as Accessible::GetLevel. r=Jamie https://hg.mozilla.org/integration/autoland/rev/fca1ff7eabf4 P6: Put AccGroupInfo getter/creator in Accessible. r=Jamie https://hg.mozilla.org/integration/autoland/rev/5d76535b47fc P7: Move and rename GetPositionAndSizeInternal to Accessible. r=Jamie https://hg.mozilla.org/integration/autoland/rev/ac04b727a98b P8: Move GetGroupPosition to Accessible. r=Jamie https://hg.mozilla.org/integration/autoland/rev/d46f0bd36d7e P9: Make AccGroupInfo use Accessible. r=Jamie https://hg.mozilla.org/integration/autoland/rev/c893643ce094 P10: Store AccGroupInfo in remote accessible cache. r=Jamie https://hg.mozilla.org/integration/autoland/rev/40c4b363441a P11: When cache is enabled, calculate group info remotely and add it to attributes. r=Jamie https://hg.mozilla.org/integration/autoland/rev/3f2580279026 P12: Add better todo support to attribute tests, and todo failing cache tests. r=Jamie
Comment 16•2 years ago
|
||
bugherder |
https://hg.mozilla.org/mozilla-central/rev/e8f4be204683
https://hg.mozilla.org/mozilla-central/rev/7e586e1f7892
https://hg.mozilla.org/mozilla-central/rev/afea577be988
https://hg.mozilla.org/mozilla-central/rev/f6ce0e05c92e
https://hg.mozilla.org/mozilla-central/rev/c0a7fdc4bfca
https://hg.mozilla.org/mozilla-central/rev/fca1ff7eabf4
https://hg.mozilla.org/mozilla-central/rev/5d76535b47fc
https://hg.mozilla.org/mozilla-central/rev/ac04b727a98b
https://hg.mozilla.org/mozilla-central/rev/d46f0bd36d7e
https://hg.mozilla.org/mozilla-central/rev/c893643ce094
https://hg.mozilla.org/mozilla-central/rev/40c4b363441a
https://hg.mozilla.org/mozilla-central/rev/3f2580279026
Description
•