Closed Bug 1587962 Opened 2 months ago Closed 2 months ago

[10.15] "Use keyboard navigation" in system preferences does not register with Firefox in OSX Catalina

Categories

(Firefox :: Disability Access, defect, P1)

69 Branch
x86_64
macOS
defect

Tracking

()

VERIFIED FIXED
Firefox 72
Tracking Status
relnote-firefox --- 70+
firefox-esr68 71+ fixed
firefox67 --- wontfix
firefox68 --- wontfix
firefox69 --- wontfix
firefox70 + wontfix
firefox71 + verified
firefox72 + verified

People

(Reporter: almonc, Assigned: haik)

References

(Blocks 1 open bug)

Details

(Keywords: regression)

Attachments

(1 file)

User Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:69.0) Gecko/20100101 Firefox/69.0

Steps to reproduce:

Prerequisite: Must be running OSX Catalina version 10.15 (19A583)

  1. Open System Preferences
  2. Go to Keyboard preferences
  3. Select Shortcuts tab and check "Use keyboard navigation to move focus between controls".
  4. Open Firefox 69.0.3 and navigate to page with hyperlinks
  5. Try navigating to links by pressing Tab key

Actual results:

Links are skipped over instead of receiving focus, and therefore cannot be tabbed to.

Expected results:

Links should receive focus in correct tabbing order when the "Use keyboard navigation to move focus between controls" option is enabled through OSX Catalina System Preferences. Prior to upgrading to Catalina, this feature worked as expected in OSX Mojave.

Bugbug thinks this bug should belong to this component, but please revert this change in case of error.

Component: Untriaged → Preferences

Adding Camelia to see if their team can repro and find a possible regression range.

Flags: needinfo?(camelia.badau)
Summary: "Use keyboard navigation" in system preferences does not register with Firefox in OSX Catalina → [10.15] "Use keyboard navigation" in system preferences does not register with Firefox in OSX Catalina

I reproduced the issue on macOS 10.15 Catalina Release using Firefox 69.0.3, latest Nightly 71.0a1 (2019-10-13), Firefox 70 Beta 14 and Firefox Nightly 71.0a1 - 2019-10-07/08 (when macOS 10.15 Catalina was released): links are skipped over instead of receiving focus by pressing TAB key (with "Use keyboard navigation to move focus between controls" option checked).

On macOS 10.14, with "All Controls" option checked in System Preferences->Keyboard->Shortcuts, the links receive focus in correct tabbing order by pressing TAB key.

Note: Pressing the tab key on macOS 10.15 (with "Use keyboard navigation to move focus between controls" option checked) works as on mac 10.14 when the "Text boxes and lists only" option is checked.

Status: UNCONFIRMED → NEW
Ever confirmed: true
Flags: needinfo?(camelia.badau)
OS: Unspecified → macOS
Hardware: Unspecified → x86_64
Component: Preferences → Disability Access
Duplicate of this bug: 1589331
Duplicate of this bug: 1589371

Bug 1589371 comment 6 found an article with "How to enable keyboard navigation to move between controls in macOS Catalina" https://www.imore.com/how-use-keyboard-accessibility-features-mac#keyboard-navigation

where it shows a System Preferences -> Accessibility -> Navigation tab that doesn't seem to have made it to the current release of Catalina. Not sure if it was something removed from a beta or it's an upcoming change…

Blocks: catalina

(In reply to Camelia Badau [:cbadau], Release Desktop QA from comment #3)

I reproduced the issue on macOS 10.15 Catalina Release using Firefox 69.0.3, latest Nightly 71.0a1 (2019-10-13), Firefox 70 Beta 14 and Firefox Nightly 71.0a1 - 2019-10-07/08 (when macOS 10.15 Catalina was released): links are skipped over instead of receiving focus by pressing TAB key (with "Use keyboard navigation to move focus between controls" option checked).

@Camelia, could you try and get a regression range on this?

It would also be good to know if the problem reproduces with pref security.sandbox.content.level set to 0 (requires restart.)

Thanks

Flags: needinfo?(camelia.badau)

I've done some testing and confirmed this is sandboxing related. It may end up being a duplicate of bug 1588821. Taking the bug.

Flags: needinfo?(camelia.badau)
See Also: → 1588821
Priority: -- → P1

The root cause of this bug and bug 1588821 appears to be that in Catalina, in Apple code, our content processes need to read ~/Library/Preferences/.GlobalPreferences.plist, but are prevented from doing so due to sandboxing. In that plist, the tab keyboard focus setting and the scrolling behavior setting (bug 1588821) are saved as AppleKeyboardUIMode and AppleScrollerPagingBehavior respectively. Something in Catalina must have changed to make the plist be accessed after the sandbox is enabled. That needs some more debugging and comparing with earlier releases to confirm.

I am testing a fix that addresses both issues and hope to have something for review tomorrow.

Duplicate of this bug: 1588821

Bugbug thinks this bug is a regression, but please revert this change in case of error.

Keywords: regression
Assignee: nobody → haftandilian

The posted fix adds content process sandbox access to some preferences files, the defaults daemon service and one service exposed by opendirectoryd, and read access to a defaults daemon shared memory region. It also enables file-read-metadata for the filesystem which allows stat() calls to succeed. (Note that without file-read-metadata, it is already possible for a sandboxed process to test for the existence of a file using stat() calls. A different errno value is set when the error is access blocked due to sandboxing vs no such file.) For comparison's sake, the services being added to the sandbox are all services allowed by a sandboxed App Store Mac application. I found these services were needed in order for the "Jump to the spot that's clicked" and tab to focus links functionality to work.

With the fix, the "jump scrolling" preference takes effect immediately without requiring a browser restart.

And, on Catalina, when "Use keyboard navigation to move focus between controls" is checked, the tab key can be used to focus links as well as controls.

Update sandbox rules to allow services and files needed for global UI system preferences.

Update tests now that stat() calls on the filesystem are permitted.

So far, manually tested on 10.9, 10.10, 10.12, 10.14, 10.15.

[Tracking Requested - why for this release]:

Is this something you think may be safe to uplift to 70 release? Is there extra testing we could ask QA to do?

Flags: needinfo?(haftandilian)
Pushed by haftandilian@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/629a1370d01b
[10.15] "Use keyboard navigation" and "jump to spot" scrolling preferences do not work r=spohl

(In reply to Liz Henry (:lizzard) from comment #15)

[Tracking Requested - why for this release]:

Is this something you think may be safe to uplift to 70 release? Is there extra testing we could ask QA to do?

I think it is likely to be safe for uplift, but we need QA to do extra testing. It's a bigger change than the typical sandbox low risk rule change. And I'd like to see it on Beta for minimum one week before uplift to Release.

Flags: needinfo?(haftandilian)
Status: NEW → RESOLVED
Closed: 2 months ago
Resolution: --- → FIXED
Target Milestone: --- → Firefox 72

@almonc, thanks for reporting this issue. It should be fixed in the latest version of Nightly available today. If you are able to validate the problem is fixed for you, please let us know. We plan to get this uplifted to Firefox 70 or 71, but don't have a definite time frame yet.

Flags: needinfo?(almonc)

mcoman, could you help verify if bug 1589331 and/or bug 1589371 are resolved with this fix?

Flags: needinfo?(mcoman)

Hi Ed, I have verified that bug 1589331 and bug 1589371 are no longer reproducible with the latest Firefox Nightly (72.0a1 Build ID - 20191024214023) installed on Mac 10.15. Now, the strings can be successfully focused via keyboard navigation.

Flags: needinfo?(mcoman)

Haik, do you want to request the uplift to beta now? Thanks

Flags: needinfo?(haftandilian)

@haik Confirmed it is working in the latest nightly build. Thank you!

Flags: needinfo?(almonc)

Marking verified with comment 21 and comment 23

Status: RESOLVED → VERIFIED

Comment on attachment 9103670 [details]
Bug 1587962 - [10.15] "Use keyboard navigation" and "jump to spot" scrolling preferences do not work

Beta/Release Uplift Approval Request

  • User impact if declined: On macOS 10.15 Catalina, the two macOS features "Use keyboard navigation to move focus between controls" and "Jump to the spot that's clicked" do not work with Firefox. The keyboard navigation feature enables the tab key to move focus to links on a page which is important for accessibility.
  • Is this code covered by automated tests?: No
  • Has the fix been verified in Nightly?: Yes
  • Needs manual test from QE?: Yes
  • If yes, steps to reproduce: See description of this bug and also bug 1588821. Both issues need to be verified.
  • List of other uplifts needed: None
  • Risk to taking this patch: Medium
  • Why is the change risky/not risky? (and alternatives if risky): This change is low-medium risk. The changes are limited to the Mac content sandbox ruleset and are most likely safe, but need to be tested on all the Mac OS versions we support: 10.9 - 10.15. The impact of sandbox rule changes can be hard to predict because they impact Apple code running in libraries we use as well as our code.
  • String changes made/needed: None

ESR Uplift Approval Request

  • If this is not a sec:{high,crit} bug, please state case for ESR consideration: Accessibility impact.
  • User impact if declined: On macOS 10.15 Catalina, the two macOS features "Use keyboard navigation to move focus between controls" and "Jump to the spot that's clicked" do not work with Firefox. The keyboard navigation feature enables the tab key to move focus to links on a page which is important for accessibility.
  • Fix Landed on Version: 72
  • Risk to taking this patch: Medium
  • Why is the change risky/not risky? (and alternatives if risky): This change is low-medium risk. The changes are limited to the Mac content sandbox ruleset and are most likely safe, but need to be tested on all the Mac OS versions we support: 10.9 - 10.15. The impact of sandbox rule changes can be hard to predict because they impact Apple code running in libraries we use as well as our code.
  • String or UUID changes made by this patch: None
Flags: needinfo?(haftandilian)
Attachment #9103670 - Flags: approval-mozilla-release?
Attachment #9103670 - Flags: approval-mozilla-esr68?
Attachment #9103670 - Flags: approval-mozilla-beta?
Flags: qe-verify+

@Jamie, I've flagged this fix for ESR 68 approval because I understand it is critical accessibility functionality. Could you confirm if that's the case?

Flags: needinfo?(jteh)

Comment on attachment 9103670 [details]
Bug 1587962 - [10.15] "Use keyboard navigation" and "jump to spot" scrolling preferences do not work

Fix for major accessibility issue with macOS 10.15.
OK for beta and m-r uplift.
Ryan, what do you think about ESR? We might be able to wait for 68.3 on this one.

Flags: needinfo?(ryanvm)
Attachment #9103670 - Flags: approval-mozilla-release?
Attachment #9103670 - Flags: approval-mozilla-release+
Attachment #9103670 - Flags: approval-mozilla-beta?
Attachment #9103670 - Flags: approval-mozilla-beta+

Let's make sure to have this on Beta for a week or so before uplifting to Release.

Let's wait for 68.3 given comment 28.

Flags: needinfo?(ryanvm)

Comment on attachment 9103670 [details]
Bug 1587962 - [10.15] "Use keyboard navigation" and "jump to spot" scrolling preferences do not work

Beta/Release Uplift Approval Request

  • User impact if declined:
  • Is this code covered by automated tests?: Yes
  • Has the fix been verified in Nightly?: Yes
  • Needs manual test from QE?: Yes
  • 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:
Attachment #9103670 - Flags: approval-mozilla-release+ → approval-mozilla-release?

Ryan pointed out we should wait to see how this does on beta. That means I'm going to set it aside for potential 70.0.2 and it won't make it into 70.1.

QA Whiteboard: [qa-triaged]

I have verified that this issue is no longer reproducible with the latest Firefox Beta (71.0b6 Build ID - 20191031113544) installed on Mac 10.15.1. Now, all the modal strings can be successfully focused via keyboard navigation. Also, I have navigated to a few websites and I can confirm that all the elements can be successfully accessed using keyboard navigation.

Flags: qe-verify+

Comment on attachment 9103670 [details]
Bug 1587962 - [10.15] "Use keyboard navigation" and "jump to spot" scrolling preferences do not work

OK for uplift to m-r, for a potential 70.0.2 release.

Attachment #9103670 - Flags: approval-mozilla-release? → approval-mozilla-release+

This should get a release note for 70.0.2, something like (FIXED) Keyboard navigation now works with macOS 10.15.

Comment on attachment 9103670 [details]
Bug 1587962 - [10.15] "Use keyboard navigation" and "jump to spot" scrolling preferences do not work

Setting this back to "?" until we are sure we have a 70.0.2 dot release in the works.

Attachment #9103670 - Flags: approval-mozilla-release+ → approval-mozilla-release?

Hey Liz, should this issue be in the release notes for v70? (maybe it's a bit late for that though...)

Flags: needinfo?(lhenry)

Yes, thanks, I'll note it as a known issue for 70, https://www.mozilla.org/en-US/firefox/70.0/releasenotes/ . It should show up within 15-20 minutes.

Flags: needinfo?(lhenry)

Comment on attachment 9103670 [details]
Bug 1587962 - [10.15] "Use keyboard navigation" and "jump to spot" scrolling preferences do not work

Accessibility/keyboard nav fix, OK for uplift for 68.3esr.

Attachment #9103670 - Flags: approval-mozilla-esr68? → approval-mozilla-esr68+
Flags: needinfo?(jteh)

With 2 weeks to go for the 71 release, another 70 dot release is unlikely.

Attachment #9103670 - Flags: approval-mozilla-release? → approval-mozilla-release-
Flags: qe-verify+
You need to log in before you can comment on or make changes to this bug.