kiwibrowser / src.next

Source-code for Kiwi Next, a Kiwi Browser auto-rebased with latest Chromium
BSD 3-Clause "New" or "Revised" License
2.24k stars 285 forks source link

Remove pull-to-refresh #697

Open HT-7 opened 2 years ago

HT-7 commented 2 years ago

Imagine UI design so bad that the same finger movement has two different outcomes.

Don't just "make it optional". Completely eliminate pull-to-refresh. Pull-to-refresh is among the greatest failures in the history of user interface design. It's time we bury it.

The act of pulling down is supposed to do exactly one thing: scrolling up. With the existence of pull-to-refresh, the result of pulling down becomes ambiguous and inconsistent. Pulling down either scrolls up or refreshes. Avoiding the latter result, a refresh, takes constant effort.


Pull-to-refresh was originally introduced to mobile Chrome/Chromium in 2015, but was optional and the majority of users just flipped the switch, so everyone was happy.

But what happens to evil when not stopped at an early stage? It grows like a tumor.

In mid-2019, with Chrome/Chromium version 75, Google unfortunately removed the #disable-pull-to-refresh-effect flag from chrome://flags (article), and no explanation was provided. This also affected derivatives, including Kiwi browser. The best solution provided in the Google help forum was to beg to Google through the feedback forms to reinstate that option, which unsurprisingly has proven futile.

I would usually suggest "add an option to turn pull-to-refresh off" (like #550). However, because refreshing a page takes just one tap-and-release or two taps on the three-dot menu icons (because the refresh icon appears at the same location once the menu is opened), pull-to-refresh is practically useless.

Mobile app developers choose to implement the pull-to-refresh gimmick just in order to comply with a design trend. It seems like a desperate attempt to appear "modern" and "fancy", not because of the actual usefulness of the gesture.

Not only is it useless, but it also is annoying and causes accidental refreshes. I can't think of a reason why one would enable pull-to-refresh. It's a web browser, not a social media app like Instagram or Twitter (whose web app, by the way, has an internal pull-to-refresh implementation on the notification page anyway). On the web, scrolling up is far more common than refreshing a page, hence making pull-to-refresh an obstruction rather than a helpful shortcut.

Without pull-to-refresh, the user has the freedom to scroll up quickly without risking inadvertently reloading the page, which both adds a delay of several seconds and consumes the mobile data plan. If media was playing while an unwanted pull-to-refresh occurs, the user needs to seek for the last playing position, which could take upwards of a minute if the last position is unknown.

Imagine a desktop/laptop web browser reloading because you scroll against the top. Imagine you reach the top of the page but you have not stopped turning the scroll wheel yet, and then a white circle with a blue refresh icon appears at the center top of the window and the page, and then you have to wait for the page to finish loading, and you also need to seek the last playing position of a video or audio track. Wouldn't that be ridiculous?

We have accepted pull-to-refresh as a normal part of modern mobile apps without taking a moment to question its usefulness.

What does the user intend to do more frequently? Scrolling up or refreshing? Scrolling up is a fundamental part of interaction with touch devices, whereas refreshing is done far less often, so it almost always is an unwanted side effect of pulling down.

It takes effort and cognitive strain to avoid triggering unwanted pull-to-refreshes. The user can't browse relaxed but has to "walk on eggshells".

Therefore, I propose getting rid of pull-to-reload entirely.

Ibuprophen commented 2 years ago

I had previously asked about this in https://github.com/kiwibrowser/src.next/issues/550 that I still support the option to disable.

Just a quick heads-up my friend. 👍

~Ibuprophen

ghost commented 2 years ago

Disagree. I have browsers that don't have pull to refresh, they are annoying. Not to mention kiwi has little room for icons in the main bar.

An portion to disable is reasonable. Getting rid of it is not reasonable, IMO.

Ibuprophen commented 2 years ago

I agree with you @Charles7z .

I believe that a feature (like this) that's useful to many should remain, but adding an option to disable would be something that can be useful to many others who aren't very keen to this type of feature.

~Ibuprophen

ghost commented 1 year ago

Disagree. I have browsers that don't have pull to refresh, they are annoying. Not to mention kiwi has little room for icons in the main bar.

Do you care why they are annoying?

An portion to disable is reasonable. Getting rid of it is not reasonable, IMO.

There are some people who accidentally refresh some critical pages like banking site, single session logouts, etc. It's actually a real problem faced by many users. Physical refresh button would be great. But a gesture that does that from top pf the page is almost a nightmare for some.

ghost commented 1 year ago

There are some people who accidentally refresh some critical pages like banking site, single session logouts, etc. It's actually a real problem faced by many users. Physical refresh button would be great. But a gesture that does that from top pf the page is almost a nightmare for some.

There's already a simple way to refresh a page. Tap URL, default settings put cursor in bar, site URL with share, copy, and edit icons appear — just tap the URL and it'll refresh the page. 🤷‍♂️ isn't that rather easy?

ghost commented 1 year ago

There are some people who accidentally refresh some critical pages like banking site, single session logouts, etc. It's actually a real problem faced by many users. Physical refresh button would be great. But a gesture that does that from top pf the page is almost a nightmare for some.

There's already a simple way to refresh a page. Tap URL, default settings put cursor in bar, site URL with share, copy, and edit icons appear — just tap the URL and it'll refresh the page. 🤷‍♂️ isn't that rather easy?

Yes that one, & another way is to just use refresh button directly from top right menu pop-up. My problem ain't refresh button. Problem is refresh gesture, which acts as an unconditional barricade to the user's unintentional scrolling from top page. There's no option to disable that for those who don't want it. Solution is to give us that control.