1 / 90

Yahoo! Experiences with Accessibility (a11y), DHTML, and Ajax in Rich Internet Applications

Yahoo! Experiences with Accessibility (a11y), DHTML, and Ajax in Rich Internet Applications. Nate Koechley nate@koechley.com http://nate.koechley.com/blog. The Ajax Experience Boston, Massachusetts 2006.10.24. Hello, World. Nate Koechley Charter member of Web Development team

naiya
Download Presentation

Yahoo! Experiences with Accessibility (a11y), DHTML, and Ajax in Rich Internet Applications

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Yahoo! Experiences with Accessibility (a11y), DHTML, and Ajax in Rich Internet Applications Nate Koechley nate@koechley.com http://nate.koechley.com/blog The Ajax Experience Boston, Massachusetts 2006.10.24

  2. Hello, World • Nate Koechley • Charter member of Web Development team • In the trenches and in management • Yahoo! User Interface (YUI) Library team • Senior Front-End Engineer, Technical Evangelist, Design Liaison, YUIBlog Editor • Responsible for Yahoo! Browser Support specs • Role: Strategy and Direction

  3. What’s Happening?

  4. Browser vs. Desktop

  5. Web 1.0 vs. Web 2.0

  6. “Getting It Right The Second Time” – matt sweeney

  7. Getting it Right the Second Time • Use technology as designed H1, LI, P • Not corrupt layers of the stack Bad: class=“red-button” and href=“#” • Create platforms. Evolvability • Encapsulation, Flexibility, Mashups, Services, Portability • Preserve opportunity & availability

  8. How do you move to RIAs?

  9. Learn from Desktop History Adapted from Alan Cooper’s “About Face 2.0” Book

  10. Tree Control Slider The Yahoo! User Interface (YUI) Library Calendar Control Menu Control [idioms] AutoComplete [compounds] Logger Control DHTML Windowing Animation Drag & Drop [primitives] Connection Manager (Ajax) Event Utility Dom Collection Loader CSS Reset, Fonts, Grids

  11. Yahoo! is Hiring Josie Aguada: jaguada@yahoo-inc.com Usual suspects: JavaScript, PHP, CSS, HTML, ActionScript…

  12. Definitions

  13. Definitions:DHTML / Ajax • Is NOT a specific technology

  14. Definitions:DHTML / Ajax • Is NOT a specific technology • Is NOT inherently inaccessible

  15. Definitions:Rich Internet Applications (RIAs) • RIAs are: • web apps with features and functionality of traditional desktop applications • can be created in various languages: Flash, JavaScript, Java • today’s talk is focused on JavaScript RIAs

  16. Definitions:Accessibility • Accessibility is: • “A general term used to describe the degree to which a system is usable by as many people as possible without modification” (cite: wikipedia) • Often, our focus is on enabling screen-readers specifically • However, the resulting work in generally more far-reaching

  17. Accessibility = Availability Accessibility is Availability

  18. Accessibility = Availability Accessibility is Availability

  19. Accessibility = Availability Accessibility is Availability

  20. “Rich” isn’t new, so what about desktop accessibility?

  21. Accessibility on the Desktop • OS provides A11y API • Assistive Technology talks to OS API • Result: nearly ubiquitous a11y

  22. Microsoft’s Active Accessibility • Microsoft’s Active Accessibility 2.0 (MSAA) is • a COM-based interface/technology • dynamic-link libraries incorporated into OS; • provides reliable methods for exposing information about user interface elements.

  23. Sun’s Java Access Bridge • Sun’s Java Access Bridge • Bridges Win API and the Java Accessibility API, and is implemented in the Java Foundation Classes (JFC) Swing user interface components. • Contains "native methods“ – some Class code is supplied by a Windows DLL

  24. Accessibility Toolkit for Linux (ATK) • Accessibility Toolkit (ATK) refers in particular to the GNOME ATK. • Developer toolkit allows programmers to use common GNOME accessibility features in their applications. This includes such features as high-contrast visual themes for the visually-impaired and keyboard behavior modifiers (e.g. sticky keys) for those with diminished motor control.

  25. So desktopaccessibility is nearly ubiquitous, but what about web accessibility?

  26. Accessibility on the Web (1) • Some information is provided to the desktop API • The Document Object Model (DOM) provides static information via semantic elements and attributes • Form elements announce focus (sometimes)

  27. http://www.w3.org/Consortium/Points/ “One of W3C's primary goals is to make these benefits available to all people, whatever their hardware, software, network infrastructure, native language, culture, geographical location, or physical or mental ability. “

  28. Accessibility on the Web (2) • So the picture isn’t fully bleak … but the depth of necessary information is missing: • Role, state, actions, caret, selection, children, relations, changes… • Input and output communication is missing too: • Keyboard, focus, blur, change, updates. • Clunky, see data table and speadsheets

  29. So how can we move forward?

  30. Characteristics of Techniques • Don’t make it worse • Provide alternatives • Learn from other technologies • Prepare for when a11y tech improves • Support improvement of a11y tech

  31. Four Techniques – Use Them All • Standards-based development • Redundant interfaces • Faithful and Predictable Ports • WAI ARIA aka “Accessible DHTML”

  32. Don’t miss the opportunity Standards-Based Development

  33. Approach 1:Standards-Based Development • Overview and Definition • Create and stand upon a sstrong foundation • Subsequent layers enhance meaningful and structured markup • Progressive and unobtrusive enhancement • Don’t contaminate the neighborhood • Be generous

  34. Standards-Based DevelopmentExample: Y!News Tab Panel • Example: Tab-Panel box: complete

  35. Standards-Based DevelopmentExample: Y!News Tab Panel • Example: Tab-Panel box: no CSS

  36. Standards-Based DevelopmentExample: Y!News Tab Panel • Example: Tab-Panel box: no JavaScript

  37. Standards-Based DevelopmentExample: Y!News Tab Panel • Notice: • Tab box is really anchored links and lists – well marked up content, available to all • Unobtrusive JavaScript doesn’t Hijax links when it shouldn’t • Stretching semantics to provide clues • Microformats enrich date, and provide predictable hooks for add-ons

  38. Standards-Based DevelopmentEx: Y!Photos Ratings & Tags http://nate.koechley.com/talks/2006/10/ajax_experience/RIA%20Accessibility/photos-nocss.avi

  39. Standards-Based DevelopmentExample: Y!Games http://nate.koechley.com/talks/2006/10/ajax_experience/RIA%20Accessibility/games-nav.avi

  40. Standards-Based DevelopmentExample: Y! Home Page http://nate.koechley.com/talks/2006/10/ajax_experience/RIA%20Accessibility/da11y-fp-searchtabs.avi

  41. Standards-Based DevelopmentBenefits • Should be doing this regardless • “With the grain” of web technologies • Truly available to all • The foundation of better things • A step toward a semantic web • Here to stay (10+ years)

  42. Standards-Based DevelopmentDrawbacks • Doesn’t solve every problem • Perceived overhead • Unobtrusive JavaScript and Hijax are still less familiar techniques • Be careful not to step on event handlers • Only trap clicks when appropriate • Server must reply to both partial and complete requests from the client

  43. Offer flexible interactions Redundant Interfaces

  44. Approach 2:Redundant Interfaces • Overview and Definition • Multiple means of input • GUI input vs. char input • Direct movement of objects vs. configuration-based movement • Plain text vs. Auto Complete • Tab vs. Arrow Keys

  45. Approach 2:Redundant Interfaces • Overview and Definition • Multiple means of manipulation • Keyboard vs. Mouse • Esc vs. Cancel • Drag-drop vs. form-based • Ajax vs. HTTP

  46. Redundant InterfacesExample: 1D Slider http://developer.yahoo.com/yui/examples/slider/index.html • Simple support for vertical and horizontal sliders as a direct-manipulation alternative to input boxes • Enhances the basic input box, but need not replace it. http://nate.koechley.com/talks/2006/10/ajax_experience/RIA%20Accessibility/Slider-basic.avi

  47. Redundant InterfacesExample: 2D Slider http://developer.yahoo.com/yui/examples/slider/rgb2.html

  48. Redundant InterfacesExample: Date Selector http://developer.yahoo.com/yui/examples/calendar/intl_japan/

More Related