Bug 138658 - UI: Confusing categorization of the 'Hidden' feature
Summary: UI: Confusing categorization of the 'Hidden' feature
Status: RESOLVED WONTFIX
Alias: None
Product: LibreOffice
Classification: Unclassified
Component: Writer (show other bugs)
Version:
(earliest affected)
7.0.3.1 release
Hardware: All Linux (All)
: medium enhancement
Assignee: Not Assigned
URL:
Whiteboard:
Keywords: needsUXEval
Depends on:
Blocks:
 
Reported: 2020-12-04 13:35 UTC by Christian Lehmann
Modified: 2020-12-18 11:35 UTC (History)
1 user (show)

See Also:
Crash report or crash signature:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Christian Lehmann 2020-12-04 13:35:33 UTC
Description:
In a table, I mark an entire row and choose 'Format - Character - Font Effects' - 'Hidden'. The entire table row disappears. No complaints about this.
However, this is definitely not a font effect. The entire function of hiding text (including entire sections and table rows or columns) belongs in the main menu 'View'.

Steps to Reproduce:
1. Format
2. Character
3. Font Effects
4. Hidden

Actual Results:
Marked string or section gets hidden.

Expected Results:
The result is fine. What is wrong is the path leading to it.


Reproducible: Always


User Profile Reset: No



Additional Info:
Version: 7.0.3.1
Build ID: 00(Build:1)
CPU threads: 12; OS: Linux 5.3; UI render: default; VCL: gtk3
Locale: de-DE (de_DE.UTF-8); UI: en-US
Calc: threaded
Comment 1 Mike Kaganski 2020-12-04 13:57:06 UTC
What you describe is not a bug, and even not like you describe.

When you select the whole table row, and make its *characters* hidden (which is correctly placed in character properties), what you get is not "the entire table row disappears", but "the row now has content of height 0, and *if* the row height is automatic, then the row height will only depend on border padding; and further, *if* the padding is zero, then the row height will become zero".

Test with a table with border padding set to non-zero. Closing NOTABUG.
Comment 2 Christian Lehmann 2020-12-04 14:15:26 UTC
(In reply to Mike Kaganski from comment #1)
> What you describe is not a bug, and even not like you describe.
> 
> When you select the whole table row, and make its *characters* hidden (which
> is correctly placed in character properties), what you get is not "the
> entire table row disappears", but "the row now has content of height 0, and
> *if* the row height is automatic, then the row height will only depend on
> border padding; and further, *if* the padding is zero, then the row height
> will become zero".
> 
> Test with a table with border padding set to non-zero. Closing NOTABUG.

Hi Mike,
what a pleasure to have occasion again to argue with you! You seem to have missed the detail that I never claimed the thing to be a bug. If you do not want to have suggestions for enhancements made among bug reports, you are free to establish a new section in the LibreOffice Bugzilla.
Moreover, if setting the row height to zero is your trick to hide it, there is probably nothing against it. However, the user does not know this. The user does not even need to know what you do to hide entire sections. What he perceives is that the passage in question disappears. This is, in the perspective of the user, the function of this feature. Again, it has absolutely nothing to do with font effects. Not even the particular device that you explain has anything to do with font effects.
Comment 3 Mike Kaganski 2020-12-04 14:47:39 UTC
(In reply to Christian Lehmann from comment #2)

I might then had misunderstood you; and I am still puzzled about what you perceive the possible enhancement here.

You described your findings as "I do this, and the row disappears; it's fine that it's disappeared, but the option should be in a different place". But you didn't suggest an example of where you see it fit better. That description made me feel that you perceive the *main function* of the said function to hide table rows. That is wrong, and it's just a side effect of a combination of settings (row having no minimal or fixed height; no border padding; all its cells having the only textual content with all characters having the said hidden property). But given the comment 2, I now start to believe that you are talking about something different: that the hidden property does not belong to *Font* effects (while still belong to character properties)?

Then why all that dance with table? The question if this belongs to font effects or different tab of character properties is unrelated to the behavior of table rows with automatic heights.

Or do you mean something third? It would be nice if you not only state "this shouldn't belong here", but also continue with "... but better e.g. here". That would make your idea clearer.
Comment 4 Christian Lehmann 2020-12-04 16:17:07 UTC
I did say that the same applies to hiding entire section. And I did say that the item would be housed well in the main menu "View".

Let me add that googling for the question "How do I hide text in Writer" turns up a page where this question was asked and different answers were provided. This seems to show that people would, in fact, use this function but simply cannot find it in the menu structure. To me, hiding portions of text of a Writer file is analogous to showing or hiding comments and similar things, which are parts of the menu "View". This is why I suggest this place.
Comment 5 Mike Kaganski 2020-12-04 16:49:58 UTC
Definitely not View. Absolutely. View controls how it looks on screen, and does *not* belong to anything that changes how the end result looks on paper. Format might possibly be a proper place.

Also: the property is absolutely a property of characters. We must not move this out of character properties dialog. Because we have a very complex structure of properties on different levels (character/paragraph/...), layers (direct formatting vs styles), inheritance, nesting, etc. So every property must be present in corresponding dialog, to not create additional complexity and unexpected behavior.

But it's a different thing if we may add an additional path to the same function, like we do for inserting breaks (in addition to the property present in paragraph properties...)
Comment 6 David 2020-12-04 16:57:50 UTC
IMO Font Effects is the proper place for the "Hidden" attribute.  But that being said, I think what is wanted here is for an easy way to turn on the "Hidden Text" option under Tools - Options - LibreOffice Writer - Formatting Aids.  Why the option has to be hidden so well is beyond my comprehension.  IMO all the display options listed there should be also put in a sub-menu under the View menu so that the settings can be easily found and changed at the current document level.  That seems like it should be an easy fix to what is being asked for.
Comment 7 Christian Lehmann 2020-12-04 16:59:32 UTC
Is there a place where one can read on the hierarchy of levels that you mention? My experience is that I have repeated misunderstandings with people working on LO because they have a notion of this hierarchy which I do not know. My notion is based on the DOM; and there hiding an entire table line or paragraph or section is definitely not a property of characters.
Comment 8 Christian Lehmann 2020-12-04 17:05:36 UTC
Okay, since my verdict that hiding a text passage has nothing to do with font effects is obviously not self-evident to everybody, here is the argument:
Font effects comprise, presently: font color, text decoration, case, relief, outline and shadow. All of these are attributes that show on every single character so formatted, modifying its shape.
Hiding a passage of text - and I repeat, including entire sections of a file - is not something that modifies every character of that text. It is conceptually different.
However, if there is, additionally, a more direct and intuitive way to this function, the user's need is satisfied.
Comment 9 David 2020-12-04 17:17:07 UTC
(In reply to Christian Lehmann from comment #8)
> Hiding a passage of text - and I repeat, including entire sections of a file
> - is not something that modifies every character of that text. It is
> conceptually different.

The "Hidden" attribute is also available for the settings of a paragraph style. 

> However, if there is, additionally, a more direct and intuitive way to this
> function, the user's need is satisfied.

The option for displaying hidden text shouldn't be just a default document setting.  I agree that it needs to be easily available as a current document setting.
Comment 10 Mike Kaganski 2020-12-04 18:51:22 UTC
(In reply to Christian Lehmann from comment #8)
> Font effects comprise, presently: font color, text decoration, case, relief,
> outline and shadow. All of these are attributes that show on every single
> character so formatted, modifying its shape.
> Hiding a passage of text - and I repeat, including entire sections of a file
> - is not something that modifies every character of that text. It is
> conceptually different.

1. First of all, I *hope* that you don't question that the hidden setting belongs to *character properties*. If not, then please state directly.

2. The Font Effects tab combines several character-level settings that modify the basic appearance of the glyph of the font selected on Font tab. These two tabs together define the resulting appearance of the *glyph* completely. In theory, they could be combined into a single tab, but it would be overloaded with tens of settings, and hence the division.
   The other tabs define other character-level settings. Position does not modify how the character glyph looks like, but defines its positioning relative to other characters. (Okay, horizontal scaling does modify the glyph, but being tightly related to the fitting of the text into available space and to the positioning of the text relative to other parts, a decision should had been made where it belongs more, and so it was put here). Hyperlink tab has quite special obvious meaning (I hope). Highlighting controls not the glyph, but the area (background rectangle). Borders naturally control the borders of the said rectangle.
   Now the question is why would you argue that making the glyph invisible is *not* changing the appearance of the glyph. From my PoV, it perfectly is. And thus it fits into Font Effects tab just fine. Note that you are free to modify every character with this setting individually if you need. Note also, that in LibreOffice, *character-level* properties are applied to text runs, as opposed to paragraphs as a whole (the latter is paragraph-level properties).
   Again, this is a character-level property *on DOM level* (that you had mentioned). And thus it must be on the character properties dialog anyway - so if you like, you may suggest where, on which tab, *on that dialog* you think it would fit best.

3. Note that paragraph-level properties include all character-level properties, and thus you may define hidden on paragraph level. This is obvious in Paragraph Style dialog, but unfortunately hidden in paragraph's direct formatting dialog. Now consider that when you select whole paragraph(s), and apply any formatting, that formatting goes to paragraph level. That is still the same property. Maybe you are confused by the fact that you don't see the Font/Font Effects/etc. when you choose Format->Paragraph? That's something to discuss, but in general I agree with usefulness of *existing* UI, where Character dialog may control both character-level and paragraph-level formatting at the same time, depending on selection (consider selecting last half of paragraph 1, whole paragraph 2 and first half of paragraph 3, and modifying properties; they will go to 2 character-level settings applied to text runs in paragraphs 1 and 3, and to 1 paragraph setting for paragraph 2, at DOM level). Doing otherwise would make users confused much more. But it makes it not obvious, on which level is a setting is defined which you see in the dialog (unless you use Style Inspector in v.7.1).
Comment 11 Christian Lehmann 2020-12-10 15:19:40 UTC
Thanks for the detailed explanations. There are apparently more than one problem hidden here:

Ad 1 and 2: In discussing the nature of "Hidden characters", it may seem that we are arguing about words. Anyway, it may be helpful to distinguish two cases:
a) A string of characters is hidden in the sense that they cannot be seen at the place where they are. The standard method of producing this effect would be to choose white print on white background.
b) Part of the text is hidden in the sense that no space is provided to display it. This is currently the effect of the feature "Hidden".
To my understanding, #a is a font effect, i.e. it is actually a typographic modification of the font like italics etc. #b, on the contrary, is an option of displaying the document in its entirety or just selected parts.
This is why I had suggested to list function #b in the 'View' menu. If I understand you correctly, the reason you find this wrong is that the "hidden" text is not only suppressed from the screen display, but also from the printout. In this, our 'hidden' function would indeed differ from other options under 'View' like 'Show comments' or 'Show Formatting marks'.

Ad 3: If the 'Hidden' feature can be applied to any component of the document, from a single character via a paragraph and a table row up to an entire section, then it should probably not be a feature in the submenu 'Format - Character' and instead a separate item one level higher up in the hierarchy, viz. in the 'Format' menu. Call it 'Hide text' or something like this.

Moreover: In my version of LO (7.0.3.1), the window in which you format a paragraph looks differently if you choose 'Format - Paragraph' than if you choose 'Styles - Paragraph Styles' and then modify the style of the paragraph in question. This used not to be so, and to my mind, it is no enhancement. As you say, it may be useful to set the font face of an entire paragraph without having to mark ("select") the string of characters that it comprises.
Comment 12 Mike Kaganski 2020-12-10 16:22:40 UTC
(In reply to Christian Lehmann from comment #11)
> Ad 1 and 2

In theory, your PoV has its reason. The characters get "removed" from layout using this setting, and as such, it might be considered not an effect.

But it is, nevertheless, a setting applied at character run level. As such, it *must* be in the character dialog, no matter if you *also* provide a convenience way of accessing this in another place.

By the way, you may be interested in a *reverse* discussion in tdf#138628, where the existence of convenience dialog for inserting (page) breaks makes people confused that the page break is actually a property of paragraph, and lets some to suggest that the convenience means must give clearer idea what is actually being done under the hood.

> Ad 3: If the 'Hidden' feature can be applied to any component of the
> document, from a single character via a paragraph and a table row up to an
> entire section,

No. You seem to ignore my words. I already wrote, that the effect that you describe as "applying it to a table row" is a misconception, and a side effect of *multiple* settings that you have in your table. You do A, then B, then C, then D, and then the row is collapsed to zero height. And based on that, you call D "a function to hide rows (among other things)". But why not B? If you did it in another order, B could happen to be the change that collapsed the row!

> then it should probably not be a feature in the submenu
> 'Format - Character' and instead a separate item one level higher up in the
> hierarchy, viz. in the 'Format' menu. Call it 'Hide text' or something like
> this.

So again: no. This is a setting applied to text runs - which is, in LibreOffice terminology, a character property. A convenience access is a different thing.
Comment 13 Mike Kaganski 2020-12-11 06:47:17 UTC
(In reply to Mike Kaganski from comment #12)
> (In reply to Christian Lehmann from comment #11)
> > then it should probably not be a feature in the submenu
> > 'Format - Character' and instead a separate item one level higher up in the
> > hierarchy, viz. in the 'Format' menu. Call it 'Hide text' or something like
> > this.
> 
> So again: no.

To clarify: what I feel being *wrong* in your proposal is the *not* in the "it should probably not be a feature in the submenu 'Format - Character'". It could be OK  if you re-phrase it as "it should probably not only be a feature in the submenu 'Format - Character'".
Comment 14 Christian Lehmann 2020-12-11 08:14:17 UTC
Okay, let's abide by that.
Comment 15 QA Administrators 2020-12-12 03:50:05 UTC Comment hidden (obsolete)
Comment 16 Heiko Tietze 2020-12-14 16:24:53 UTC
Keeping the categorization aside the question was whether this attribute should be more easy to access. And I wouldn't add it to the menu since hidden text is easy to overlook. Non-expert users may accidentally click it not knowing how to bring back the text.
Comment 17 Mike Kaganski 2020-12-14 16:41:18 UTC
(In reply to Heiko Tietze from comment #16)

I agree. Hidden text could constitute the same level of privacy issue as hidden change tracking: am unexpecting user might not be aware that the document contains more than it shows, and another person who receives it might read that content easily.
Comment 18 Heiko Tietze 2020-12-15 10:35:09 UTC
Always good to have a clear scenario and workflow. Something like "I'm a teacher and prepare tests for school. Every task should include the solution but hidden until... And since my colleagues and me do this hundred times per day it would be very helpful to have a more easy access to this function."

Nevertheless we also appreciate to challenge how features are realized. But since developers mostly have a good reason, it's very easy to reject a request.
Comment 19 David 2020-12-17 10:10:26 UTC
It would be nice if a "View Hidden Text" command would at least be available as a customize command rather than just a global setting.  At least then powerusers would be able to add it. "Hidden Paragraph" field and "Hide Whitespace" are available, so why not "Hidden Text" also?
Comment 20 Heiko Tietze 2020-12-17 10:39:19 UTC
(In reply to David from comment #19)
> It would be nice if a "View Hidden Text" command would at least be available
> as a customize command rather than just a global setting.  At least then
> powerusers would be able to add it. "Hidden Paragraph" field and "Hide
> Whitespace" are available, so why not "Hidden Text" also?

Changes to the UNO API requires maintenance as well. Do you have a good use case for a more prominent command?
Comment 21 Mike Kaganski 2020-12-17 10:47:25 UTC
(In reply to David from comment #19)
> "Hidden Paragraph" field and "Hide
> Whitespace" are available, so why not "Hidden Text" also?

Those are fields, special kind of objects. Their insertion is necessarily implemented as separate commands.

On the other hand, *usually* there is no special command for numerous *object properties* (attributes). "Hidden" is a character-level attribute applying to objects, such as text runs and paragraphs.

There are *some* exceptions to the rule, e.g. "bold" or "underline", that have their own dedicated commands. However, those exceptions are created because their use is very common, not because we do it for all possible properties. So introduction of a dedicated command to set a property requires a good reason. And in case of rarely used and potentially confusing property like "hidden", such a reason could be e.g. inability to have it using existing mechanism.

But we have an already existing way to apply this attribute, which allows to use it in customization: that's using character styles. Create a special character style, which would only apply this attribute; then applying it to selection would be as simple as double-clicking the style in the Styles panel (F11). Save it to a template that you use for your documents (e.g., by default), and assign a key combination to the style in Customization dialog (yes, is allows to assign key shortcuts to styles), and you may use that using keyboard.
Comment 22 David 2020-12-18 11:35:13 UTC
I do use styles. And yes, the hidden text attribute can just be turned off in the style.  But I was thinking about something that would temporarily display what was hidden without actually making an actual change, just like going to the display options and enabling various views but without making it a global setting.  It was my thinking that this would also resolve the original poster's issue.

In the Options, under Formatting Aids, there are persistent options to enable/disable viewing of Paragraph End, Soft Hyphens, Spaces, Non-breaking spaces, Tabs, Breaks, Hidden Text, Fields: Hidden Text, and Fields: Hidden Paragraphs.  I believe that the viewing of most or all of them can already be changed temporarily at the current document level (either from the view menu or as a customized option) except for the Hidden Text option.