claustromaniac / httpz

Fat-free hardenable opportunistic encryption for Firefox
https://addons.mozilla.org/firefox/addon/httpz/
GNU General Public License v3.0
62 stars 5 forks source link

UX: preferences: wording and order #46

Closed grahamperrin closed 4 years ago

grahamperrin commented 5 years ago

Hi

At a glance:

preferences at a glance

In full:

preferences

At a glance

One preference is open to misinterpretation:

☑ Automatic mode

Maybe better:

☑ Silent fallback

Order

FWIW I'd have the whitelist uppermost, followed by the ignored section.

Save button

I sort of wish for Save buttons at both top and bottom, to compensate for the freakiness of Mozilla's redesign –

image

– but doubling up is debatably freaky, so imagine the one Save button moving to the top of the page (to not require scrolling after e.g. editing the shortlist). It's a bit of an awkward idea, because it is nice to have Export, Import and Save buttons neatly aligned together but still, I wish for the Save button to be more accessible without scrolling/paging.

claustromaniac commented 5 years ago

I was planning to update the options page, but I have something different in mind. I'm going to use tabs and add an advanced section (#39). I meant to leave that for later but I changed my mind.

I agree that Automatic Mode can be misinterpreted, and is not very descriptive, but Silent fallback is not fully accurate either, because it is not necessarily silent (Firefox displays errors sometimes). How about Automatic Fallback? or I could flip the option and name it Manual Fallback

grahamperrin commented 4 years ago

Silent fallback is not fully accurate either, because it is not necessarily silent (Firefox displays errors sometimes).

I could over-think that :-) but my initial thought is that when fallback does not occur, I simply don't expect silence.

☑ Manual fallback

That's fine in theory but then, edge cases where the browser's integral error page appears (in lieu of the HTTPZ error page) and so, no (fallback) Proceed over HTTP button.

claustromaniac commented 4 years ago

I changed my mind. I went with Silent Fallback 😅

grahamperrin commented 4 years ago

No comment Silence

grahamperrin commented 4 years ago

Sanity checking

The whitelist field can be saved with this string on a single line:

abc 123

IIRC each site should be expressed as a separate line with neither a prefix (http:// or https://) nor a trailing /

Nits

Superfluous word (the presence or absence of a check, in the box, signifies whether the feature is enabled):

Enable Silent fallback ☑

Similarly:

Maximum wait time before fallback (seconds) [0]

– could become:

Maximum wait before fallback [0] seconds

Nice

From the new layout, and confirmation dialogues for clearance buttons, it's clearer that the clearance buttons need not be followed by a click on Save.

claustromaniac commented 4 years ago

Sanity checking

No need for that. Spaces, newline characters, commas, and semicolons are all parsed as boundaries. If you type abc 123 and save, you get two separate entries in the whitelist: abc and 123. Both can be valid hostnames as far as the extension knows, and the worst that can happen if they're not is that a few bytes of memory will be wasted. Nothing else.

Superfluous word (the presence or absence of a check, in the box, signifies whether the feature is enabled)

Superfluous indeed, but I added Enable in this version on purpose. The reason is I wanted to follow Firefox's design regarding checkbox labels: they all use the imperative voice. See about:preferences for examples.

Maximum wait before fallback [0] seconds

I tried to line up the controls on the right-hand side of the panel. I'm not going to add text there. I don't mind getting rid of the time though.

From the new layout, and confirmation dialogues for clearance buttons, it's clearer that the clearance buttons need not be followed by a click on Save.

That was part of the goal 😎

grahamperrin commented 4 years ago

Thanks! Interesting.

Still, I'm uneasy about the word Enable with a check box. It's like having On (alone) to label an on/off switch. So maybe:

Fallback to HTTP without warning ☑

Other suggestions

Move the fallback wait time section up a notch. Have it in second place, adjacent to the other fallback section.


This:

Ignore insecure sites…

– troubles me because the section is a bit like, remembering to ignore, and to truly ignore something is to cease remembering it.

Instead, if I understand correctly, maybe this:

Continue each fallback…

For the third radio button, maybe Indefinitely instead of Permanently.

Have an End now button within the section (instead of the Clear Ignore List button at the foot of the page; there is no visible list).


Whitelisting: a potentially simple section, although the ? hint could be more explicit.

Instead of:

Whitelisted sites are ignored unconditionally

– maybe this:

HTTPZ will never attempt to use HTTPS for listed sites.

– or:

Never attempt HTTPS for listed sites.

Have a Clear button within the section (instead of the Clear Whitelist button at the foot of the page).

PS honestly, the word Whitelist troubles me. (Over the years I've seen way too many mixed messages and misinterpretations with white, black and grey. Most memorable: Disconnect's overwhelming use of green (go) for features that were about blocking (black).)

Imagine coming to HTTPZ for the first time because you want to allow more security for your web browsing. Whitelisting implies allowance … then you must hover over the ? to learn that this particular list is about allowing less security. Then, imagine being new to a variety of extensions, each of which has its own whitelist and/or blacklist. It's mind-bending.

(I'm a bit dyslexic. Long story.)


Generally: avoid using the word ignore, if you can …

claustromaniac commented 4 years ago

Still, I'm uneasy about the word Enable with a check box.

Alright.

Edit: You should be grateful I didn't change it to...☑ Do not disable Silent Fallback

Move the fallback wait time section up a notch.

:+1:

to truly ignore something is to cease remembering it

I'll refrain from replying to that part, because we would likely end up discussing philosophy instead of language.

Settings need short names, so it is logical that they won't always reflect the extension's features accurately.

In the context of the extension, when I talk about ignoring, I talk about ignoring requests, and only in the sense of not changing them in any way. The extension does not ignore any request in the literal sense, but it only acts on (or acts upon) some of them. So, what I mean by ignore is actually: not doing anything to specific requests.

Continue each fallback…

That may be more accurate, but I'd argue its meaning is not intuitively clear. How about Remember insecure sites...? That may not be fully self-explanatory, but I think it would be less likely to confuse anyone.

For the third radio button, maybe Indefinitely instead of Permanently.

Agreed.

Have an End now button within the section (instead of the Clear Ignore List button at the foot of the page; there is no visible list).

Where exactly would you place the button?

Have a Clear button within the section (instead of the Clear Whitelist button at the foot of the page).

Where exactly would you place the button?

Sorry to ask, but I'm not particularly fond of designing GUIs. I thought the layout looked less cluttered like this.

PS honestly, the word Whitelist troubles me.

It's understandable. It has become sort of a wild-card term for developers, so having to remember all its different meanings sucks. The problem is I don't know how else to name the feature. I'll try to think up something else.

claustromaniac commented 4 years ago

As a replacement for whitelisted sites, I think this could work: excepted/excluded sites (as in excluded from the normal flow of upgrading and falling back if necessary). What do you think? It is more accurate and still almost just as short. I could use "Excluded sites" or just "Exclusions" in the options page, and then "Exclude site" or "Add to exclusions" in the popup.

claustromaniac commented 4 years ago

As for the clearance buttons, at some point I considered using a trash bin icon instead of text, and adding tooltips explaining what they do (displayed on hovering over the buttons themselves). I'm reconsidering that idea now, because arranging them would be easier that way, and they'd be more discrete.

Edit: actually, now that those actions have confirmation dialogs, tooltips wouldn't even be necessary

claustromaniac commented 4 years ago

Try 0.11.0b7. Let me know what you think.

grahamperrin commented 4 years ago

Edit: You should be grateful I didn't change it to...☑ Do not disable Silent Fallback

☑ La La La

Joking aside,

Let me know what you think.

Looks good to me! Thanks. Essentially you've gone from this:

2019-12-04 12:39:012019-12-04 12:39:25

– to this:

2019-12-04 12:40:45

– plus this, only if required:

2019-12-04 12:41:03

Let me know what you think.

The dark theme is daring. I quite like it. I secretly like to think that it breaks 'the rules', a little.

Generally, expect a proportion of users to be horrified by change. I'll take my share of the blame.

Just one more comment on wording …

grahamperrin commented 4 years ago

2019-12-04 12:46:45

thegearcalculator.appspot.com was redirected to HTTPS. If you click the button below, HTTPZ will add this site to the list of exclusions and will attempt to reload it over HTTP

Instead, maybe:

HTTPZ redirected http://thegearcalculator.appspot.com to HTTPS.

If the page appears wrong with HTTPS, you can attempt to reload the page over HTTP and exclude the site from future redirection:


Strictly speaking I want it to say

… you can attempt to load the page over HTTP …

load, not reload.

However it is, I reckon, subtly better to say reload because it's sort of closer to a hint that any entered form data will be lost without warning.

claustromaniac commented 4 years ago

Done.

0.11.0 is up :tada: Thank you @grahamperrin for all your help with testing and your suggestions. I'll be counting on you to keep sharing your nits in the future.