Closed Bug 1864606 Opened 6 months ago Closed 2 months ago

"Allow Nightly to send backlogged crash reports on your behalf" check box has no accessibility label

Categories

(Firefox :: Settings UI, defect, P2)

Desktop
All
defect

Tracking

()

VERIFIED FIXED
125 Branch
Accessibility Severity s2
Tracking Status
firefox-esr115 --- wontfix
firefox120 --- wontfix
firefox121 --- wontfix
firefox122 --- wontfix
firefox123 --- wontfix
firefox124 --- wontfix
firefox125 --- verified

People

(Reporter: csasca, Assigned: tgiles)

References

Details

(Keywords: access, regression)

Attachments

(3 files)

Attached image voiceover issue.png

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

  1. Launch Firefox
  2. Access about:preferences#privacy
  3. Tab through the page to "Firefox/Nightly Data Collection and Use" category
  4. 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.

Maybe another AXTitle/AXDescription quirk?

Component: Disability Access → Disability Access APIs
Product: Firefox → Core
QA Whiteboard: [qa-regression-triage]

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.

QA Whiteboard: [qa-regression-triage]
OS: macOS → All

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.

Severity: S3 → --
Accessibility Severity: --- → s2
Component: Disability Access APIs → Settings UI
Keywords: access
Product: Core → Firefox
Summary: [macOS][VO] A specific setting is not read by VoiceOver → "Allow Nightly to send backlogged crash reports on your behalf" check box has no accessibility label

Setting severity to match accessibility severity. I'm also going to have a go at fixing this myself, it's bugging me.

Assignee: nobody → mhowell
Severity: -- → S2
Status: NEW → ASSIGNED
Priority: -- → P1

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.

Assignee: molly → nobody
Status: ASSIGNED → NEW

Marking as P2, since Molly is no longer active

Priority: P1 → P2

:jhirsch could we find a new assignee for this given that it is a P2/S2?

Flags: needinfo?(jhirsch)

Sorry, busy week! I'll take this one

Assignee: nobody → jhirsch
Flags: needinfo?(jhirsch)
See Also: → 1882432

:jhirsh just as a reminder, string freeze is friday! so this has potential of missing that train as well ..

Flags: needinfo?(jhirsch)

Thanks for the ping. I'm too busy with other work, but I'll see if someone else can pick this up.

Assignee: jhirsch → nobody
Flags: needinfo?(jhirsch)

I have some time, I'll see if I can get a quick fix.

Assignee: nobody → tgiles

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.

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
Status: NEW → RESOLVED
Closed: 2 months ago
Resolution: --- → FIXED
Target Milestone: --- → 125 Branch
Flags: qe-verify+

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.

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).

Status: RESOLVED → VERIFIED
Flags: qe-verify+
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: