NewPipe icon indicating copy to clipboard operation
NewPipe copied to clipboard

Channel view: Tab Bar Unresponsive to Up/Down Swipes

Open GfEW opened this issue 1 year ago • 9 comments

Checklist

(fullfilled)
  • [X] I am able to reproduce the bug with the latest version given here: CLICK THIS LINK.
  • [X] I made sure that there are no existing issues - open or closed - which I could contribute my information to.
  • [X] I have read the FAQ and my problem isn't listed.
  • [X] I have taken the time to fill in all the required details. I understand that the bug report will be dismissed otherwise.
  • [X] This issue contains only one bug.
  • [X] I have read and understood the contribution guidelines.

Affected version

0.27.2 (also present in previous versions)

Steps to reproduce the bug

  1. On a small to medium size phone screen, open any channel in landscape mode
  2. Swipe up/down at various places and see what happens.

Expected behavior

The entire sliding screen contents (i. e. everything except notification bar and navigation bar, if any) should respond to swipes and slide up/down accordingly.

Actual behavior

If you happen to start the vertical swipe at the tab bar, the expected vertical sliding of screen contents does not happen.

Screenshots/Screen recordings

Screen recording of swipes performed at various places:

Screen recording of swipes performed at various places.

The grey overlays indicate areas that are unresponsive to vertical swipes. Whilst the top one is there for good reason (it doesn't slide up/down), there should be no such unresponsive spot in the middle of the lower part (which entirely does slide up/down): The area marked grey is unresponsive to vertical slides.

Logs

No response

Affected Android/Custom ROM version

Android 9 to 11 (no other versions tested)

Affected device model

diverse

Additional information

Since the red header at its full size uses a large portion of landscape screen estate, it often needs to be collapsed or re-expanded. The tab bar at the lower fringe of the header tends to feel like a natural "handle" for doing so.

It's a shame that's exactly the part that does not respond to vertical swipes at all, which easily leads to a high failure rate in swipe attempts. These swipes only get successful if repeated elsewhere.

The user should not need to pay attention to such peculiarities.

GfEW avatar Oct 01 '24 19:10 GfEW

Other apps have such tab bars too. Does swiping on them work for scrolling, or is this unique to Newpipe?

opusforlife2 avatar Oct 03 '24 15:10 opusforlife2

I can't remember having encountered any such tab bar inside a swipe-collapsible header (or drawer) in the 200+ other apps I'm familiar with.

Could you give an example of an app that I could check?

GfEW avatar Oct 03 '24 18:10 GfEW

It doesn't have to be exactly like Newpipe's setup. Just having a tab bar and being swipe-able there would do. I don't think tab bars would be swipe-able in any other app. It would make it too easy to swipe when the user intends to switch tabs.

opusforlife2 avatar Oct 07 '24 16:10 opusforlife2

The vast majority of tab bars I have in mind is either

  • stationary, or
  • only collapsible/expansible by means unrelated to the sliding animation (like in browsers going full screen). I guess that's to keep things simple, because if a tab bar slides in accord with a vertical swipe close by, that swipe is naturally perceived as "moving the tab bar", and it becomes disturbing if it fails to react.

Other than NewPipe, I've yet to find an exeption to this rule.

However, there's a related challenge in messengers if you want vertical swipes to scroll the messages list while also using horizontal swipes to answer (or forward/delete/younameit) the touched message.

In various widespread implementations, that challenge is accepted by reacting to both, vertical or horizontal swipes, each for its distinct meaning.

GfEW avatar Oct 08 '24 00:10 GfEW

In various widespread implementations, that challenge is accepted by reacting to both, vertical or horizontal swipes, each for its distinct meaning.

That is indeed the case. Personally, I would still prefer the current implementation:

  • There's plenty of valid space that accepts the swipe gesture.
  • There's zero chance of accidentally swiping vertically when intending to switch or swipe between tabs.
  • And learning not to swipe from the tab bar is a comparatively tiny effort in terms of getting used to the app.

opusforlife2 avatar Oct 10 '24 14:10 opusforlife2

we could make the tab bar respond to vertical swipes if it detects that it can't be scrolled horizontally. this makes the tab bar simple to scroll without making it unresponsive if all of it can be seen at once

sosasees avatar Oct 14 '24 07:10 sosasees

Good point. Browser scrolling on mobile also works like that. If you're zoomed into the page slightly and stuck to one edge, the browser automatically interprets your swipe gesture to be along its axis, while if you're in the middle, you have to be much more precise with your gestures.

opusforlife2 avatar Oct 21 '24 14:10 opusforlife2

i meant it more like "if all tabs are visible on‑screen at once, the app knows for sure that the user won't try to scroll them horizontally" but this is also a good way

sosasees avatar Oct 21 '24 16:10 sosasees

Thank you both for your comments.

@opusforlife2

learning not to swipe from the tab bar is a comparatively tiny effort

That statement may sound trivial to many, but its applicability varies across abilities and learning types. Some people have a hard time adapting to such peculiarities, or maintaining the unusual attention or accuracy effort continuously required to compensate, both of which may lead to a needlessly frustrating UX.

@sosasees

i meant it more like "if all tabs are visible on‑screen at once, the app knows for sure that the user won't try to scroll them horizontally" but this is also a good way

Whilst that conditional solution would constitute an improvement over the current situation in a number of cases, I don't think we need to focus on safeguards here all that much, for the following reasons:

  1. The two worst possible outcomes of any tab bar swipe - i. e. switching to another tab or toggling header expansion status unintentionally - are fully reversible and in fact, so far from "dangerous" it makes no sense to subjugate everything else to absolutely avoiding them.

  2. You'd have to be off the desired direction by no less than 45° to end up triggering the other.

  3. The fact that swipe input directions can freely coexist is also demonstrated in this very app already, namely by the tab body (i. e. comments/related/description). The tab body accepts both, horizontal swipes (to switch tab) and vertical swipes (to collapse/expand header(*)), just fine.

Re 3.: Couldn't the tab bar basically use the same logic?

(*) Note:On lengthy landscape screens, the tab body doesn't really attract vertical swipes, as the fully expanded header reduces it to a thin line that is furthermore populated with possibly interfering icons. This makes the lower end of the header - and most prominently, the tab bar - even more appealing as the natural entry point to pull it up.

Edit:Cleaned up a bit.

GfEW avatar Oct 23 '24 02:10 GfEW