270 likes | 363 Vues
Join us in improving the user experience of Sakai, uPortal, Kuali Student, and Moodle through cross-project collaboration on new UI development tools and social community building efforts. Explore our design deliverables and technology to get involved.
E N D
uPortal and the FLUID Project Colin Clark FLUID Project Technical Lead ATRC, University of Toronto
Summary • Project goals and philosophy • Who is involved? • Design deliverables • Technology • Timelines and first steps • How to get involved • Discussion
The Context for FLUID • Poor usability & accessibility are a significant barrier for community source • Now is the time to address the concerns of our communities • Our goal is to incrementally improve the overall user experience of Sakai, uPortal, Kuali Student, and Moodle
FLUID in Community Source • Cross-project collaboration • Take a holistic approach by combining both technology and UX design • A two-fold path: • Social: build a community around UX • Technical: new UI development tools
Who is Involved? • Partnership among several universities and corporations • Toronto, UBC, UC Berkeley, York, Cambridge, and others • IBM, Sun, and Mozilla Foundation • Broad range of experience
Design Deliverables • Start with heuristic and usability reviews • Baseline for usability and accessibility • Know where we need to improve • Prioritize the pain points • Designer’s Toolkit: shared design resources • Personas and profiles • Scenarios • UI Design patterns • U-Camps • Iterative UI design and testing
Presentation Technologies • The last thing community source needs is yet another presentation technology • To be different, the technology needs to be fundamentally driven by user needs • FLUID will integrate with the best existing technologies
What are we going to build? • A living library of flexible UI components that can be used across applications • A new component framework built specifically to improve usability • Easy to wire up new components or customize properties of existing ones • Components are more than widgets
FLUID in a Portal Environment • Components capture recurring patterns • Reuse: UI layer consistency • Can be reused across different portlets • Build FLUID into cross-cutting areas such as portal navigation • Personalization: UI customizability for institutions and individuals • Focus on JSR-168/286 and uP3 framework
A bit about the technology • Unique challenge: how to enable support for very diverse presentation technologies? • Based on JavaScript, DHTML, and AJAX • Thin binding layer between client and RESTful, largely stateless server • Also advanced customization based on user preferences
FLUID Accessibility • AJAX will be accessible • it’s just a matter of time • ARIA: Accessible Rich Internet Applications (W3C) • AccessForAll for component metadata • Ongoing toolkit accessibility support • Dojo, YUI, others? • Design specific alternatives • FLUID: Accessibility from the ground up
Ideas for Components • Resource organization: • Drag and drop • Folders and hierarchies • Re-ordering and rearranging items • Navigation: • Breadcrumbs • Paging • Affordances for external content • Composite, domain-specific: • Users, groups, permissions • Calendars • Add your suggestions here
Flexibility & Customization • FLUID will be a highly flexible UI layer • At configuration-time: • Appearance, branding, style, page text • Locale, reading level, density • Functionality and user experience • At run-time: • Swap in accessible controls • Re-styling for higher contrast, etc. • Components built for specific disciplines or user needs
Core Architecture • Component framework • Repository of shared components • Semantics and specifications • Integration
Component Framework • Component model and APIs • JavaScript, CSS, HTML • Component container • JavaScript, AJAX toolkit integration • Runtime Transformation Engine • Finds and aggregates alternatives • Server-side binding layer • REST-based specification + implementation
Integration • Early and often • Heuristics to measure improvements • Project integration as soon as possible • Requires regular collaboration with you! • Litmus test of project usefulness
Criteria for Initial Components • Align with project needs/priorities • Simple, known design • Complex technically • Test AJAX accessibility • Generalizable • Addresses “pain point” • Accessible alternatives • Learn early!
Milestones & Short Term Goals • Choose technology frameworks: May • Evaluate technology in practice • Develop real components with candidate technology • Create prototype image gallery components • Design, develop, integrate, test, iterate • Create accessible alternatives or equivalents • Find other components to get started with • Aim for a demo at the June conferences • JA-SIG • Sakai
First Component: Drag and Drop • Image Gallery: a mini iPhoto for the Web • Currently a simple tool written in RSF • Some clear UX problems to solve • No way to re-order or sort images in albums • Plans • Build components for reorganizing images • Move to JSR-168 • Create accessible equivalents • Test in Sakai and uPortal
DnD Accessibility • What does accessibility mean here? • Keyboard access • Low vision • Single switch/on-screen keyboard • Focus on the goal, not the task • Re-ordering images • Doesn’t necessarily look like DnD • What alternatives are available on the desktop? • Cut and paste, etc. • We’re starting on research and testing to find out the best alternative solutions
Ideas for uPortal Starting Points • Jen’s drag and drop preferences? • Help with interaction design & testing • Improvements to tab editing • Refactor into FLUID components • Accessibility support & alternatives • uP3 framework? • Administrative tools • Other interfaces Eric & co. are working on
Summary • The FLUID Project is a reality: www.fluidproject.org • Design and development work is ramping up • Goal: incremental, achievable improvements • We’re here to help with your work • Join our community, we need your input!
Questions & Discussion • Ideas for starting points in uPortal • Individual portlets • uP3 framework • Challenges of AJAX in portlets • AJAX toolkit preferences? • Architectural suggestions