eZ Publish Admin redesign - Some suggestions

I've covered two larger topics in other blog posts (Admin interface users & Dashboards) so in this post I'm going to cover a number of smaller suggestions I have for the Admin Interface refresh. 

Some of the items have been suggested by others and been added to the specification - I hope I've noted these.

Improve underlying HTML

Damien has already mentioned linking labels with their related input via the for attribute.  I wasn't aware that there was already an issue for this but I made a start of adding a Accessibility & Usability Improvements project that currently "associates labels with specific form elements, adds "required" class to required input elements to allow attachment of javascript validation".

The project looked at "fixing" the datatype edit templates and the modifications can be viewed in the CHANGELOG.

Specific changes I'd like to see in the underlying HTML are:
  • Labels linked to input fields
  • Labels only used when associated to an input field
  • Fieldsets & legends used to group associated input fields
  • A class applied to input field that are required
  • A class applied to input fields based on datatype
  • Size attributes removed from input fields and CSS used to set the size

These changes will not only improve the accessibility of the admin interface but also improve the front end as well.

Javascript validation

I'm not sure there is any Javascript validation of forms in eZ Publish. Adding required input validation is relatively easy especially based on the suggestions above as this would allow for simply selecting input elements with the "required" class and ensuring they contain content before the form was submitted.

While maybe not exactly matched to eZ Publish needs the JQuery validations plugin is a good example of how this can be done.

The eZUser datatype is a great example where both Javascript and AJAX can be combined to improve usability. The validation rules ( from when I put together the Accessibility & Usability Improvements project1) is:

Password: If [UserSettings] GeneratePasswordIfEmpty = true empty passwords are allowed and one will be generated if the password is blank.
Password Length:  Stored in [UserSettings] MinPasswordLength or default to 3 if not present (in ezuser datatype)
Password cannot be set to "password"
Passwords must match

Email: Must be valid email
Email: If the email can be used for Authentication the email address must be unique

Login: must be unique
Login: cannot be empty

This is a perfect opportunity to utilise Javascript to ensure the validation rules are followed and that Email and Login are unique using AJAX.

Primary and Secondary Actions

Luke Wroblewski begins the "Primary and Secondary Actions" chapter of his book Web Form Design:
Labels provide the questions that forms ask people. Input fields give people a way to answer those questions. Neither of these items, however actually lets people complete a form.  That singular responsibility rests with actions.
Many pages in the admin interface have lots of form buttons. Currently they are either:

Colour

Meaning

Examples

Blue
Main Function
Send for publishing, Store Draft, Discard draft
Dark Grey
Supplementary Function
Add object, Disable Editor
Light Grey
Disabled
Remove Object (Related Object attribute where there's not an existing association)

By default a content edit page has (at least) 5 main function buttons, all coloured blue.  This makes it extremely difficult to scan for the correct path to complete the task.

Most forms have a primary and secondary action. The primary action being the "save", "continue" or" "I'm finished here, what's next?" button, they enable completion.  Secondary actions are those where the user wants to do the opposite - "Cancel", "Go Back", "Get me outa here!".

For example when editing content in eZ Publish users are most likely to complete the form by clicking on either "Send for Publishing" (primary) or "Discard Draft" (secondary).  These buttons need to stand out on the page so that they are immediately obvious and the user doesn't have to search for them.

Suggestions:
  • Ascertain and clearly differentiate primary and secondary action buttons on each page
  • Apply consistent styling to primary and secondary buttons through out the site
  • If there is no obvious primary and secondary actions don't use them (e.g. cache management )
  • Use existing colour scheme (or similar) for all other buttons.  These are less used and it's OK for users to have to scan the page to find them.
Damien has a similar suggestion:
Buttons in the admin interface should be of a different colour depending on the action they trigger. For instance cancel buttons can be orange, publish buttons blue, remove buttons red, ... The main key here is to be consistent over all the interface.
This was also added to the specification (#1 as a "Could").

My concerns with this is that some pages may end up looking like some has dropped skittles over it. Some pages contain too many actions that may be coloured. I believe that this would limit the ability of users to quickly find and complete their desired action.

Ability to add help text

The ability to add help text for each attribute of a content class will be a major improvement.  This not only allows for better interfaces for users but will save an incredible amount of time for developers who currently have to customise each form to include this type of information.

Note: This has been added to the specification but I'd like to see it a little higher up the list. Much more important than any drag and drop functionality IMHO!

Setup tab

The setup tab is the dumping ground of functionality that doesn't fit anywhere else. There are functions located under this tab what don't have anything to do with "Setup" e.g. Search statistics, Collected Information and URL Management.  I suspect that new users may have some trouble finding this functionality.

The Setup Tab also contains mix of functionality that Content Editors may require access to (the non setup one listed above are a good start as well as URL management translator and wildcards, and Global settings ) and others that they should not e.g. Cache management, Classes etc.

In fact unless the Content Editor has the ability to clear the cache (setup -> managecache) they'll see an error when visiting the setup tab.

Thinking about who is using the interface I'd suggest that the functionality that is available under the Setup Tab is split into Development setup tasks and Editor configuration tasks. Another way of thinking about this tasks that are performed during development and those that are performed during the day to day running of a site.

Suggestions:
  • Only the options that the current user has access to should be displayed (This is in the specification #1.5)
  • The Setup Tab link should go to a landing page that lists the tasks with a brief description of the functionality provided.
  • Group related functionality (put the URL alias management,  workflow links together)

Ability to use old interface

Pain of some level usually goes hand in hand with the introduction of change of any kind. I'd hope that along with the new interface there is  the ability for the old Admin interface to be used. The interface is one component of eZ Publish 4.3 but one that have a very big impact. 

The use of the new interface should not be a barrier to upgrading and taking advantage of the new features and bug fixes.

I know of at least one site that is still on eZ Publish 3.4 because the cost of retraining staff in the new interface was a significant project in itself! (The current interface was introduced in eZ Publish 3.5)

Christmas reading

I can't recommend enough Luke Wroblewski's book Web Form Design: Filling in the blanks. It's a must read if you are creating forms on the web.  It won't tell you how to create the perfect form but presents a number of best practices all backed up with research.

1 Since I reviewed these additional checks on the Login are allowed.

Comments

  1. Hi Bruce,

    its great to have your inputs and feedbacks !
    What if you would need to rank the big things you state here ? Do you think some are more important than others ?

    Cheers

    ReplyDelete
  2. Hi Roland

    This project it rather unique as unlike the usual functionally improvements and bug fixes that happen under the hood the results of this will be very apparent and effect all eZ Publish users.

    As I stated in an earlier blog post it's important to look at changes in terms of how they will improve task completion.

    In the same post I suggest that the functionality that is most used by content editors should be given a greater priority.

    I'm not sure that any of the items I've listed are that large. In fact fixing the HTML and the JS validation should be pretty straight forward and improve usability considerably.

    If there is anything I can do to assist in this process please drop me an email.

    Cheers
    Bruce

    ReplyDelete

Post a Comment

Popular posts from this blog

It's been a while since my last post...

eZ Publish Admin redesign - Dashboard = OpenSocial?