Bug 143249 - UI: Improve handling of configuring table borders in table properties dialog (to make it work for multiple workflows)
Summary: UI: Improve handling of configuring table borders in table properties dialog ...
Status: NEW
Alias: None
Product: LibreOffice
Classification: Unclassified
Component: UI (show other bugs)
Version:
(earliest affected)
Inherited From OOo
Hardware: All All
: medium enhancement
Assignee: Not Assigned
URL:
Whiteboard:
Keywords: needsUXEval
: 100518 101459 106044 107675 139138 139139 139837 139838 143248 143250 143251 143252 (view as bug list)
Depends on:
Blocks: Table-Borders
  Show dependency treegraph
 
Reported: 2021-07-08 08:01 UTC by Telesto
Modified: 2021-10-05 09:41 UTC (History)
8 users (show)

See Also:
Crash report or crash signature:


Attachments
Screenshot Word (9.22 KB, image/jpeg)
2021-07-08 08:01 UTC, Telesto
Details
Mockup (45.78 KB, image/png)
2021-07-15 15:11 UTC, Heiko Tietze
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Telesto 2021-07-08 08:01:00 UTC Comment hidden (obsolete)
Comment 1 Telesto 2021-07-08 08:01:17 UTC
Created attachment 173440 [details]
Screenshot Word
Comment 2 Heiko Tietze 2021-07-09 07:49:08 UTC
Sure, this would be a solution. And it has the advantage to be a bit more a11y-friendly. But better keep all aspects of a redesign together in one ticket.
Comment 3 Telesto 2021-07-09 08:40:18 UTC
(In reply to Heiko Tietze from comment #2)
> Sure, this would be a solution. And it has the advantage to be a bit more
> a11y-friendly. But better keep all aspects of a redesign together in one
> ticket.

No objection to a single ticket. The problem is more my hesitation to write it down in a way people don't get overwhelmed or confused. 

The logic of the dialog is already that confusing (for me), that the attempt to write it down (in a single report) becomes 'as confusing' as the incidents experienced .

And me lacking the right vocabulary to be very precise about what the problem is, how and when it occurs (and cases where it does function) doesn't help.
Comment 4 Heiko Tietze 2021-07-09 09:09:43 UTC
Pick one generic and make all other a duplicate of this one. Let me and the design people handle the rest.
Comment 5 Telesto 2021-07-09 18:11:13 UTC
*** Bug 143248 has been marked as a duplicate of this bug. ***
Comment 6 Telesto 2021-07-09 18:11:17 UTC
*** Bug 143250 has been marked as a duplicate of this bug. ***
Comment 7 Telesto 2021-07-09 18:11:21 UTC
*** Bug 143251 has been marked as a duplicate of this bug. ***
Comment 8 Telesto 2021-07-09 18:19:49 UTC
*** Bug 107675 has been marked as a duplicate of this bug. ***
Comment 9 Telesto 2021-07-09 18:20:13 UTC
*** Bug 106044 has been marked as a duplicate of this bug. ***
Comment 10 Telesto 2021-07-09 18:22:56 UTC
*** Bug 143252 has been marked as a duplicate of this bug. ***
Comment 11 Telesto 2021-07-09 18:23:28 UTC
*** Bug 139838 has been marked as a duplicate of this bug. ***
Comment 12 Telesto 2021-07-09 18:23:52 UTC
*** Bug 139837 has been marked as a duplicate of this bug. ***
Comment 13 Cor Nouws 2021-07-13 14:57:23 UTC
(In reply to Telesto from comment #1)
> Created attachment 173440 [details]
> Screenshot Word
If that severs all scenario's currently covered by LibreOffice: looks good :)
Comment 14 Regina Henschel 2021-07-13 16:28:10 UTC
The UI needs to allow for example:
Set left border to red, 4pt, dotted
and right border to green, 4pt, dotted
and top border to no border,
and bottom border to black, 3pt, double.

I do not see, how that will be possible with buttons.
Comment 15 Telesto 2021-07-13 17:35:19 UTC
This is kind of recycled global redesign/ improve bug table borders bug. 

So comment 1 is only a minor aspect (original report here).. Comment 14 one of the 'bigger' issues I personally perceive being present.

Heiko preferred single report. The bug report as such isn't quite useful to distill the issues (and the buttons of comment 1 don't fix everything). 

I leave it up to Heiko go give a summary of the possible issues with the workflow. And which ones can be addressed and which (comment 4) can't because of different workflows..

I think number of border formatting cases should be defined. (Workflows). 

Regarding modification of table borders, row borders, borders of selection of cells, single cell. And differ between changing existing borders, or starting from scratch. Modifying existing things is also quite a hassle.
Comment 16 Heiko Tietze 2021-07-15 15:11:47 UTC
Created attachment 173608 [details]
Mockup

Requirements are simple:

   + Benjamin wants to show a grid on the table.
   + Eve wants to configure the border style using potentially different 
     attributes per side.
   + Adrian wants to install LibreOffice for visually disabled people too.

Not yet implemented:

   + Eve wants to store a configuration and apply in other documents.

The mockup takes the known design principle with a list of presets at left, the attributes in the middle, and a preview right-hand.
The line style Position is a multi-selection toggle button, one selects all the border lines that should be modified. In contrast to the current configure and apply (on click at the preview) this workflow would apply the modifications immediately. Meaning if some positions are selected (toggle button active) and the vertical left line is added now, it will become blue. To keep the left line's color (and use it also at right) one has to uncheck both horizontal first. If none is selected the attributes are taken from the selection.

In the first iteration, the alternative approach was to apply line attributes only individually via dropdown. This idea was rejected as regression to the current solution with multiple selection.

Previously it was possible to click repeatedly on the preview and disable a border line. This is replaced in the mockup with a checkbox. The preview is not clickable.

For the padding a dropdown allows to set the distance for all sides (currently done via "synchronously") or individually for each side. Thus, the dropdown has 5 items.

The mockup is done with Penpot, publicly available at https://design.penpot.app/#/workspace/35358890-e54f-11eb-b623-4c4b7a420f0b/4f34a020-e552-11eb-b623-4c4b7a420f0b?page-id=4f34a021-e552-11eb-b623-4c4b7a420f0b
Comment 17 Regina Henschel 2021-07-15 21:08:42 UTC
The current dialog has the presets "Set Outer Border only" (which removes the inner lines if any) and "Set Outer Border Without Changing inner Border". The mockup has only the preset "Frame".
Comment 18 Regina Henschel 2021-07-15 21:24:40 UTC
The mockup has no way to change the inner lines only.

Currently you can set all four padding values at the same time and you can see the current values of all four paddings at the same time. The use of a drop down as in the mockup would be a regression.

The term in the shadow style is "Distance" not "Width".
Comment 19 Telesto 2021-07-15 21:37:08 UTC
(In reply to Heiko Tietze from comment #16)
The design is interesting; refreshing: positive surprised. 

However... My core concern is the workflow. The task oriented view  (you may add persona to it. So Benjamin has mental idea of a certain formatting, how can he do that).

Simply putting some cases forward:

Case A: 
Say you have a 1x2x table. You intend to make the left 'left and right' border red. And Top bottom border dashed. And increase the border width of the middle.

How many steps are required to do this? And is there an order in which you have to handle it?

Case B: 
You have pre-existing (border)formatted table. Say the formatted table you created above. You want to change the line style of the left/right border (without changing the color). Is it possible to do? How many clicks are needed?

Case C: 
You want to get quick overview of the border settings of the existing borders.. How do I do that? Difference in border thickness between 0,05pt 0,15pt are sometimes hard to differentiate on screen (not even starting about visually disabled people)

Case D
Take again the table of case A, now I want the change the line width of those borders at once.. without touching the other formatting (color/dash) of the outer border. And excluding the inner border. Is it possible to do so?

For the record: My ancient MS word struggles on these tasks too :-).

My initial impression (or misreading) is that the mockup has less capability's compared to the current, click at the preview thingy. The current concept is not that bad, my core issue with it is the implementation. There are annoying quirks and particularity's. Like the preview being to small, evilly sensitive. lacking outside buttons (to avoid inside clicking). 

And also lacking certain functionality.
*It's lacking an option to select multiple borders (manually and/or by present). So you can change formatting of multiple borders at once. So you can change the border width of all borders while retaining the dashed look of some borders it the selection.
* Being able to select a single border and see the current formatting in the edit fields.

It's quite possible I odd table design capability's :-). I'm running into issues with MS Word too. And modern versions discourages manual formatting (fiddling with formatting).. likely for a reason.

Different workflow should be fit into a design which is workable for all
Comment 20 Telesto 2021-07-16 07:01:04 UTC
Thinking about this a bit more.. one of my complains the current triple state of the border tool (where they sequence of clicking being inconsistent in my perception) A example: The first clicked (present) border will be 'selected' if I change some of the formatting.. and click a different border the change gets applied)

So, I'm inclined to get rid of triple state. However really objecting to be able to click into border picker tool as such.

As I don't desire create a mock-up from scratch if there is some design already having the element.. So i'm using attachment 173608 [details] as reference (but not following MS way either)

The idea:
* Borders can only be toggled on/off by de borders presented around the border picker (see screenshot). See last bullet point why this maybe isn't needed at all
* You can click in the border picker itself (as currently), but only for selecting borders (not for toggling the on off.. Those are the buttons on the outside.
* You might be able to drag drop borders to other border area (technical possible?). So say have pre-existing dashed border at the left, and want the same thing at the right. You drag the left border to the right, and this the same border gets applied there too (with may CTRL+Drag for not copying but moving the border there). 
* Border tool is capable to select multiple borders with CTRL+CLICK so you can select multiple borders at once (and manipulate). With keeping the unique aspects
* If you select a single border, you will see the current settings of that border (and able to modify)
* If multiple borders are selected with different formatting.. at button is present to reset clear 'DF' of the borders. Which means or disabled border/or default border setting (undecided)
* Assuming a selecting inside the 'border picker'. It's possible to de-select all borders.. So you can modify the 'border settings' and press toggle on a border (to apply the style only for the new border). If there is present border a toggle off/on effect replaces the current formatting (different workflow, same effect)
* There are pre-set present for selecting border area's
* An alternative way to activate borders (by not clicking on the toggle around), is to select disabled borders, and simply start formatting (changing line style for none to enabled; similar as by textbox or other drawing objects). [So it might not even be needed to have on/off toggle buttons around the preview]
Comment 21 Heiko Tietze 2021-07-16 09:21:31 UTC
(In reply to Regina Henschel from comment #18)
> The mockup has no way to change the inner lines only.

You have to pick the right item from Line Style > Position (the inner line options are missing as we don't have icons for it yet).

(In reply to Regina Henschel from comment #17)
> The mockup has only the preset "Frame".

These presets are not a selection but a full configuration with all attributes for all borders.

(In reply to Telesto from comment #19)
> My initial impression (or misreading) is that the mockup has less
> capability's compared to the current, click at the preview thingy.

Yes and no. Thing is that we mix selection and application. Right now you define the line style first and apply this to the positions. That can be one or many. And I guess this third state was introduced as kind of undo.

Even with my proposal that turns the workflow around into select first and apply per setting the attributes, we run into trouble with multi-selection. Consider one line is blue and the other red. What I wrote to explain the behavior is hard to understand for users. And now we have to balance the demand for applying an option to a variable set of positions vs. simplicity/clarity of interactions.
Comment 22 Telesto 2021-07-17 05:03:46 UTC
(In reply to Heiko Tietze from comment #21)
> 1. Thing is that we mix selection and application. 

Yes, horribly


> 2. Right now you define the line style first and apply this to the positions.
Well this is my view not totally true (mostly it is though). 

The case you're describing is a table with starting with border NONE, I think

Insert 1x1 table (Default table style). Go to border tab. Picker a border color.. This is instantly applied to all borders.. There is no distinction to defining position and application. Which is surely very efficient if you want to that, but you have to be really careful if you don't want that to happen

---
There is also the case where you can select first, and apply next. 
Insert 1x1 table (Default table style). Single click one of the existing borders (you're know in selected state). You can now edit the properties of the single border. So first 'select' next apply. However this only works for a single border.. If click on the next border (assuming a default table style), you don't start with 'selected state', but in reapply border with this setting mode. If you have a table with border none

---

Something totally different topic. Say you have a workflow defining borders, next formatting. Step A defining borders, you want to have by clicking inside the border picker tool (say left and right border), step 2 apply a formatting to all of them at once.

The left/right isn't possible if you do this way. You have to define the border formatting first an next click/left right.

However the same workflow does exist in other cases. If click on a template alignment style this exactly what's happening. (A) Defining borders first (B) applying border formatting. Which kind of top down workflow. (where in other instances it's more working from bottom (defining borders) to top (selecting where to be applied)


--
Something else I want to mention. No clue if this is handled in the current mock-up Simply to mention. 1x1 table (default table style). I want the right border red and the right green and the other borders disabled.

I can start with: (A) defining red border first. The confusing part here.. All borders become red (which you don't intend to do, really distracting). You can press the Present, set no borders (which fixes that). Or you pressed Present, set no borders first (with the result you can't see the formatting being applied, become borders are disabled) 

Next step you click the left border.. Fine. So you go the next step, right border green. So you start pick the green color the the color picker. And you notice.. green being applied to the left border (which want to be red). Argh.. wrong workflow. So you revert back to red. You click the left border (which becomes red, but you didn't want it be red at all, which is distracting, because have green in mind, and seeing red (literally an sometimes also figuratively). And you change it to green. 

Next you re-consider.. you want left border being blue. You change border color to blue (argh.. no I not the right). So revert back to green. You click the red border again.. Which becomes green (whereas where mentally mapping, select the 'red border' But well red border has become green. Next you pick blue (ah.. that's what I intended).

---
Another question.. Are there also interactive mockups. Is hard to distill the workflow from a dialog still. I'm not having much problems with the current visual design. I'm having operational issues. So issue with interacting with the element in the dialog, to get the result I desire without much frustration.

Current setup is build around applying the same to multiple borders. Because those borders are active, or set by line arrangement button. And you can easily change a single border formatting.

Making inner cross blue and other borders red is more of an exercise. You can partly rely on table line arrangement button (to select all outer borders for example). To prevent to click every border one by one. Next you have to click a inner border (you can't activate both borders first, no you have to do first select the horizontal (or vertical) border, next set color from red to blue and next click the vertical border (or horizontal). Cases where I mostly activate both borders, realize that blue only applied to a single border, and having to click on the inner border again. Where I obviously click little to much in the corner, and applying the inner blue again to the outer red border. And there is no CTRL+Z so you have to again select the (say left) other border and set it back to red.

But well if you used some specific color red (without much alertness, because needed 'some' red and that one looked fine), and you have to reapplied, you might pick the WRONG red (next want to see what picked on the other border).. But well that's not possible, so you start reformatting again. You can't use line arrangement button to select all outer borders again, because the inner borders will be disabled by that action. (argh)

Sometimes I desire the UX persona Telesto being added to the list UX persona's :-).
Comment 23 Telesto 2021-07-18 11:07:44 UTC
Out of curiosity.. are there also tools to handle the interactional aspect of mockup. The static - layout mockup - is kind of lacking the way people will interact with the dialog. Or the way UX seeing the interaction process going. 

The design mock-up obviously giving hints, but well this also matter of experience.. Which is the reason for me 'mocking' (posting bugs)on the current design. Not having tremendous trouble with with the position of the element of options available. Not saying it could be done differently. 

However my major concern is get certain things done in efficient manner. Without really counter intuitive ways of getting things done. Or having the follow pretty narrow sequence.. and if you make a mistake, you have to start at A again (undo a single step)
Comment 24 Heiko Tietze 2021-07-19 08:09:11 UTC
(In reply to Telesto from comment #23)
> Out of curiosity.. are there also tools to handle the interactional aspect
> of mockup.

There are tools that allow to expand a dropdown on click, eg. Axure. But this can also be done with two static pages via Penpot. Haven't done it for this dialog and it's never fully functional, for example responding to the color picker, setting the preview correctly, providing the presets functionality etc. requires code.

The question is rather if people can be convinced of changing the workflow and loosing the ability to apply attributes to many positions at once. Doubt this.
Comment 25 Telesto 2021-07-19 08:40:03 UTC
(In reply to Heiko Tietze from comment #24)
> The question is rather if people can be convinced of changing the workflow
> and loosing the ability to apply attributes to many positions at once. Doubt
> this

Loosing the ability to apply apply attributes to many positions at once is a no go for sure. Not 'doubtful' at all ;-)

The point is that don't see why how this should be a problem. at least in my 'model'. Which I attempted to described in comment 20/22. Except you possibly one click extra being needed. To press the select all borders template. Prior to application of border style. This could even be removed, however there might be some negative side-effects).

The interactive dialog isn't necessary per se. It can also be written description. Simply to clarify, and making sure the dialog isn't bound to much by a certain workflow. 

-
Enabling/disabling borders must be untangled from selection. And you might need border selection templates (selecting existing borders) and border enabling templates (next to manual selection/enabling/disabling)

With issue - overlap cases where 'border selecting template' includes borders which are disabled. Where my logic would go, what isn't there can't be selected. 

But well you can also say, the template is selected, and border modified, it should be applied to previously un-enabled border.

[And at this point the desire for undo comes to mind] Reset does reset all changes.. Mostly you want to go one step back.  However this bit of an problem with the overall design of dialogs. This type is undo rather specific (or maybe it isn't)?
Comment 26 Mike Kaganski 2021-07-19 09:01:25 UTC
When we discussed the mockup from comment 15 on the call, in the beginning, we indeed discussed some workflow change. But in the end, our discussion came to this mockup, which intended to *not* change workflows, but instead to make the actions more obvious and accessible.

Current (and proposed with the mockup) workflow focuses on one central idea: at any point in time, all *selected* borders have the same set of properties applied. This is not only difficult to change, but also is undesirable to change. This also implies one important property: *both* orders of operations: "select then configure" and "configure then select" result in the same set of properties applied to the selection.

The border settings definition is necessarily complex, because we try to fake "simple property  setter" for something that indeed is complex: multiple separate objects (up to 8 individual borders, with several elementary properties - color, width, style - for each). An alternative would be having too many individual simple controls - and that would be even worse.

The proposal has the following advantages:
1. Introduce individual buttons to *select* individual borders (previously, that was only possible by clicking on parts of the preview). This allows to have *accessibility*, as well as UX improvement by hinting people who don't guess where and how to click on the preview.
2. Moving presets to an own panel, potentially allowing to define own presets.

The problems with the mockup:
1. The "visible" should be kind of radio button (or a drop-down), with these options: none/visible/unchanged (to match current options). Visible means the controls below enabled; other two modes mean controls below disabled.
Comment 27 Heiko Tietze 2021-07-19 09:18:53 UTC
(In reply to Telesto from comment #25)
> Loosing the ability to apply apply attributes to many positions at once is a
> no go for sure. Not 'doubtful' at all ;-)

This will always end up in confusion. Example: left border is blue, right is red, and you select both - the color picker cannot show the current state (correct UI solution is to have some indetermined state like known from checkboxes, which is not perfectly clear to many users). 
The same for Mike's example with the 3rd state for Visible. If only one border is taken into the current attributes you know for sure what attributes it has. IMHO, we complicate the workflow with the (IMO) rare use case of multi-selection.
Comment 28 Telesto 2021-07-19 10:10:17 UTC
(In reply to Heiko Tietze from comment #27)
> IMHO, we complicate the workflow with the (IMO) rare use > case of multi-selection.

Two different statements in sentence :-). Multi-selection is complicated, totally true. 

Rare case of multi-selection. Not sure if there is no desire or simply not possible. Is surely sometimes desire to define the border width of all orders (with different formatting applied). Especially if you have some pre-formatted table (done by someone else or years ago) which does different border width for one reason or the other).

It should be possible to put everything which isn't the same in tri-state mode. (So border red, blue select means tri-state). This rather inherent to the type of selection (which is visible in the preview). So not finding this really unexpected result (but maybe biased me, tri-state is surely less common as feature)

Again, this topic inherently complex. Surely not all wisdom here (or experience with all the design principles) 

---- 

Another topic which comes to mind: resetting all borders back to default.
The current line arrangement present also mixes two properties
1. Choosing line arrangement
2. Resetting existing border styles

There are cases where you want to reset all borders to default (Default template style). However you have to press Line arrangement for that. But this can by accident also enable /disable borders too. Or visa versa. you select select outer border line arrangement which disabled the inner (formatted border) too.
Comment 29 Mike Kaganski 2021-07-19 10:20:31 UTC
(In reply to Telesto from comment #28)
> It should be possible to put everything which isn't the same in tri-state
> mode.

This makes it complicated even further. Having a selection with different applied properties gives no advantage, only another state that user needs to be aware of. Also it destroys a "define then apply by selection" workflow, because every selection act would simply create such a heterogenous selection set; and only "select then define" workflow would be possible, with resetting individual controls from "undefined" to some value; and when user decides to add one more border to the set, every setting needs re-definition again.

> Another topic which comes to mind: resetting all borders back to default.

The *potential* (only needed when we implement true table borders) "reset to default" is easily implemented by the fourth radio button/drop-down: "reset to default" in addition to "none/visible/unchanged" mentioned in comment 26.
Comment 30 Heiko Tietze 2021-10-05 09:38:55 UTC
*** Bug 100518 has been marked as a duplicate of this bug. ***
Comment 31 Heiko Tietze 2021-10-05 09:39:12 UTC
*** Bug 101459 has been marked as a duplicate of this bug. ***
Comment 32 Heiko Tietze 2021-10-05 09:39:31 UTC
*** Bug 139138 has been marked as a duplicate of this bug. ***
Comment 33 Heiko Tietze 2021-10-05 09:40:59 UTC
*** Bug 139139 has been marked as a duplicate of this bug. ***
Comment 34 Heiko Tietze 2021-10-05 09:41:53 UTC
Same topic with some duplicates and several comments in bug 87787.