#11017: Tags MultiSelectionWidget w/scrollbar & checkboxes
-------------------------------------------+--------------------------------
 Reporter:  rmattb                         |        Owner:  RMattB
     Type:  PLIP                           |       Status:  new   
 Priority:  minor                          |    Milestone:  4.1   
Component:  User Experience and Interface  |   Resolution:        
 Keywords:                                 |  
-------------------------------------------+--------------------------------
Description changed by rmattb:

Old description:

> '''Proposer:''' Matt Barkau (RMattB)[[BR]]
> '''Seconder:''' David Glick[[BR]]
> [[BR]]
> == Motivation ==
> Plone currently utilizes the MultiSelectionWidget listbox for selecting
> tags (aka categories, keywords, DC subject) to apply to a content item.
> However, when users add more tags to an existing item, they often
> inadvertently remove existing tags, due to not knowing or forgetting to
> use the control/command key.  If a site contains more than 14 tags, users
> may not even see that other tags are already selected in the list below
> the box.  Further discussion of this usability issue is in the
> [http://plone.uservoice.com/forums/20503-plone-improvement-
> ideas/suggestions/227659-easier-keyword-tagging Plone improvement ideas
> forum] (currently ranked fifth).
>
> Since tag lists tend to be long, using MultiSelectionWidget checkboxes
> (instead of listbox) for this purpose would render pages rather long
> since there is no scrollbar, impacting usability.  HTML 4 offers no
> widget which combines the best of both approaches: a scrollbar and
> checkboxes.
>
> == Assumptions ==
> Future versions of Plone do not already improve this widget.
> Plone will continue to include jQuery.
>
> == Proposal & Implementation ==
> Since Plone includes jQuery, this PLIP proposes to improve the tags
> MultiSelectionWidget by adapting and maintaining a proven, GPL-
> compatible, accessible, and jQuery-based widget, which includes both a
> scrollbar and checkboxes.  This approach strives to be the least-invasive
> change that will make the user experience intuitive.
>
> Further suggestions are welcome, but based on a brief survey,
> [http://labs.abeautifulsite.net/projects/js/jquery/multiSelect/demo/ one
> project] appears to be a good starting point, with some refactoring for
> speed from [http://www.erichynds.com/jquery/jquery-multiselect-plugin-
> with-themeroller-support/ a derivative project].  Guidance from the
> community on implementation is much appreciated.
>
> This PLIP focuses on the implementation of the MultiSelectionWidget for
> ''tags'', but this is also be useful for any other areas in Plone also
> currently using the MultiSelectionWidget listbox.  For flexibility, this
> new widget could be registered in Plone as a new third variety of
> MultiSelectionWidget.
>
> == Deliverables ==
> What code and documentation needs to be produced?
>  * A registerable javascript
>  * A page template for the new MultiSelectionWidget variety
>  * An update to the edit view’s Categorization fieldset template to use
> this new widget variety
> Standard items:
>  * Unit tests & test buildout.cfg
>  * Localization:  No text changes to UI should be required.
>  * Documentation:  Existing UI has no on-page documentation (although
> maybe it should have).  Oddly, the Plone
> [http://plone.org/documentation/manual/plone-3-user-manual/adding-content
> /setting-basic-properties 3] and
> [http://plone.org/documentation/manual/plone-4-user-manual/adding-content
> /setting-basic-properties 4] end-user documentation on this doesn’t
> mention use of the control/command key for multiselection, but the
> screenshot would change.
>
> == Risks ==
> What are the risks of implementing this proposal?  If jQuery Tools later
> provides a similar widget, this work will not have been needed, although
> I’m not sure of the likelihood of this due to jQuery Tools’ intentional
> minimalism.
>
> What incompatibilities can it cause?  Non-JavaScript failover would be to
> existing widget.  Please advise of any other areas to consider.
>
> == Participants ==
> Who is signed up to do the work?
> Matt Barkau, RMattB  (collaboration welcomed)
>
> == Progress ==
> Is any of the work done already?  Not specifically implemented in Plone,
> but two variations on the functionality exist, linked above.
>
> Should there be a proof of concept?  A proof of concept will be the first
> step after discussion of this PLIP has reached consensus.

New description:

 '''Proposer:''' Matt Barkau (RMattB)[[BR]]
 '''Seconder:''' David Glick[[BR]]
 [[BR]]
 == Motivation ==
 Plone currently utilizes the MultiSelectionWidget listbox for selecting
 tags (aka categories, keywords, DC subject) to apply to a content item.
 However, when users add more tags to an existing item, they often
 inadvertently remove existing tags, due to not knowing or forgetting to
 use the control/command key.  If a site contains more than 14 tags, users
 may not even see that other tags are already selected in the list below
 the box.  Further discussion of this usability issue is in the
 [http://plone.uservoice.com/forums/20503-plone-improvement-
 ideas/suggestions/227659-easier-keyword-tagging Plone improvement ideas
 forum] (currently ranked fifth).

 Since tag lists tend to be long, using MultiSelectionWidget checkboxes
 (instead of listbox) for this purpose would render pages rather long since
 there is no scrollbar, impacting usability.  HTML 4 offers no intuitive
 widget which combines the best of both approaches: a scrollbar and
 checkboxes.

 == Assumptions ==
 Future versions of Plone do not already improve this widget.
 Plone will continue to include jQuery.

 == Proposal & Implementation ==
 Since Plone includes jQuery, this PLIP proposes to improve the tags
 MultiSelectionWidget by adapting and maintaining a proven, GPL-compatible,
 accessible, and jQuery-based widget, which includes both a scrollbar and
 checkboxes.  This approach strives to be the least-invasive change that
 will make the user experience intuitive.

 Further suggestions are welcome, but based on a brief survey,
 [http://labs.abeautifulsite.net/projects/js/jquery/multiSelect/demo/ one
 project] appears to be a good starting point, with some refactoring for
 speed from [http://www.erichynds.com/jquery/jquery-multiselect-plugin-
 with-themeroller-support/ a derivative project].  Guidance from the
 community on implementation is much appreciated.

 This PLIP focuses on the implementation of the MultiSelectionWidget for
 ''tags'', but this is also be useful for any other areas in Plone also
 currently using the MultiSelectionWidget listbox.  For flexibility, this
 new widget could be registered in Plone as a new third variety of
 MultiSelectionWidget.

 == Deliverables ==
 What code and documentation needs to be produced?
  * A registerable javascript
  * A page template for the new MultiSelectionWidget variety
  * An update to the edit view’s Categorization fieldset template to use
 this new widget variety
 Standard items:
  * Unit tests & test buildout.cfg
  * Localization:  No text changes to UI should be required.
  * Documentation:  Existing UI has no on-page documentation (although
 maybe it should have).  Oddly, the Plone
 [http://plone.org/documentation/manual/plone-3-user-manual/adding-content
 /setting-basic-properties 3] and
 [http://plone.org/documentation/manual/plone-4-user-manual/adding-content
 /setting-basic-properties 4] end-user documentation on this doesn’t
 mention use of the control/command key for multiselection, but the
 screenshot would change.

 == Risks ==
 What are the risks of implementing this proposal?  If jQuery Tools later
 provides a similar widget, this work will not have been needed, although
 I’m not sure of the likelihood of this due to jQuery Tools’ intentional
 minimalism.

 What incompatibilities can it cause?  Non-JavaScript failover would be to
 existing widget.  Please advise of any other areas to consider.

 == Participants ==
 Who is signed up to do the work?
 Matt Barkau, RMattB  (collaboration welcomed)

 == Progress ==
 Is any of the work done already?  Not specifically implemented in Plone,
 but two variations on the functionality exist, linked above.

 Should there be a proof of concept?  A proof of concept will be the first
 step after discussion of this PLIP has reached consensus.

--

-- 
Ticket URL: <http://dev.plone.org/plone/ticket/11017#comment:17>
Plone <http://plone.org>
Plone Content Management System
_______________________________________________
PLIP-Advisories mailing list
plip-advisor...@lists.plone.org
http://lists.plone.org/mailman/listinfo/plip-advisories

Reply via email to