"Allow Nightly to send backlogged crash reports on your behalf" check box has no accessibility label
Categories
(Firefox :: Settings UI, defect, P2)
Tracking
()
People
(Reporter: csasca, Assigned: tgiles)
References
Details
(Keywords: access, regression)
Attachments
(3 files)
Found in
- Firefox 121.0a1
Affected versions
- Firefox 120.0
- Firefox 121.0a1
Tested platforms
- Affected platforms: macOS 13.6.1
- Unaffected platforms: Windows, Ubuntu
Preconditions
- Have VoiceOver active
Steps to reproduce
- Launch Firefox
- Access about:preferences#privacy
- Tab through the page to "Firefox/Nightly Data Collection and Use" category
- Tab to "Allow Firefox to send backlogged crash reports on your behalf"
Expected result
- The option is read by VoiceOver like the other ones before
Actual result
- VoiceOver only says "unticked, checkbox"
Regression range
- Will see if this is a regression
Additional notes
- The issue can be seen in the attachment.
Comment 1•6 months ago
|
||
Maybe another AXTitle/AXDescription quirk?
Updated•6 months ago
|
Comment 2•5 months ago
•
|
||
Hello! I have made a regression range:
Last good revision: c4bd8fe7ee285cbd80419f23f175053921fe5cd9 (2021-05-02)
First bad revision: c97286566c4529deeb7c1da7ce593f83b0699992 (2021-05-03)
Pushlog:
https://hg.mozilla.org/mozilla-central/pushloghtml?fromchange=c4bd8fe7ee285cbd80419f23f175053921fe5cd9&tochange=c97286566c4529deeb7c1da7ce593f83b0699992
Unfortunately, I don't know which bug is the regressor from the above list. Also, it seems this is reproducible on Windows 10x64 with NVDA and Ubuntu 22 with Orca.
Comment 3•5 months ago
|
||
This is a problem in the Preferences code. Here is the problematic control. The check box is an HTML input. There is a label and the label does have a for
attribute, but it's a XUL label, not an HTML label, and the for
attribute is not valid on an XUL label. Initially, I was confused as to why clicking the label works fine if the for
attribute isn't valid, but it turns out that there is JS code for this specific label.
I don't know why it has been implemented this way. If it's not possible to use an HTML label, a XUL checkbox, etc., the label should be associated with aria-labelledby. Even then, this isn't entirely desirable because the Learn more link is inside the label, which shouldn't be part of the accessibility label. If aria-labelledby is used here, it should only refer to the text of the label itself (e.g. in an HTML span), not the Learn more link.
Updated•5 months ago
|
Comment 4•5 months ago
|
||
Setting severity to match accessibility severity. I'm also going to have a go at fixing this myself, it's bugging me.
Comment 5•5 months ago
|
||
This checkbox has some, I'll call it "bespoke" features of its implementation,
which, as far as I can tell, were done the way they were for reasons which no
longer apply [1]. So I've undone that and made this work more like the rest of our
checkboxes do, which also happens to fix the bug.
[1] I cannot be entirely certain of this because I don't feel like I fully
understand what those reasons were, but I did check for bug 1703792, which was
the most recent thing that seems to have triggered a lot of changes here, and
this patch does not appear to have brought it back.
Updated•3 months ago
|
Updated•3 months ago
|
Comment 7•2 months ago
|
||
:jhirsch could we find a new assignee for this given that it is a P2/S2?
Comment 8•2 months ago
|
||
Sorry, busy week! I'll take this one
Comment 9•2 months ago
|
||
:jhirsh just as a reminder, string freeze is friday! so this has potential of missing that train as well ..
Comment 10•2 months ago
|
||
Thanks for the ping. I'm too busy with other work, but I'll see if someone else can pick this up.
Assignee | ||
Comment 11•2 months ago
|
||
I have some time, I'll see if I can get a quick fix.
Assignee | ||
Comment 12•2 months ago
|
||
Thanks to mhowell for the STRIP_ANCHOR function in the Fluent migration.
We were using the "for" attribute on a XUL label which does not behave
like an HTML label. This prevented the programmatic association
between the checkbox and the label. By utilizing moz-label, we maintain
the accesskey behavior of the previous XUL label.
Additionally we use moz-support-link to remove the
"collection-backlogged-crash-reports-link" Fluent string.
Comment 13•2 months ago
|
||
Pushed by gijskruitbosch@gmail.com: https://hg.mozilla.org/integration/autoland/rev/5114114b454d Fix missing label association for crash reports checkbox r=fluent-reviewers,Gijs,bolsson
Comment 14•2 months ago
|
||
bugherder |
Reporter | ||
Updated•2 months ago
|
Comment 15•2 months ago
|
||
I've managed to reproduce the issue on an affected Nightly build from 2023-11-14 on macOS 12.6.6.
Verified this as fixed on Firefox 125.0b5 (20240327092250) on the same OS. "Allow Firefox to send backlogged crash reports on your behalf" check box is correctly read by the VoiceOver.
Updated•1 month ago
|
Comment 16•1 month ago
|
||
Verified this as fixed on Firefox 125.0b6 (20240329091918) on Windows 11 and Ubuntu 22.04 as well. "Allow Firefox to send backlogged crash reports on your behalf" check box is correctly read by NVDA (Windows)/Orca (Ubuntu).
Description
•