[orca-list] Orca now supports aria-hidden="true" for Gecko content



Hey all.

The tl;dr version is this: Orca now has core support for
aria-hidden="true" for Gecko content. And once Mozilla fixes this bug:
https://bugzilla.mozilla.org/show_bug.cgi?id=786143, Orca should support
it fully.

Here's the long version:

As you may recall from earlier discussions, Orca has supported
aria-hidden="true" for Epiphany/WebKitGtk for quite some time -- all
without any code required in Orca. The reason being that WebKit prunes
the tree of accessible objects to remove those which have
aria-hidden="true". Because these objects are hidden from Orca, it's
incredibly easy for Orca to hide these objects it knows nothing about
from you. <grins> Thus things JustWork(tm).

The case with Gecko has been different. Gecko won't prune the tree even
though I've asked, both in person and through bugzilla. See, for
instance, https://bugzilla.mozilla.org/show_bug.cgi?id=972845. As a
result, to support aria-hidden="true" in Gecko, Orca would have to
examine all elements you might come across on the off chance they happen
to be hidden. Each and every one of them. Just in case. Odds are they
aren't hidden, but you never know....

Doing this checking in and of itself would be a drag. But to make
matters worse, it would not be sufficient to check each and every
element on the off chance it might be hidden. Orca would also have to
check the parent of each and every element. And the parent of that
parent. And the parent of the parent of the parent. And so on and so on
and so on. Because if any of those ancestor elements are hidden, then
all of the descendants are supposed to be treated as if they were too.
<frowns>. Anyhoo, I also filed a request that Mozilla propagate the
hidden attribute so at least all Orca would have to do is check each and
every element and not also check each and every ancestor of each and
every element. That bug can be found at
https://bugzilla.mozilla.org/show_bug.cgi?id=974238. It was marked as a
duplicate of the bug at the top of this message. And nothing had
happened since.

Jump forward to a couple of weeks ago when Mozilla hosted me, James Teh,
and several others to discuss all things Web Accessibility. My final
plea for pruning was rejected, but Mozilla did agree to doing the
propagation. That's a fair compromise. As a result, I've added the
support to Orca, but without doing any ancestry checking. That balances
supporting the ARIA feature without a performance hit to go looking for
something that very likely isn't there to be found. So far what seems to
work as expected (where expected is to not present hidden elements) is:

* Caret navigation
* Flat review
* Say All
* Structural navigation -- when the element itself is marked

With respect to the last case, that means a paragraph with
aria-hidden="true" is not presented. But a paragraph without
aria-hidden="true" with an ancestor div that has aria-hidden="true" will
be presented. The presentation of the hidden descendant is a bug, one
which should just go away when Mozilla fixes
https://bugzilla.mozilla.org/show_bug.cgi?id=786143 -- which, again,
they agreed to do a couple of weeks ago.

I hope this all makes sense. Please let me know if you have any questions.

--joanie


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]