Closed Bug 1754680 Opened 3 years ago Closed 3 years ago

Bullets treated as embedded objects by RemoteAccessible (AKA li elements broken with NVDA + CTW)

Categories

(Core :: Disability Access APIs, defect)

defect

Tracking

()

RESOLVED FIXED
99 Branch
Tracking Status
firefox99 --- fixed

People

(Reporter: Jamie, Assigned: Jamie)

References

(Blocks 1 open bug)

Details

(Keywords: perf-alert)

Attachments

(1 file)

STR (with the NVDA screen reader):

  1. Load this test case:
    data:text/html,<ul><li><a href="https://example.com/">test
  2. Read the content of the document with the cursor keys.
    • Expected: There should be a list item containing a bullet and a "test" link.
    • Actual: There is only a bullet; the link is missing.

This occurs because IAccessibleHyperlink::get_hyperlink(0) fails with E_NOINTERFACE instead of returning the link. That happens because RemoteAccessibleBase::EmbeddedChildAt returns the bullet, which it shouldn't do; the bullet is part of the text, not an embedded object. That in turn occurs because RemoteAccessibleBase::IsEmbeddedObject returns true for bullets. That should be a pretty straightforward fix.

This was causing LinkAt to return a bullet instead of the first embedded object in a list item, breaking rendering with NVDA when the cache was enabled.
Rather than adding another role to RemoteAccessibleBase::IsEmbeddedObject, I changed it to use IsText().
This is consistent with how embedded objects are determined for LocalAccessible in EmbeddedObjCollector.
I think the reason this previously used roles is that when this was originally implemented, AccTypes weren't remoted, so IsText() couldn't be used.

Pushed by jteh@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/1ae02b556de8 Don't treat a list item bullet as an embedded object. r=eeejay
Status: NEW → RESOLVED
Closed: 3 years ago
Resolution: --- → FIXED
Target Milestone: --- → 99 Branch

== Change summary for alert #33285 (as of Wed, 16 Feb 2022 17:00:13 GMT) ==

Improvements:

Ratio Test Platform Options Absolute values (old vs new)
7% a11yr dhtml.html linux1804-64-shippable-qr e10s fission stylo webrender-sw 570.65 -> 530.37
7% a11yr dhtml.html linux1804-64-shippable-qr e10s fission stylo webrender 580.24 -> 539.46

For up to date results, see: https://treeherder.mozilla.org/perfherder/alerts?id=33285

Keywords: perf-alert
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: