microsoft / PowerToys

Windows system utilities to maximize productivity
MIT License
106.98k stars 6.31k forks source link

Quick Accent activation method is dreadful (for first timers and power users) #28723

Open MarioRicalde opened 9 months ago

MarioRicalde commented 9 months ago

Description of the new feature / enhancement

The two existing activation keys are:

  1. Key + Space within X delay.
  2. Key + Left/Right Arrow within X delay.

The problems:

Key + Space within X delay:

  1. If the delay is too short, there's a chance you can trigger accent causing the following output: Expected: hello my name is mario Got: hellómy naméiímario
  2. If the delay is too long, because your typing speeds and/or method varies, then you end up with a huge disruption to the flow when writing. Oddly timed pauses, here and there, trying to get the accent to work.

Key + Left/Right Arrow within X delay:

  1. If the trigger is too short you might not reach the key.
  2. The key forces you to move your hand around (depending on the keyboard).

My conclusions:

The current implementation:

  1. Places too much burden on the user.
  2. When things go wrong, it's very disruptive. And due to the human element quite "random", almost "buggy" at times. (Note the many issues mentioning variations of this with other words, sometimes reported as bugs)
  3. When things go right, you have to wait, you have to rush, or that's what it feels anyway. Should I hold the key a bit longer? Am I going too fast? Too slow? Again, burdening the user.

An ideal implementation would:

  1. Not get in the way of the user typing. You shouldn't be surprised when you type the same phrase you have typed all your life, just to find out you have a tendency to hold spacebar a bit longer, or an equivalent.
  2. Not require the user to move the hand away from what they are doing in the given moment (typing, not editing)
  3. Be able to use it multiple times in a single sentence and word, without disrupting the writing speeds (mid word for example).

Scenario when this would be used?

This scenario applies to every single user using this feature. Bringing benefits to all, from first timers to power users.

For first timers a better implementation would prove to be a less frustrating experience. Allowing the user to adopt it without the burden it currently has.

Supporting information

No response

subtra3t commented 9 months ago

I think instead of the arrow keys or the space bar the default key for activation should be the left alt/option key. This would also be consistent with the keybind some other accent typing apps use, and avoids the problems that are commonly faced when using the arrow keys or the space bar as the activation key, that the creator of this issue has already elaborated on.

This key is easily reachable by users when they want to use the quick accent feature, unlike the right/left arrow keys which require one to either switch hands or move their hand to the other side of the keyboard. Very inconvenient.

Unlike the space bar, the alt/option key is also not very commonly used, preventing users from accidentally typing in accented characters when they just meant to use the space bar. Users of the other accent typing apps that I already talked about could also more easily adjust to using Microsoft PowerToys if it were using the keybind they're already used to.

One last thing, and slightly unrelated, but the option to customize the activation keybind should be made available to the user. The same 2 options cannot suit everybody's needs

PeterBrodersen commented 9 months ago

Another possibility is simply to hold the key down as one would do on a smartphone or macOS.

The current convention of repeating a letter when holding a key down has its origin all the way back to electronic typewriters. We have copy/paste and several other features today. There is no reason that holding down a key should repeat a letter anymore.

subtra3t commented 9 months ago

PeterBrodersen

What about video games though? One can't practically blacklist all video games from Quick Accent before playing them, but without blacklisting them the quick accent window at the top would appear randomly while playing video games. It is common for many video games to require the player to hold down many keys at once, some of which may be accent-able characters like e or i.

MarioRicalde commented 9 months ago

I am not entirely sure about what the proper solution is just yet as I have not put a lot of thought into it; however, I have put a lot of thought about what shouldn't happen with the solution:

MarioRicalde commented 9 months ago

I think instead of the arrow keys or the space bar the default key for activation should be the left alt/option key. This would also be consistent with the keybind some other accent typing apps use, and avoids the problems that are commonly faced when using the arrow keys or the space bar as the activation key, that the creator of this issue has already elaborated on.

This key is easily reachable by users when they want to use the quick accent feature, unlike the right/left arrow keys which require one to either switch hands or move their hand to the other side of the keyboard. Very inconvenient.

Unlike the space bar, the alt/option key is also not very commonly used, preventing users from accidentally typing in accented characters when they just meant to use the space bar. Users of the other accent typing apps that I already talked about could also more easily adjust to using Microsoft PowerToys if it were using the keybind they're already used to.

One last thing, and slightly unrelated, but the option to customize the activation keybind should be made available to the user. The same 2 options cannot suit everybody's needs

I believe that one of the reasons why alt + letter is not used is because it would collide with "native functionality" for example, notepad Alt + letter; however, I do agree that this would be the ideal solution as it would allow for interoperability for the user.

image

subtra3t commented 9 months ago

I believe that one of the reasons why alt + letter is not used is because it would collide with "native functionality"

Ah, that appears to be a major flaw with my suggestion. I think that the best way to resolve it would be to instead use the right alt key. As far as I know, the file-edit-format-view-help toolbar isn't triggered when using the right alt key. I just tried it out with Notepad, Notepad++ (scintilla), and Anki (Qt) and the right alt key does not trigger that particular menu in those apps.

I don't know if Apple keyboards have two option keys though. And some non-tech savvy users may get confused and try using the left alt key instead, and they may get frustrated with it. I know PowerToys is advertised to power users but I think a lot of its features would help a lot of regular Windows users who may not be very tech savvy, and features should be designed while also keeping them in mind.

bartcorremans commented 9 months ago

PeterBrodersen

What about video games though? One can't practically blacklist all video games from Quick Accent before playing them, but without blacklisting them the quick accent window at the top would appear randomly while playing video games. It is common for many video games to require the player to hold down many keys at once, some of which may be accent-able characters like e or i.

This is already an issue in video games with the current implementation. Blacklisting them automatically as suggested in #27643 might offer a solution.

Another possibility is simply to hold the key down as one would do on a smartphone or macOS.

The current convention of repeating a letter when holding a key down has its origin all the way back to electronic typewriters. We have copy/paste and several other features today. There is no reason that holding down a key should repeat a letter anymore.

I'd personally love to see this, at least as an option. I miss this feature a lot from macOS and I was hoping Quick Accent could provide a similar experience.

MarioRicalde commented 9 months ago

My only issue with the hold key to output is that if it's released as the default it has some of the same issues as the original, where failing timings become an exercise in a loop of: Waited too long -> Didn't wait enough -> Backspace. Too much burden on the user, prone to surprises.

As for interesting ideas that could work based on what has been mentioned in this thread:

  1. Providing the user with the option to use ALT + ( LEFT, RIGHT or EITHER ) to enter the accent mode, to let the user define what key they want to "sacrifice" and use for accents.
  2. The mechanism works as follows:

image

Something like that would allow for:

  1. Type as fast or slow as you want, no delays: Right Alt + e <released> is always the first item in accent list (or most used depending on configuration).
  2. Find a specific accent without wait, just dance: Right Alt + e + e + e is always the third accent in list.
  3. Allows back and forth navigation of the accent list with repetitions.
  4. Allows for existing functionality to exist, doesn't happen often in my language, but allowing users to repeat the key, like: quéééééééééééééééééééééééééé
  5. Let the user keep one Alt intact, letting the user define their accessibility needs. Can't be bothered to blacklist things? Use Right Alt, and have that awareness. Added bonus is that you now can use accents in online games.

Hope this helps guide the discussion and implementation one day.

ghost commented 6 months ago

@MarioRicalde

See my lengthy blogpost about this issue and my provided solution.