An exercise in UI/UX design

A forum for research and development of the user interface of FreeCAD
Forum rules
Be nice to others! Respect the FreeCAD code of conduct!
User avatar
doia
Posts: 251
Joined: Sat May 29, 2021 5:47 am
Location: Düsseldorf

Re: An exercise in UI/UX design

Post by doia »

Roy_043 wrote: Thu Apr 20, 2023 2:59 pm To understand the Draft_Edit command the user does have to read the manual.
Then IMV this behavior needs to be discussed and changed. The user does not simply RTFM, no one does. It is literally the last resort you use if you don't understand a program function. And mostly just after you asked on a forum or searched the net.
sliptonic wrote: Thu Apr 20, 2023 11:44 am We also need to add a rule about the use of the Esc key. I don't know what the rule should be. What should pressing the Esc key do? Within Draft, it usually means to end the task as if you pressed 'ok'. Within ShapeString, it means exit the task as though you pressed 'Cancel'
In almost all other software I use, the ESC key means Cancel, never OK -> that's the Enter key is for.
User avatar
Roy_043
Veteran
Posts: 8450
Joined: Thu Dec 27, 2018 12:28 pm

Re: An exercise in UI/UX design

Post by Roy_043 »

sliptonic wrote: Thu Apr 20, 2023 11:44 am We also need to add a rule about the use of the Esc key. I don't know what the rule should be. What should pressing the Esc key do? Within Draft, it usually means to end the task as if you pressed 'ok'
AFAIK there are 4 commands that have this: Draft_Wire, Draft_BSpline, Draft_CubicBezCurve and Draft_BezCurve. All create objects that can have multiple segments.
User avatar
Roy_043
Veteran
Posts: 8450
Joined: Thu Dec 27, 2018 12:28 pm

Re: An exercise in UI/UX design

Post by Roy_043 »

doia wrote: Thu Apr 20, 2023 3:30 pm Then IMV this behavior needs to be discussed and changed. The user does not simply RTM, no one does.
It is very unlikely the FreeCAD will ever be self-explanatory.
User avatar
sliptonic
Veteran
Posts: 3457
Joined: Tue Oct 25, 2011 10:46 pm
Location: Columbia, Missouri
Contact:

Re: An exercise in UI/UX design

Post by sliptonic »

Roy_043 wrote: Thu Apr 20, 2023 2:59 pm This is the task panel that belongs to the Draft_Edit command. For the mentioned objects reopening the original task panel is not necessarily logical. Imagine a Draft_Wire with dozens of points for example. To understand the Draft_Edit command the user does have to read the manual.
We can have a couple of different conversations at this point - and we need to have ALL of them.

First is the discussion about any particular task panel and whether it is well designed and implemented for its current functionality. I started this thread about ShapeString and there are about a dozen changes that could be quickly made to improve it. Change the order of inputs. Use correct widgets. Fix label alignment, etc. We could repeat that process for every panel and it would incrementally improve the user experience.

That makes every panel better but it doesn't make ALL the panels feel uniform. It doesn't normalize the user experience. For that, we need some documented guidelines. This is what the stylebook is about. So we can also continue the discussion about the stylebook and the UI guidelines. Example: What should be the standard behavior of the ESC key? Cancel or exit and apply?

Finally, we can also talk about the functionality that each task panel supports. Example: The existing wire edit task panel is designed only for creating a wire. As you point out, it isn't logical to use it to also edit. But it could be redesigned for that purpose. The panel could include a list of vertices that could be edited individually. That's a good goal but it will take longer to realize.

It's ok to make incremental improvements now while also aiming for better functionality in the future. In both cases, we need guidelines though.
User avatar
Roy_043
Veteran
Posts: 8450
Joined: Thu Dec 27, 2018 12:28 pm

Re: An exercise in UI/UX design

Post by Roy_043 »

sliptonic wrote: Thu Apr 20, 2023 4:08 pm standard behavior of the ESC key? Cancel or exit and apply?
Please study the 4 mentioned Draft command and also the Sketcher_CreatePolyline command. We may need to define a 3rd or even a 4th behavior.
User avatar
sliptonic
Veteran
Posts: 3457
Joined: Tue Oct 25, 2011 10:46 pm
Location: Columbia, Missouri
Contact:

Re: An exercise in UI/UX design

Post by sliptonic »

Roy_043 wrote: Thu Apr 20, 2023 4:32 pm
sliptonic wrote: Thu Apr 20, 2023 4:08 pm standard behavior of the ESC key? Cancel or exit and apply?
Please study the 4 mentioned Draft command and also the Sketcher_CreatePolyline command. We may need to define a 3rd or even a 4th behavior.
I don't understand your point. Is there a nuance of behavior I'm missing?

Draft
The four draft tools let you start drawing by clicking points and they update the window in realtime with the result.
Pressing the esc key is fairly consistent:

Draft_Wire: Exits the active tool and leaves new wire in place
Draft_BSpline: Exits the active tool and leaves new bspline in place
Draft_CubicBezCurve: Exits the active tool and leaves new bezcurve in place
Draft_BezCurve: Exits the active tool and leaves new bezcurve in place

With all four, you can double click the resulting object and open a task to edit the object. There's no panel immediately visible but one magically appears if you start dragging a point. Pressing escape exits the task and leaves any changes made intact.

Draft_Point: Esc isn't relevant during creation. But if you double-click the created point it opens the transform tool (not like the others). Pressing escape, exits the transform tool but leaves a task open. Pressing escape again does nothing and you have to click 'ok' to close the task. For me, double-clicking the point again causes a crash.

ShapeString doesn't update the window either during creation or edit. Even if you've configured the font, and height, set the point. Pressing the escape key is the same as pressing cancel. The transaction is aborted and any work done is lost. If you press 'ok' instead of escape, the shapestring is created. Double clicking it reopens the same dialog as creation. Pressing escape aborts the changes.

Draft behavior for editing objects and for the escape key isn't consistent with other workbenches. It isn't even consistent between tools in Draft.
I can't say that Draft behavior for any one tool is wrong because we don't have any agreed guidelines on what it should be.


Sketcher
Polyline: Exits the active tool and leaves the new polyline in place
Sketch: Exits the sketch and leaves it intact
Sketcher creation, edit, and escape is consistent throughout sketcher

Part Design
Tools like Pad show the result in real time. Pressing Esc cancels the transactions and leaves the document unchanged.


I don't mind if there are multiple behaviors that depend on context. I just want to know what the rules are that govern these design choices.
User avatar
Roy_043
Veteran
Posts: 8450
Joined: Thu Dec 27, 2018 12:28 pm

Re: An exercise in UI/UX design

Post by Roy_043 »

sliptonic wrote: Thu Apr 20, 2023 5:53 pm I don't mind if there are multiple behaviors that depend on context. I just want to know what the rules are that govern these design choices.
That is quite different from:

sliptonic wrote: Thu Apr 20, 2023 4:08 pm What should be the standard behavior of the ESC key? Cancel or exit and apply?
The latter suggests that only a single standard behavior should be allowed.
User avatar
Roy_043
Veteran
Posts: 8450
Joined: Thu Dec 27, 2018 12:28 pm

Re: An exercise in UI/UX design

Post by Roy_043 »

About Draft Esc consistency:
Looking at the Draft_Workbench#Drafting and the Draft_Workbench#Annotation tools the default Esc behavior is actually fairly consistent IMO. The four mentioned 'multi-segment' tools exit and leave what has been created, the other tools exit without creating an object or a style.

In some cases the tool can't do much else because at that point there is insufficient user input, but in the case of Draft_ShapeString, as already mentioned, and also Draft_Hatch and Draft_AnnotationStyleEditor Esc will also cancel valid input. Draft_Facebinder does not have a task panel.
User avatar
sliptonic
Veteran
Posts: 3457
Joined: Tue Oct 25, 2011 10:46 pm
Location: Columbia, Missouri
Contact:

Re: An exercise in UI/UX design

Post by sliptonic »

Roy_043 wrote: Thu Apr 20, 2023 9:07 pm
sliptonic wrote: Thu Apr 20, 2023 5:53 pm I don't mind if there are multiple behaviors that depend on context. I just want to know what the rules are that govern these design choices.
That is quite different from:

sliptonic wrote: Thu Apr 20, 2023 4:08 pm What should be the standard behavior of the ESC key? Cancel or exit and apply?
The latter suggests that only a single standard behavior should be allowed.
I didn't mean to imply that. I meant that the behavior should conform to a standard. It shouldn't be arbitrary. Right now, there doesn't appear to be any guidelines and there doesn't appear to be any desire to build them.
User avatar
chennes
Veteran
Posts: 3883
Joined: Fri Dec 23, 2016 3:38 pm
Location: Norman, OK, USA
Contact:

Re: An exercise in UI/UX design

Post by chennes »

sliptonic wrote: Fri Apr 21, 2023 2:55 am there doesn't appear to be any desire to build them.
I don't know about that...I think that of course there is a desire to have a standard! I'd argue that most developers are perfectly happy to be told "Esc" does X and "Enter" does Y. Then you don't have to make a choice, you just code it.
Chris Hennes
Pioneer Library System
GitHub profile, LinkedIn profile, chrishennes.com
Post Reply