View
 

Panel

Page history last edited by Jörn Zaefferer 1 year, 8 months ago

type: widget

release: TBD

status: in development - GitHub branch: panel

documentation: N/A

demo: N/A

 

 


 

1 - Description:

 

A content grouping or panel is used to visually confine related information on a page or can act as a panel in an application UI. At the most basic, these include a bar with a title (B1). Links, buttons, icons can all be added to the bar (B2). The grouping bar itself can be make collapsable either horizontally (B2) or vertically (B3) which can be especially useful in a rich application with multiple panes and palettes.

 

Content Grouping examples:

 

 

 


 

2 - Visual Design:

 

 


 

 

3 - Functional Specifications/Requirements:

 

     (Detailed descrition of how the script will be structured: defaults, options, architecture, extensibility, etc.)

 


 

4 - Markup & Style:

 

4.1 Initial markup examples

 

Same as for the Accordion.

 

 

4.2 Recommended transformed HTML markup

 

Same as for the Accordion.

 

4.3 Accessibility recommendation

 

The experience for both sighted and visually impaired users should be as functionally similar as possible. The W3C Web Content Accessibility Group (WCAG) has outlined a set of four principles that must be met to ensure that content is accessible:

 

  • Perceivable — Information and user interface components must be presentable to users in ways they can perceive.
  • Operable — User interface components and navigation must be operable.
  • Understandable — Information and the operation of user interface must be understandable.
  • Robust — Content must be robust enough that it can be interpreted reliably by a wide variety of user agents, including assistive technologies. 

 

To accomplish these accessibility goals, our plugin should append several attributes and elements to the enhanced markup in addition to what's needed to visually collapse and expand the content area:

 

 

  • Wrap an anchor link element around the clickable heading to allow it to receive keyboard focus and be accessed with the Tab key
  • Append a span inside the clickable heading element immediately before the text label which contains the word "Show" followed by a single space if the content is hidden by default; when the content is shown, the script dynamically updates this word to "Hide." This span is intended only for screen readers to audibly describe the heading's function as a toggle link (i.e., "Show Details"), so it's hidden from standard browsers with absolute positioning and a large negative left value. Make this language configurable.

 

  • Assign ARIA attributes to the content panel to provide feedback to ARIA-enabled screen readers when it's hidden (aria-hidden="true") or visible (aria-hidden="false")

 

 

 

View this Filament Group Article on collapsible content to learn more:

http://www.filamentgroup.com/lab/expand_and_collapse_content_accessibly_with_progressive_enhancement_jquery

 

 

To view a demo of this proposed approach in action and test it on screen readers visit:

http://dwpe.googlecode.com/svn/trunk/collapsible/index.html

 

 

 

 

4.3 CSS & Theme

 

Same as for the Accordion.

 


 

5 - Latest version of plugin:

 

 

 

 

 

http://view.jqueryui.com/panel/tests/visual/panel/panel.html

 


 

6 - Open issues being discussed

 

Todos:

  1. Try to rewrite accordion, inhertiting from panel
    1. need to add keyboard handling and ARIA stuff to panel
  2. Review and write the spec
  3. Review section 4.3 - how different is that from Accordion?

 


 

 

 

 

Comments (13)

Igor said

at 7:06 am on Mar 13, 2009

I desided to move demo to Google Code.
http://code.google.com/p/ist-ui-panel/

kike sanjuanelo said

at 4:23 am on Nov 4, 2009

Nice plugin... one issue so far, If I set collapseSpeed to 0, the content does not unfold anymore...

Igor said

at 4:55 am on Dec 29, 2009

Um, that's somewhat expectable, I think. Set speed to zero and you won't move anymore.

kike sanjuanelo said

at 4:38 am on Nov 4, 2009

I found that contextBox.hide() must be changed to contentBox.toggle()... !

Igor said

at 4:57 am on Dec 29, 2009

Please, give me an example of what is going wrong with hide()?

kyprus said

at 1:06 pm on Jan 1, 2010

I'm not sure if this is due to a bug or my lack of CSS knowledge, but the panel doesn't expand if all the content if floated. Is there something I can do besides set heights?

Thanks

Igor said

at 7:05 am on Mar 2, 2010

You can try to add element with 'clear:both' right after your floating content.

Adrian Cox said

at 4:34 am on Apr 12, 2010

I'm trying to run some JavaScript after a panel is opened or closed, at present I'm using a not very nice workaround of putting a function callback in the slideToggle call within the source of the panel ui. I assume there is a cleaner way of doing this but have not had any success trying to add an event binding to the panel, any suggestions would be appreciated?

Igor said

at 10:42 pm on Apr 12, 2010

Current jQuery UI team panel implementation http://view.jqueryui.com/panel/tests/visual/panel/panel.html have no callbacks defined yet.
Draft panel from Labs http://jquery-ui.googlecode.com/svn/branches/labs/panel/ui.panel.js has 'fold' & 'unfold' callbacks.
I'll edit this page to prevent the late confusion.

aubrey@... said

at 5:40 pm on May 19, 2010

Is it possible to have the paneldock have a width? The same way if you have no applications in your taskbar, you still have a taskbar. it'd be a great option, and it wouldn't make the rest of the panels snap out to add that new UI element.

I tried setting a width on the panelDock, but the width only applied when there were panels minimized in the dock.

Igor said

at 9:56 am on May 20, 2010

The purpose of panelDock is solely to hold minimized sliding sideways panels . Taskbar is altogether different widget by design, that should rather be standalone.
You always can wrap panels in a div with fixed width as a kind of stack area for panels.

Drew H. said

at 10:17 am on May 29, 2010

I'm severely missing the point as to how this will wind up being different from accordion at current. It almost looks to me like you've got a mashup of an accordion and the portlets that are created as an example for sortability.

You don't have permission to comment on this page.