Improve Text Format Admin Description
eigentor - June 27, 2009 - 18:54
| Project: | Drupal |
| Version: | 7.x-dev |
| Component: | user interface text |
| Category: | bug report |
| Priority: | normal |
| Assigned: | Unassigned |
| Status: | reviewed & tested by the community |
| Issue tags: | d7uxsprint, ui-text, Usability |
Description
To be found at /admin/settings/formats
OMG, this text is a total mess.
It is hard to even start quoting where it fails. It talks about user permissions, the format selection widget below the main text area in node forms, the order you have to arrange it - uff.
This must be reworked in order to enable an amin persona to understand what text formats are for: they are actually quite powerful in Drupal and can present a serious security threat if set wrongly.

#1
#2
#3
This is the actual text:
"Use the list below to review the text formats available to each user role, to select a default text format, and to control the order of formats listed in the Text format fieldset. (The Text format fieldset is displayed below textareas when users with access to more than one text format create multi-line content.) The text format selected as Default is available to all users and, unless another format is selected, is applied to all content. All text formats are available to users in roles with the "administer filters" permission.
Since text formats, if available, are presented in the same order as the list below, it may be helpful to arrange the formats in descending order of your preference for their use. To change the order of an text format, grab a drag-and-drop handle under the Name column and drag to a new location in the list. (Grab a handle by clicking and holding the mouse while hovering over a handle icon.) Remember that your changes will not be saved until you click the Save changes button at the bottom of the page."
#4
This was fun. Been able to cut it down to a third. A lot of things are described redundantly on the text format starting page and on the different sub-pages of a specific format, so need to look into this as well. In filter.module, a text for the "more help" link (help system) is provided, but the link does not show up. This might be a bug.
Patch is attached.
#5
The last submitted patch failed testing.
#6
Rerolled. Probably some issue with wrong single and double quotes.
#7
#8
+ $output = '<p>' . t("Text formats control which Html tags are allowed. You can add a new one by clicking on 'Add text format' above. Define which user roles can use which text format; the default format is available to all users. The formats are presented in the order you arrange them below.") . '</p>';+ $output .= '<p>' . t('Take care not to allow too many tags to users, since this may cause a security threat. Be especially careful when allowing PHP code.') . '</p>';
We always use 'HTML', not "Html".
"You can add a new one by..." => "Add a new one by..."
"Define which user roles can use which text format; the default format is available to all users." ? That first clause feels like a sentence fragment, at the least, you have to read it several times to parse.
I'm not sure the security warning is useful here and will be difficult to do in a way that is applicable to all situations. In particular, it is not allowing too many tags that may be dangerous; it is more a danger caused by the specific tags that are allowed. Quantity of tags is not all that applicable. And, that last sentence regarding PHP code may not be applicable to a site that has not enabled that module.
All that said, though, there certainly is room for improvement.
What about something like:
Use the list below to review the text formats available to each user role, to select a default text format, and to control the order formats are listed in the Text format fieldset, The text format selected as default is available to all users and is applied to new posts unless the author chooses another available format. All text formats are available to users in roles with the "administer filters" permission.
#9
I completely agree with your remarks, especially the warning about the danger of allowing certain tags. Probably this warning should be exactly in the place where a user can allow tags or maybe allow all tags, or a drupal message when he changes tag settings.
Whith your alternative proposal though I am not happy at all:
Having in mind a user that does not know what a text format is: you can mention it as often as you want, he just won't get it. What is a text format? Mentioning that the user can select another format he finds out when editing a post, and in a default setting authenticicated user cannot, he can just use filtered HTML. The administer filters permission - yes this is dangerous but again: does someone trying to get a hold of text formats need to know that?
Also you don't have to review: you just choose or set.
Maybe we should meet in IRC and discuss general strategies. Basically I feel like contradicting most changes, and I hate that ;)
What and who are we targeting at? Drupal offers a gazillion options. If we describe all of them, we confuse. Do we want to explain technical concepts? Are we targeting at not-so-technical administrators? At people that know Drupal well or at people who don't know it at all?
Also how do we archieve that everything is explained exactly in the place it is needed and not twice or three times all over the place.
#10
Looking at the page without making any changes is "reviewing" the changes. That's a very necessary thing to do considering this page has security implications (you'd review this page to determine what roles have access to what formats, for instance).
This is an important page, and while it may be true that people don't understand text formats, not mentioning the phrase "text format" does not explain what they are, and actually makes it harder to find out. You don't know what to Google, for instance.
In my opinion, trying to "dumb down" a concept is the wrong way to go. That's kinda' what we saw with moving "Taxonomy" to "Category".
But, that said, yeah, it's very hard to really nail the audience we're aiming at here.
#11
Well actually I have nailed it for myself (and write all the texts in this respect): People who do not know Drupal but may have some experience with other content management systems. In this I orient on the D7UX principles "Privilege the content creator" "Make the most frequent tasks easy" "Design for the 80%" a.s.o. you know them... :P
People who _are_ experienced won't read those texts.
Personally I have learned about _nothing_ about drupal from the help texts. I learned it from experience, recommendations, documentation, and the most from errors I made. So I guess the ones that read the text won't learn any concepts, but should get help how to use the page they're on.
What can I do on this page? Where do I start?
And maybe a very slight hint "What are blocks" or "What are text formats?" Though the only way to learn that is to experience it.
So the sentence: "Text formats control which HTML tags are allowed." was my shot at that.
#12
FYI: the location for this is now
/admin/config/content/formats
#13
We attempted to test this, but only scratched the surface. We found this text, in the larger context, is part of a work-flow that needs revision/changes.
- User is unclear what "text format" means in the title.
- On configuration page, there is a loss of the prior context
- "More information about text formats' /filter/tips is not styled the same, and is completely out of the context of 'Text Format' area.
- The link to more information should be on the start page, in addition to configuration page
- The listing of text formats "name" column- the word "name" confusing
Many of the problems with the initial text are also part of a wider issue with the work-flow of this task.
#14
Good shot to user-test it, heather :)
As the text formats are very important and have a lot of subpages (with a lot more confusing texts) this will not be a quick one.
How do we get users to experience what text formats are? This is also hard on the blocks page, but if you put a block into another region, you might see an immediate effect.
With text formats it is different. The entire form is so confusing, and to actually configure a format, you have to click configure twice (!) the help texts have hardly a chance to be helpful without reworking the entire interface.
So maybe an example that shows what happens when you allow html tags or forbid them could do the trick? (could be very simple: "Allow the
<img>tag to allow the user to insert images" and show what happens if allowed or not...All the other controls only group around this.
Needless to say that only medium advanced users will be able to make sense of this page, so I think we do not need to adress people who do not know what html is - they won't be able to make use of it.
As I doubt we will rework all the forms for input formats for D7 maybe the focus should be on making the texts much shorter (as always) and not trying to explain too much, but get the user to try it out.
Maybe you want to iterate on the text by making suggestions?
Needs iteration anyway, as every issue and particulary core issues...
#15
Rebecca and I initially thought we could 'fire through' a few of these long-neglected ui-text issues. But we realised it was a bit more than we could handle in the time we had. I wanted to contribute the notes in case they were of use.
But this was like pulling one string on a larger knot that needs unraveling.
I would like to sit down and try a user test again on this. In fact, I am preparing a proposal for a UX testing in Belfast 26-27 Sept: DrupalCamp Ireland. Talked with Yoroy who is advising me. Should be of use, I hope! We might be able to come up with some simple/effective things to ease some of the problems... (i hope :)
#16
Can 'Text Format' be renamed to 'Text Display' since that is what people will need to understand when setting these?
As for the copy, how about:
"Text formats control which HTML tags can be used in a node once the content is saved. People creating content may need to use additional HTML tags; configure their role to use Full HTML if needed. Anonymous users should be restricted to Filtered HTML or plain text for security reasons.
If you want to create a custom text format, add a new one by clicking on 'Add text format' above. "
Edited: I removed references to PHP since it's not handled on this screen by default (admin needs to enable it first)
#17
Taking this on to try out revising the patch as per comments.
#18
Hi! So - my first post seems to have vanished - trying again.
I've created a new patch to reflect the conversation and lisarex's final suggestion - as well as with a few edits of my own. Please review and see if it meets all of our expectations.
#19
We should not advice to switch to full HTML in this case for security reasons. It's best to either modify the set of allowed tags of the "Filtered HTML" filter at
config/content/formats/1/configureor create a new filter with an extended set of allowed tags. It should be mentionned that the Full HTML filter, if granted to any role, should only be used for trusted users.agreed.
+++ modules/filter/filter.module 2009-10-21 17:32:31 +0000@@ -18,8 +18,8 @@
+ $output = '<p>' . t('Text formats control which HTML tags can be used in a node to enter content. Administrators or people creating content may need to use additional HTML tags and configure their role to use Full HTML as needed. Anonymous users should be restricted to Filtered HTML or plain text for security reasons. Access to the defined text formats can be assigned using the <a href="@url">permissions page</a>.', array('%fallback' => filter_fallback_format_title(), '@url' => url('admin/config/people/permissions', array('fragment' => 'module-filter')))) . '</p>';
Text formats do not only apply to nodes, but to any fieldable entity type in D7 (users, comments, terms...) and possibly more (in contrib), so the first sentence should be made more generic.
#20
I agree that the current text on this page is a disaster and that it is very important to make it better :) I think the most recent rewrite definitely does that. Here are some comments, though:
"Anonymous users should be restricted to Filtered HTML or plain text for security reasons."I'd suggest something like "untrusted users" here. On most sites, anonymous users aren't the only ones who should be restricted (and theoretically, it's even possible to have a site where anonymous users are trusted, although that's probably the 0.01% use case).
If you want to give people proper detailed warnings about security, the issue to look at is #275811: Warn about potentially insecure filter configurations. It is really, really, really, really important to get that into Drupal 7 - that allows us to (dynamically) detect exactly which text formats on the site are configured insecurely, and to provided specific information about what makes it insecure (e.g., "The HTML filter is configured to allow the following unsafe tags: <script>, <object>, etc").
If you care about security warnings, please review that patch - time is short :) There is also a corresponding design issue at #618902: Design and implement a user interface for warning about insecure text formats that needs lots of help from UX folks to figure out exactly how best to present the information from that to the site administrator.
"A new custom text format can be created by clicking the link below."For accessibility reasons, let's try to avoid the word "clicking" (even though it was there already)... and we don't need to say this sentence at all anymore anyway, since due to recent D7 changes, the "Add text format" link now (happily) appears right underneath the help text.
***
Putting it all together, here's a stab at what I'd suggest:
Text formats control the HTML tags, code, or other formatting that can be used when entering text. Administrators may choose from a variety of text formats that allow them to create rich content, while untrusted users should be restricted to more limited formats that do not present a security risk.
From this page, you can review and configure the text formats on your site (access to the defined text formats can also be assigned using the <a href="@url">permissions page</a>). When creating content, the available text formats will be presented in the order you arrange them below.
#21
@ David Rothstein
Well done! That looks like a really good, clear and concise description. You've incorporated all considerations.
Thanks also for the heads-up about the two patches which need reviewing, (your point #2)
Dcor, you want to re-roll this?
I'll be glad to review it.
#22
Great, thanks!
As long as I'm here now, I'll just roll it into a patch...
#23
Applied the patch and it looks good to me!
#24
Not bad.
Still, the race is on, who can do the shortest? :)
As the text format descriptons distribute across several pages, this offers a great opportunity: we can distribute the text across at least two pages: the start page that this issue deals with, and at least the next page, when you enter one text format.
So best to only give only the least bit of necessary information on this page. We can be more specific if a user clicks an input format and tries to edit it or tries to create a new one.
We tried to come to some kind of guidelines in Utrecht, which (I hope) the gist can be summarized as follows (compare http://drupal.org/node/504080#comment-2195588 and http://drupal.org/node/501452):
1) Be as short as possible
2) General pattern for the user: "What can I do here?"
3) _No_ explanation of technical concepts. This belongs into the help text and is linked on the page.
All this is intended to match the very short attention-span of a user (desperately?) browsing through the admin pages looking for something particular or just strolling around and wondering what wonders he may find.
Much talk, attached another try as patch, Screenshot here:
I deliberately only mention "HTML tags" even if you can do much more and allow even PHP. But targeting the 80% or say 92% use case... guess people wanna control Html.
#25
Rerolled: corrected typo "confituration" to "configuration"
#26
And changed "Text Formats" to "Text formats" to be in sync with page title.
#27
@eigentor - I see you're trying to improve David's patch #22 according to the guidelines for UI best practice.
However, I am wary it might be too brief in this case.
This is the one location where a novice site admin can introduce serious security threats to their site, and the latest patch does not explain how this page works. (and it's not obvious, in my experience).
David's 4 points in #20 are very clear. I think we can hit on his 4 points, more concisely, without introducing further confusion.
The text on this page should refer mainly to the functionality of this page alone; should not try to explain text formats & filters in general; and should alert the user to the security threat clearly.
His point 3) is that we should explain the ordering of the formats on this page(!) I, um, for one had trouble with that.
And generally:
We do not need to tell the user to add formats, right below there is a link to add.
Also my other issues with patch #26...
They don't get referred to anywhere else as configuration sets. We should not introduce new language here. They are text formats (filter sets would have been nice, but it didn't happen). We do not need to define it in this case, as the user is learning this notion through the interface.
When someone clicks 'configure' the list of options is referred to as filters. I think it's important not to lose this language. Look to the existing, very clear, documentation on this. http://drupal.org/node/213156
The conceptual model of 'filter' fits here, as any text, code or string can be input and uploaded to the site. Yet the filter controls what is displayed or executed either on the server or client side.
So I'm giving this a roll...
#28
Cute. I forgot how to make a patch.
I need tea.
#29
Yeah, I agree with making it more concise. However:
The first one is shorter, and I still like it better... does it explain things well enough? I am not sure there is an advantage of using the term "default format" here anymore - IMO that is something of a relic of Drupal 6.
Given that this page is the main overview page for all text format administration (and that the overall "more help" page for the filter.module is a wall of text), I wonder if a one sentence definition is maybe still a good idea? If so, I'd prefer to aim for 100% here, not 80% :) Besides, stuff like Markdown and BBCode is (I'm guessing) much more common than 20% - typing HTML tags into a textarea is pretty old-school, and one of the main purposes of the text format system is to allow people to avoid that. We can probably remove the word "code", though... since if you can be trusted to type PHP code, you hopefully don't need the help text here :)
So, trying to put it all together again, I'd suggest maybe something like this:
Text formats control the HTML tags and other formatting that can be used when entering text. They are central to a site's security, so untrusted users should be restricted to limited formats.
When creating content, the available text formats will be presented in the order you arrange them below.
If we're bold, delete the second sentence:
Text formats control the HTML tags and other formatting that can be used when entering text. When creating content, the available text formats will be presented in the order you arrange them below.If we're really bold, delete the whole first paragraph :)
When creating content, the available text formats will be presented in the order you arrange them below.#30
Here is another stab, quite similar to Davids first and longest proposal of #29.
I tried a bit more active wording. So rather say "Control the HTML" instead of "Text formats control the HTML" as it is clear that this is text formats: it is in the header of the page.
And rather than saying "They are central to a site's security, so untrusted users should be.." write "Don't allow too much formatting for untrusted users..." Also the "when creating content" of the third paragraph can be cut, for the user has to see that anyway and it is only when creating content.
Also added in a short encouragement to click the configure link next to a text format, since all the magic starts only after they click that link...
#31
changed "securitity" to "security"
#32
+++ modules/filter/filter.module 21 Nov 2009 18:17:31 -0000@@ -18,8 +18,8 @@ function filter_help($path, $arg) {
+ $output = '<p>' . t("Control which HTML Tags and other formatting can be used for text input. Don't allow too much formatting for untrusted users. This can be a serious security risk.") . '</p>';
TagsinHTML Tagsshould be all lower case, i.e.HTML tags.#33
OK, like all the changes :) .. Fixed this minor issue pointed out by scor. Should be RTBC.
#34
I changed "behaviour" to "behavior" (not sure if there is an official style guide for American vs British English, but "behavior" is what is used elsewhere in Drupal).
Otherwise, looks good. I think the "Don't allow too much formatting" phrasing is a little strange, but don't have any great ideas for anything better at the moment.... Maybe we can improve it later, depending on how other issues go.
#35
A big improvement overall.
Regarding the last point: one try at rewording it. We want to try and not use "don'ts". Does it help to give examples of risky tags or is that a can of worms we don't want to open now?
"Allowing too many HTML tags (like x? y? or z?) for untrusted users can be a serious security risk."