Removing a pseudo-element doesn't fire a textRemoved event
Categories
(Core :: Disability Access APIs, defect, P2)
Tracking
()
Tracking | Status | |
---|---|---|
firefox-esr68 | --- | unaffected |
firefox72 | --- | wontfix |
firefox73 | --- | fixed |
firefox74 | --- | fixed |
People
(Reporter: Jamie, Assigned: eeejay)
References
(Blocks 1 open bug, Regression)
Details
(Keywords: regression)
Attachments
(1 file)
47 bytes,
text/x-phabricator-request
|
RyanVM
:
approval-mozilla-beta+
|
Details | Review |
STR (with the NVDA screen reader):
- Open this test case:
data:text/html,<style>.before::before { content: 'before' }</style><button class="before" onclick="this.className = ''; document.body.append(document.createElement('hr'))">go
- Press the go button.
- Press control+home.
- Expected: NVDA should say "button go"
- Actual: NVDA says "button beforego"
- Press NVDA+f5 to refresh the buffer.
- Press control+home.
- Observe: NVDA says "button go" as it should have in step 3.
We correctly push hide and reorder events for the pseudo-element content. We don't fire a textRemoved event like we should. I don't know why. In many cases, the reorder event would be enough to update NVDA's buffer. Unfortunately, in this case (and this could - and almost certainly does - happen in the wild), the reorder event gets coalesced to the document, since we also add a node to the document in the same tick. So, NVDA never gets told to update the text of the button.
Marking as a regression from bug 686400 because before that, we would have re-created the accessible for the button. While not ideal for other reasons, that does effectively mean this problem didn't exist before. I'm also suspicious of bug 1572811. While that fix is necessary to fix a crash, it does mean we might bail on firing text events depending on where things happen.
I'm also wondering whether this could be the cause of bug 1592518. That almost certainly isn't related to pseudo-elements, but it's very likely due to missing text events.
Reporter | ||
Comment 1•5 years ago
|
||
Sometimes, I hate it when my hunches are correct. Commenting out the code from bug 1572811 "fixes" this. The question is: how to fix this without destabilising other things?
Reporter | ||
Comment 2•5 years ago
|
||
I also can't reproduce bug 1592518 with that code commented out.
Comment 3•5 years ago
|
||
I still can partially reproduce it. The case that timeline contents doesn't appear on Mastodon for me until I do a buffer refresh is still reproducible with this try build.
Updated•5 years ago
|
Assignee | ||
Comment 4•4 years ago
|
||
This reverts the change I made in bug 1572811, and instead fixes a much
more narrow case when the inner table frame is mid-construction.
Updated•4 years ago
|
Pushed by jteh@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/491c74e06395 Allow frameless containers when dispatching text removed events. r=Jamie
Comment 6•4 years ago
|
||
bugherder |
Comment 7•4 years ago
|
||
Is there a user impact here which justifies Beta uplift consideration for Fx73 or can this fix ride Fx74 to release?
Reporter | ||
Comment 8•4 years ago
|
||
Contrary to comment 2, I can still reproduce bug 1592518 on Twitter with a browser restart even with this patch.
That said, I think anything that causes updates not to be reflected in screen reader browse modes is potentially pretty serious. Eitan, are you comfortable with an uplift here?
Assignee | ||
Comment 10•4 years ago
|
||
Comment on attachment 9118432 [details]
Bug 1597916 - Allow frameless containers when dispatching text removed events. r?MarcoZ!
Beta/Release Uplift Approval Request
- User impact if declined: Screen reader users will have a stale buffer in certain situations
- Is this code covered by automated tests?: Yes
- Has the fix been verified in Nightly?: Yes
- Needs manual test from QE?: No
- If yes, steps to reproduce:
- List of other uplifts needed: None
- Risk to taking this patch: Low
- Why is the change risky/not risky? (and alternatives if risky):
- String changes made/needed:
Comment 11•4 years ago
|
||
Comment on attachment 9118432 [details]
Bug 1597916 - Allow frameless containers when dispatching text removed events. r?MarcoZ!
Fixes a bug which can cause stale content and crashes in some circumstances for screen reader users. Approved for 73.0b5.
Comment 12•4 years ago
|
||
bugherder uplift |
Updated•2 years ago
|
Description
•