snikket-im / snikket-android

Snikket Android client
https://snikket.org/app/
GNU General Public License v3.0
97 stars 18 forks source link

Add "cancel" button to initial contact permission explanation dialogue #24

Open horazont opened 2 years ago

horazont commented 2 years ago

The explanatory dialogue which is shown before the read contacts permission is requested can not be cancelled -- you can only move on to the actual permission request.

The android guide on how to request permissions suggests that users should always be able to cancel even the educational flows (emphasis mine):

Don't block the user. Always provide the option to cancel an educational UI flow related to permissions.

In addition, there is at least on example where a user thought they are being coerced into something (https://social.tchncs.de/@textbook/107580879279125705; German).

Menelmacar commented 2 years ago

Most other apps I know don't add a button, but rephrase it a bit. Like: Snikket will ask for permission to.... You can savely deny this...

Menelmacar commented 2 years ago

The concrete example only would need the "konjuktiv"

horazont commented 2 years ago

I don't disagree that the text can be improved, however, I think that adding a button is more clear in signalling intent to anyone not reading the text really closely (and who might already have a negative preconception about the system).

mwild1 commented 2 years ago

I also don't know how much languages plays a part in this. I've always considered the English text to read clearly that it's not a permission request. This ought to be something that translators are careful to preserve, but I can't judge whether that's the case.

I also suspect nobody has complained about this before because the most users are in two groups: 1) users who don't read, but just dismiss any dialog with a semi-random choice, and 2) users who read carefully before tapping any button. This second group probably usually infer that the explanation dialog is not the permission request. The first group don't care either way.

iNPUTmice commented 2 years ago

Quick note: From a pure technical perspective we currently want the user to move on to the actual permission dialog because the permission dialog has the 'never ask again' button. (which would stop the explanation dialog from happening).

A very naive cancel operation on the explainer dialog would cause the explainer to show up again and again. A slightly less naive implementation would store it's own 'never ask again' logic. But that would lead to two sources of truth (or two layers rather) of 'never ask again'

That's BTW how I always understood the android design guidelines

After the user acknowledges the rationale, continue to the next step.

no mention of cancel