Posted by japerry@drupal.org on March 6, 2008 at 3:31pm
Moved to official ideas list at http://drupal.org/node/237899
Staring with some of the things here and some thinking and discussion here's a proposed proposal for a coding project:
Drupal's help system is fairly incomplete. At drupalcon there were many examples where the lack of a help system contributed to its usability woes. This project aims to enhance Drupal's help system through a pluggable, extensible help system API.
Drupal Help should:
- Provide help for any Drupal path by adding a suffix to the path (perhaps /help)
- Identify a "provider" site for help documentation... defaulting to drupal.org
- Provide a server implementation for serving help documents based on the area for which help is being requested.. this should query down the Drupal path using a system like the theme system where modules can override the response or pass it along if they have no response
- Provide a glossary functionality where key terms can be identified and automatically linked in help text
- Be configurable but come with simple defaults
- Cache help system locally on either a "grab x help items per cron run" or cache item on request depending upon local setting
- Add links to help throughout Drupal where it makes sense (i.e. help links for each item on the various administrative pages
- Provide for delivery of help videos, wizards, flows
- Provide for help along side content it pertains to
- Provide a framework for accessing help documents in a task-centric manner (may be the same help as the context-centric general model with a different outline)
Difficulty: Medium
Mentors: SIGN UP HERE

Comments
+1. For references
+1. For references:
http://groups.drupal.org/usability
maybe the content/interface translation tools for D6 would be useful (since very soon it won't be necessary to have a cvs account to contribute translations).
Some additional features
...in no particular order. Much of this is stuff I've heard others discuss, along with my own ideas after watching the U of M Usability presentation:
Sexing it up
Speaking of sexing up help, at the AJAX Popups BOF, we were talking about using the help system as a test case for the ajax popups (maybe with tooltips-like positioning for context help). I particularly like the way the Teleport module combines an ajax popup with an autocomplete textfield for navigation. I bet a similar approach could work really well for querying the help system without leaving the current page.
I was hoping you would stop
I was hoping you would stop by and say that.
I've been following your modal work with great interest, in the hopes that it could be subverted into serving up help text!
Oooh nice list!
Glossary, Enhanced linking to d.o., De-jargonify, Reduce modularity and Increase consistency could be bundled into a documentation project
Positioning of Creative UI with Context-sensitive Sexyness sounds like a very worthwhile development project.
Another idea
Here's another idea. Don't include help at all, but write a framework so help can be dynamically grabbed from drupal.org. This could be done through xml, similar to update status; the results could be cached, so this would not be so expensive on each page load.
That's a nice idea. At the
That's a nice idea. At the UMN testing we discussed having a flash video embedded in the welcome screen, but hosted on d.o so it's not subject to string freeze etc. Help texts the same way would be pretty nice - it'd need to deal with translated help texts of course but I guess translation got easier as well.
Keith: - very good list. I agree that words like "node" aren't the problem - the hardest concepts for people were 'page', 'block', 'story', 'content' which are all supposed to be friendly terms.
I agree with this 100%.
I agree with this 100%. But,
Cached, yeh - of course.
But query as often as update status does, I don't think that is necessary.
This idea (w/xml) + the kinda help tab that launchpad offers. I'm sold ^^
Tutorials or Flows
Something like tutorials or flows would be neat. They talked about how users liked the beginning page of Drupal that has a list of steps.
Something that would list out steps for different tasks. This would have to be module independent and could come as a formatted text file or something like language pack or w/e.
A page with questions or tasks could be displayed in the help section and could link to the step my step "flows."
I think that would probably the most useful and would require the least amount of work in terms of code.
Have a look at Eclipse IDE!
Hi,
you all have great ideas and to sum it up I would recommend to have a look at the Eclipse IDE Help System.
Eclipse IDE lives by it's massive eco system of plugins just as Drupal does. And while their system is much larger and even more complex than Drupal they are/were facing the same problems. So over the years they came up with a very nice and rich featured help system.
One feature I liked from the start are the so called "Cheat Sheets". Think of them like inline help for modules (Eclipse plugins) presented in a collapsible block. What they do inside Eclipse is to guide new users when adding a new project, set up your cvs connection, helping you build your software project, displaying help files or just links to resources. Cheat sheets do this in a very intuitive way. They can act like a step by step quide, they can present context sensitive information (help, tips and tricks, getting started), and they link to internal and external references and resources.
So in the Drupalverse we could provide "Drupal Cheat Sheets" that help users set up Drupal step by step like in a wizard. Or think of adding a guided tour presenting all the relevant sections of Drupal. With the help of jQuery this can be a rich user experience.
As an real world example, I would love to see such a module when entering content with a filter like textile or markdown. Most of my clients like textile but they are constantly asking for help how to create certain styles. Adding information about the textile syntax in a sidebar Drupal Cheat Sheet could be a consistent place for all kinds of filter (insert_block, insert_view, insert_node, etc.) syntax information.
Another area where Drupal Cheat Sheets could be handy is when you set up a module. Think of modules that present multiple lines of "help text" under each input field just to tell you that this input requires a certain format or is restricted 140 characters. Such information could be put into the cheat sheet block and displayed on focus.
I'm not that much into Drupal programming so far, but I guess it would be helpful to provide a hook_cheatsheet that allowes programmers to display help information for modules in a generic cheat sheet block? Another important fact is, the system is already invented, tested, used by millions of developers and based on XML. So it could be easier to implement.
This was one idea for a better help system in Drupal. I think there are tons of software solutions which dealt with the same problems Drupal has. And maybe we should have a look at how they solved it so that we can come up with a superb solution for Drupal 7+!
With best regards
Mike
A quick example
Head over to launchpad and check out their help-tab. I like it:)
https://launchpad.net/ubuntu/
Google's help
Check out the google adwords learning center.
http://www.google.com/adwords/learningcenter/
I think it's a great model for a help system.
Wizard view with help?
Background problem: I had this site that uses a lot of modules such that when a user tries to create a story, lots of collapsible sections are present such that they tend to be confused.
Suggestion: I would rather have it presented in Content Creation Wizard fashion which guides user to each step wherein each step the additional settings for each module's hook_nodeapi is presented separately.
Then with each step, the help system loads dynamically the help content related to that modules (this is now possible because of ample page space available). Users can skip steps if no additional settings were needed, however the user cannot skip steps that are required.
Finally if the user is already familiar with the process, the help system can be disabled to speed up loading and will only be reactivated if a new module is added with a hook_nodeapi.
I hope my suggestion made sense, I'm still figuring how to describe the user experience properly.
wizards could be another project
Although wizards do get requested a fair bit by new users, the problem is that although a wizard might help the first time through something, it can really, really slow you down the second or third time (like clicking Next > Next > Next for ever on windows). I think that's possibly another GSoC project in itself.
Speed up with DHTML
I think DHTML techniques can help by loading the each section of hook_nodeapi dynamically for edit and add ops. And the ability to skip steps is very important for advance users -- on a second thought, rather than steps 1, 2, 3 ... ets, a tab navigation for each section like Image, File, Gmap .. etc (per module).
Right now the add and edit views render all those section from hook_nodeapi as collapsible frame which add up to the load time eats up space. The idea is to make enough room that we can add the help system's content and the same time speed up that page loading for add / edit ops.
Alternative to Wizards
As I mentioned above, I think "flows" is a good alternative to wizards. It points the user in the right direction, without holding their hand. This will prove beneficial when they move into performing the task without help.
Help system usage
Catch, will you or webchick or someone else who was at the U of M usability sessions, write up a short synopsis of how the participants used the existing help system?
Other thoughts?
Edit: switching to an ordered list to match up with catch's excellent responses.
Yes, everything. Some did.
Yes, but probably not tonight :)
OK that took a while to get
OK that took a while to get back to.
Some more observations from UMN:
At least one person (maybe 2-3) used hover tips a lot - titles on admin menu items etc. one person complained that there weren't enough.
People read down the page, not across. So they want to read and do tasks vertically. So having more help interspersed (in a clean and optional way) near actual fieldsets and the rest might be a big win.
People either looked for a search, or tried to use Drupal's built in search to find stuff.
And they really do read almost everything on the page.
I had a discussion recently
I had a discussion recently with someone about a program which was extremely daunting at first, but included some basic tutorials at the beginning. After watching a couple of those, he immediately felt much more comfortable in the environment, and could find things quicker; ultimately, he kept using the program.
I feel like we should do that for Drupal ;)
We should, but this is summer of *code*
So we need to talk about what API-level changes we can make in order to make such a system easier to implement. Making tutorials and videos is unfortunately outside the scope of what SoC projects can be.
I just posted this issue
I just posted this issue http://groups.drupal.org/node/9842
Maybe it's something that could be done/incorporated as part of this?
Lots of good ideas here...
Let's try flushing this out into a project proposal. :)
Proposal proposal...
Staring with some of the things here and some thinking and discussion here's a proposed proposal for a coding project:
Drupal's help system is fairly incomplete. At drupalcon there were many examples where the lack of a help system contributed to its usability woes. This project aims to enhance Drupal's help system through a pluggable, extensible help system API.
Drupal Help should:
Difficulty: Medium
Mentors: SIGN UP HERE
--
Blog: Adding Understanding | Drupal Developer Search | Drupal Services: Brauer Ranch
--
Blog: Joshua Brauer dot com
similar proposal
Moving a similar student proposal here for wider viewing:
The help text all over the Drupal administration, to much extent, mainly remains a part to boast about as a feature. The help text is unable to provide immediate help on common implementations. It provides an overview of the terminology used and possible features on a administration page/form.
For Google SOC this year, I'm proposing a revamp of the Help System in Drupal. We currently provide an overview of features on that particular page, but not answers to commonly asked questions or attempted implementations. Read on for my proposed goals targeting this.
Infrastructure for help system to refer from external sites.
Unbind the help material from the content of a page. Theme designers shall be able to request the help material on a particular part of a page using a themed $help PHPTemplate variable. Some of the possible places for help material can be:
Revamped Help page in administration.
Basically, the more in-depth articles are handbook tutorials, available quickly to the user within the administration pages. Maybe, instead make the book.module compatible as a registry. The help on the top of a page can link to contextual help topics after a quick and dirty search. There's also room for a separate help file for modules like example.help which may contain help material. But then it's going to implement hooks using PHP, so more or less it can be implemented from within the module itself. Maybe it can stay as optional to keep the help text clutter separate from actual code.
New comers to Drupal are unable to put in the right keywords for searching a particular way of various common tasks, or simply they get lost. Such a revamp can mean a lot when targeted at new administrators/adopters who tend to learn as they use it.
--
Blog: Adding Understanding | Drupal Developer Search | Drupal Services: Brauer Ranch
--
Blog: Joshua Brauer dot com
Well, this was a student proposal..
We can't grab student proposals and use them on our ideas list. ;)
However, I'm going to go ahead and put your text up, as it sounds pretty good, and will at least get people started.
I wasn't entirely sure what to do here....
It started as a community proposal and a similar student proposal was submitted... should we not post it on d.o and leave it to the student who posted it? I don't want to be unfair to anyone..
--
Blog: Adding Understanding | Drupal Developer Search | Drupal Services: Brauer Ranch
--
Blog: Joshua Brauer dot com
I agree
This was a community proposal. Another student cannot submit a practically identical idea and expect the entire proposal to be reserved for them. This belongs on d.o.
I would like to tackle this
Hi everyone,
My name is Rohan Roy and I'm a relatively new user of Drupal. However, I come from an extensive PHP/C++ background and would love to tackle this issue. I'm somewhat overwhelmed with all the discussion going on about this, where do I go to submit a proposal to work on this specific issue?
Thanks!
-Rohan.
Please see
Please see http://groups.google.com/group/google-summer-of-code-announce/web/guide-... for instructions on how to apply. Glad to see some more interest in this!
Cool
This is a proposal that deserves some love :)
You only have 2.5 days left till the deadline, so my advice is that you talk to developers about this project sooner than later and get feedback on your application. You'd want it to be as good as possible, and it's not always clear what they'll be expecting.
See also HOWTO: Write a Summer of Code application.
The best of luck! :)
Excellent! As well as those
Excellent!
As well as those links, you can try on #drupal in irc.freenode if you have any quick questions about this.
Unfortunately with School I
Unfortunately with School I haven't been able to discuss this proposal as much as I would have liked too, but I have chosen to send in an application anyway. I think with what I've read both here and related pages, and also reading through the Drupal help files (and struggling to understand them, before having discovered those awesome handbooks on d.o,) I can submit an application somewhat tuned to what the community needs and desires.
The deadline is today! Wish me luck!