On newer phones and up-to-date versions of Android, the system navigation bar is no longer there. Instead, you have Gesture Navigation that let's you swipe from the left/right of the screen to go back.
While it is still functional with the forward button (in the enabled state), losing the ability to long press on the back button to show the page history.
Users that upgrade to Android 10+
In addition to fixing the problem, we would also gain the ability to give users visual feedback when you go back enough to reach the end of the page history, similar to being at the top of the history navigation where the forward button is disabled.
@person808 may have a better idea on other options we could provide instead of my proposed solution.
Show back button in menu bar if the phone uses end-to-end gesture support
I suggest to always show the back button and not only for phones with enabled gestures navigation, for two reasons:
The current UX is definitely awkward for Android 10. I know @brampitoyo and I settled on the current implementation so we could land the feature faster. Maybe he can weigh in on this.
@person808 @jonalmeida Letâs keep thinking about this problem. My feeling is to agree with @cadeyrn: always showing the back button inside the main menu would benefit Android 10 users who arenât able to swipe-and-hold.
(Unless thereâs a way to detect swipe-and-hold somehow â I donât think there is).
This isnât the most discoverable option, but I wonder whether we can detect long-press-then-swipe, and use it as a shortcut to open the history stack?
In other words:
Hereâs an example using Googleâs own Play Store app:
Maybe we would be able to do that? But I would be very hesitant about adding a gesture on top of a web page right now since the only one we had like that (pull-to-refresh) still has bugs.
Maybe we would be able to do that? But I would be very hesitant about adding a gesture on top of a web page right now since the only one we had like that (pull-to-refresh) still has bugs.
The PTR issue is due to over-scroll detection. The long press handling may be different.
It would be interesting to know how other apps have added this gesture, if done manually. It seems to come free if you have a left drawer with a hamburger menu from a few minutes of testing that I did with apps that haven't been updated in a few years.
At the very least we would learn what issues we need to solve that block us from implementing it.
It seems to come free if you have a left drawer with a hamburger menu
Thatâs interesting.
When I tested this feature, it seemed like thereâs a clear-cut boundary between the two gestures.
This meant: if the swipe-back gesture is activated, thereâs no way to invoke the long-press on edge. Thus, we avoid the problem of two gestures stacking on top of each other.
The swipe-45Âș gesture, which also works to open the hamburger menu, was a different case. Android seems to mix it up with swipe-back quite a lot; and in the end, I wasnât able to reliably invoke swipe-45Âș.
What I worry about isnât the conflict. Itâs the discoverability. Had I not read articles that told me how to perform long-press on edge, I wouldnât know that this gesture exists.
TL;DR â @jonalmeidaâs comment 0 seems to be the most sensible move. Adding buttons is more reliable than adding gestures that are hard to discover and may overlap with other gestures in unpredictable ways (unless the user knows the trick).
TL;DR â @jonalmeidaâs comment 0 seems to be the most sensible move. Adding buttons is more reliable than adding gestures that are hard to discover and may overlap with other gestures in unpredictable ways (unless the user knows the trick).
@brampitoyo I would lean towards @cadeyrn 's recommendation which works on the initial ask. i.e. always show the back button instead of only showing based on the type of device support (gesture).
@jonalmeida This sounds sensible to me.
One issue that we have to figure out, is the correct ordering for the menu item navbar.
Letâs say that we have space for 5â6 different icons. Going from left to right:
Note the positioning of item 5. Itâs âstickyâ and always aligned to the side of the screen, so itâs important that we put a frequently used action here. Furthermore, if the main menu is double-tapped, youâll instantly select this item. This bolsters the case that we should put the Stop/Reload action here.
For now, hereâs my first take at the navbar ordering:
@brampitoyo I'd say that to not keep the Reload button after the forward button as users might click it accidentally while clicking the forward button (as thumb finger is large). keep the Reload button at the last position in the mock (https://github.com/mozilla-mobile/fenix/issues/12926#issuecomment-667818848) you gave. Pull to refresh gesture will handle the frequent tab Reload use case. Perhaps you may place the Share (or bookmark button for that matter) button in that place. As Chrome browser also places this button (Reload) in the last position as well; it's a correct place for that, users coming from other browsers also might expect expect that button to be in that same last place in Firefox as well.
@FrostedIce339 Thanks for the feedback. Yes, we should consider putting Stop/Reload as the last position.
You wrote a few good reasons:
Another reason may be because the buttons are grouped in a logical order:
Putting Save & Share next to Back & Forward seems well-thought, not random or arbitrary.
There really should be an option to have a back button displayed immediately in the menu bar, not in a submenu. It is the button I use most on my browser (yes, more often that the adress field) and any extra clicks before being able to use it will soon add up and feel inefficient. See browsers Brave and Vivaldi for good examples of how this could work and look.
Verified as fixed on 80.0.0-beta6 on several devices:
Samsung Galaxy Tab S6 (Android 9), Sony Xperia Z5 Premium (Android 7.1.1), Motorola Moto G6 (Android 8), OnePlus A3 (Android 6.0.1), Google Pixel 3a (Android 10), Nexus 5 (Android 5.1) and Huawei Mate 20 Lite (Android 10)
Most helpful comment
I suggest to always show the back button and not only for phones with enabled gestures navigation, for two reasons: