mozilla / platform-tilt

Tracking issues which disadvantage Firefox relative to first-party browsers on major software platforms.
https://mozilla.github.io/platform-tilt
191 stars 0 forks source link

Setting and checking default browser on iOS #9

Open ncalexan opened 8 months ago

ncalexan commented 8 months ago

Allowing a third-party browser to programmatically set itself as the default is an important platform feature. Without this, even after the user has installed the browser of their choice they must navigate operating system settings and make the choice there as well. This adds friction and creates inertia to continue using Safari, despite the user's preference.

A well-established design pattern is to allow the third-party browser to invoke a system prompt which permits the user to easily confirm or reject the request to set the current browser as the default. This is an intuitive user experience that mirrors similar permissions models used in operating systems, browsers, and web applications. Android and macOS offer such a capability (on Android by requesting to hold the browser role and on macOS using LSSetDefaultHandlerForURLScheme/LSSetDefaultRoleHandlerForContentType).

Unfortunately, iOS does not support anything like this for third-party browsers: browsers are forced to “deep link” into the iOS settings UI, at which point the user must understand the UI and make the change on their own. For users that try to find the setting themselves, when using the search feature in the iOS Settings app, no results are returned for “Default browser app” (the text identifying the default browser elsewhere in the iOS Settings app) nor "Default" (which matches several other default applications in the iOS Settings app) -- see screenshots. iOS should instead provide a method for third-party browsers to programmatically request they be set as the default.

Furthermore, a third-party browser cannot even detect if it currently is the default browser on iOS. This prevents them from understanding how their browser is used and limits their ability to optimize the browser based on user intent. This also makes it impossible to identify the conditions in which it would be appropriate to ask the user if they’d like to change their default since the browser should only prompt in cases where it’s not currently the default. iOS should provide a method for third-party browsers to programmatically detect if they are the default browser, as exists on all other major platforms.

Screenshots

Screenshots from iOS 17.2.1 which depict that searching Settings for “Default browser app” and “Default” do not show results for changing the default browser.