Title: Yahoo!%20Experiences%20with%20Accessibility%20in%20DHTML%20and%20RIA
1Yahoo! Experiences with Accessibility in DHTML
and RIA
Web Builder 2.0 Las Vegas
Nate Koechley Senior Engineer Designer, Yahoo!
User Interface (YUI) Library Team Platform
Engineering Group Yahoo! Inc. Slides http//na
te.koechley.com/talks/2006/12/webbuilder/ Contact
http//yuiblog.com natek_at_yahoo-inc.com http//dev
eloper.yahoo.com/yui
2Browser vs. Desktop
3Web 1.0 vs. Web 2.0
4 5Study the History of the Desktop
- Adapted from Alan Coopers About Face 2.0 Book
6idioms
Slider
Tree Control
AutoComplete
TabView
Menu Control
Calendar Control
compounds
Logger Control
DHTML Windowing
Drag Drop
Animation
Connection Manager (Ajax)
Event Utility
Dom Collection
CSS Reset, Fonts, Grids
7Some Definitions
8Definitions DHTML / Ajax
- Its NOT a specific technology
9Definitions DHTML / Ajax
- Its NOT a specific technology
- Its NOT inherently inaccessible
10Rich Internet Applications (RIAs) are
- Features and functionality of desktop apps online
- Built with Flash, JavaScript, Java, etc
11Accessibility is
- Degree to which a system is usable without
modification - (wikipedia)
12Accessibility Availability
Accessibility is Availability
13Accessibility Availability
Accessibility is Availability
14Accessibility Availability
Accessibility is Availability
15- How is Richness made accessible on the desktop?
16Accessibility on the Desktop
-
- OS ? API ? AT
- Result Nearly ubiquitous accessibility.
17- If it works on the desktop, whats the problem on
the Web?
18The Bad News
- Only some info is passed to desktop API
- Yes
- Basic semantics (lists, headers)
- Basic i/o (page load, links)
- Basic interaction (form elements)
- No
- Compound elements (tab panels)
- Delayed and asynchronous i/o (ajax)
- Complex and detached interactions (drag-n-drop)
19The Good News
- One of W3C's primary goals is to make these
benefits available to all people, whatever their
. . . physical or mental ability. - http//www.w3.org/Consortium/Points/
20- So how do we move forward?
21Characteristics of Techniques
- Dont make it worse
- Provide options
- Using existing conventions
- Move in the right direction
- Support emerging a11y tech
22Four Techniques Use Them All
- Standards-based Development
- Redundant Interfaces
- Predictable Ports
- W3Cs WAI ARIA
- (aka Accessible DHTML)
23- Standards-Based Development
dont miss the opportunity
24(No Transcript)
25Getting It Right The Second Time
matt sweeney
26Getting it Right the Second Time
- Use technology as designed
- H1, LI, P
- Dont corrupt layers of the stack
- Bad classred-button
- Bad href and hrefjavascript
- Create platforms and Evolvability
- Encapsulation, Flexibility, Mashups, Services,
Portability - Preserve opportunity availability
27Approach 1Standards-Based Development
- Build a strong foundation
- Progressive enhancement
- Unobtrusive enhancement
- Dont pollute
- Best chance to be generous.
28Standards-Based DevelopmentExample Y!News Tab
Panel
- Example Tab-Panel box complete
29Standards-Based DevelopmentExample Y!News Tab
Panel
30Standards-Based DevelopmentExample Y!News Tab
Panel
31Standards-Based DevelopmentExample Y!News Tab
Panel
- Embrace simplicity
- Anchored links and lists
- meaningful and available to all
- Links always work
- sometimes Hijax with Unobtrusive JS
- Stretching semantics to provide clues
- Microformats
32Standards-Based DevelopmentEx Y!Photos Ratings
Tags
http//nate.koechley.com/talks/2006/12/webbuilder/
ria_accessibility/photos-nocss.avi
33Standards-Based DevelopmentExample Y!Games
http//nate.koechley.com/talks/2006/12/webbuilder/
ria_accessibility/games-nav.avi
34Standards-Based DevelopmentExample Y! Home Page
http//nate.koechley.com/talks/2006/12/webbuilder/
ria_accessibility/da11y-fp-searchtabs.avi
35Standards-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)
36Standards-Based DevelopmentDrawbacks
- Doesnt solve every problem
- Perceived overhead
- Unobtrusive JavaScript and Hijax are still less
familiar techniques
37offer flexible interaction
38Approach 2Redundant Interfaces
- GUI and character input
- Direct and configuration-based
- Static entry and AutoComplete
- Tab and Arrow Keys
39Approach 2Redundant Interfaces
- Keyboard and mouse
- Esc. and Cancel
- Drag-drop and multi-page
- Ajax and HTTP
40Redundant InterfacesExample 1D Slider
- http//developer.yahoo.com/yui/examples/slider/ind
ex.html - Sliders are redundant to text inputs.
- Progressively enhances direct manipulation.
http//nate.koechley.com/talks/2006/12/webbuilder/
ria_accessibility/Slider-basic.avi
41Redundant InterfacesExample 2D Slider
- http//developer.yahoo.com/yui/examples/slider/rgb
2.html
42Redundant InterfacesExample Date Selector
- http//developer.yahoo.com/yui/examples/calendar/i
ntl_japan/
43Redundant Interfaces Example YUI Menu from
Markup
- http//developer.yahoo.com/yui/examples/menu/leftn
avfrommarkup.html
44Redundant Interfaces Example YUI Panel from
Markup
- Motion Protection
- http//developer.yahoo.com/yui/examples/container/
panel-aqua.html - Drag and Drop Constrained to Viewport
- Technology Protection
- http//yuiblog.com/blog/2006/09/22/yahoo-devday-sc
hedule/ - without JS and CSS
- without JS or CSS
- with Keyboard
- with Mouse
45Redundant Interfaces Example Yahoo! Homepage
http//nate.koechley.com/talks/2006/12/webbuilder/
ria_accessibility/frontpage-nojs.avi
46Redundant InterfacesEx Drag-n-Drop vs. Edit Flow
http//nate.koechley.com/talks/2006/12/webbuilder/
ria_accessibility/my-change-layout.avi
47Redundant InterfacesBenefits
- Better for everybody
- Let users choose
- Keyboard is important for ALL users
- Works today
48Redundant InterfacesDrawbacks
- Insufficient communication
- Not unified
- Requires two experiences
- But not 2x effort!
- Can actually benefit development process
49- Faithful and
- Predictable Ports
give users all of what they expect
50Faithful and Predictable PortsFaithful and
Predictable Ports
- Support wholesale transfer of skills
- Learnability
- Discoverability
- Capture this moment in time
- Completeness is critical
51Faithful and Predictable PortsExample Full
Selection Model
http//nate.koechley.com/talks/2006/12/webbuilder/
ria_accessibility/photos-selection.avi
52Faithful and Predictable PortsExample Full
Keyboard Control
53Faithful and Predictable PortsExample Full
Keyboard Control
- Example
- Slider with
- keyboard control
http//nate.koechley.com/talks/2006/12/webbuilder/
ria_accessibility/slider-keyboard.avi
54Faithful and Predictable PortsExample Full
Keyboard Control
55Faithful and Predictable PortsBenefits
- If we match users expectations, theres a quantum
leap in discoverability, comfort, and
expectations for free.
56Faithful and Predictable PortsDrawbacks
- Isnt always trivial
- (but its build into YUI)
57W3C Accessible DHTML
58- Rich Interfaces Require
- Sophisticated Definitions
we cant act on information we dont have
59- AT requires information about the semantics of
specific portions of a document in order
to present those portions in an accessible form.
http//www.w3.org/2006/09/aria-pressrelease.html
60Approach 4 ARIA
- Communicate directly with desktop API
- IBM, now in W3C and open
- http//www.w3.org/TR/aria-roadmap/
- http//www.w3.org/WAI/PF/adaptable/HTML4/embedding
-20060318.html - Embeds role and state metadata
- Uses namespace extensions to XHTML 2, but
- Techniques allow most functionality in HTML 4
documents, as of today
61Whats the Virtual Buffer?
62The Virtual Buffer and Script
- Handles basic script
- click, keypress, mouseover
- For these, new content is exposed
- Ajax content isnt natively exposed in reaction
to these events - For example, doesnt know onreadystatechange
63ARIA Architecture Overviewhttp//www.w3.org/WAI/P
F/roadmap/
64Role Taxonomy http//www.w3.org/TR/aria-role/
- Base Roles
- Input, textbox, select, range, section,
sectionhead, window - Widget Roles
- Link, combobox, option, checkbox,
checkboxtristate, radio, radiogroup, button,
menuitemradio, menuitemcheckbox, progressbar,
secret, separator, slider, spinbutton, textarea,
textfield, tree, treegroup, treeitem, status,
alert, alertdialog, dialog - Structural Roles
- Presentation, application, document, group,
imggroup, directory, region, liveregion, log,
grid, gridcell, tabcontainer, tab, tabpanel,
tablist, table, td, th, rowheader, columnheader,
list, listitem, menu, toolbar, menubar, menuitem,
breadcrumbs
65States and Adaptable Properties
Modulehttp//www.w3.org/WAI/PF/adaptable
- checked
- iconed
- disabled
- readonly
- multiselectable
- domactive
- zoom
- expanded
- selected
- pressed
- important
- required
- haseffect
- valueNew
- valueMax
- valueMin
- step
- invalid
- describedby
- labeledby
- hasparent
- haschild
- haspopup
- alternatestyle
- tabindex
- flowto
- flowfrom
- controls
- controlledby
- subpageof
66ARIAExample XHTML
lthtml xmlnswairole"/w3.org/2005/01/wai-rdf/GUIRo
leTaxonomy" xmlnswaistate/w3.org/2005/07/aaa"
gt ltspan id"slider" class"myslider" role"wai
roleslider" waistatevaluemin"0" waistatevalu
emax"50" waistatevaluenow"33"gt lt/spangt
67ARIAExample HTML 4
ltscript type"text/javascript" src"enable.js"gtlt/s
criptgt ltspan id"slider" classfoo bar
slider valuemin-0 valuemax-50
valuenow-33" tabindex"0" gtlt/spangt
68ARIA Benefits
- Uses well-understood, powerful desktop API
- Map controls, events, roles states directly
- Standard and predictable Progressive Enhancement
69ARIA Drawbacks
- Requires recent-versions of AT
- Mozillas Firefox 1.5 only today
- But good things happening
- XHTML required for full power
70We Need Your Help
- This is an important development
- Thanks are due to IMB/Mozilla/W3C
- Becky Gibson
- Aaron Leventhal
- Our adoption
- Multiplies their efforts
- Reduces costs for small AT companies
71- Availability and
- Browser Support
Graded Browser Support
72Binary Browser Support
- Do I need to support ___ on this project?
73Graded Browser SupportTwo Key Ideas (1)
- 1) We need a realistic definition of Support
- Support does not identical.
- Support means content is available
- Expecting two users using different browser
software to have an identical experience fails to
embrace or acknowledge the heterogeneous essence
of the Web.
74Graded Browser SupportTwo Key Ideas (2)
- 2) Support is not binary. There are grades of
support.
75http//developer.yahoo.com/yui/articles/gbs/gbs.ht
ml
76Graded Browser SupportGeneral Best Practice
- Three Grades of Browser Support
- C-grade support (core support, 2)
- A-grade support (advanced support, 96)
- X-grade support (the X-Factor, 2)
77http//developer.yahoo.com/yui/articles/gbs/gbs_br
owser-chart.html
78 79Final Thoughts
- Its a win-win opportunity, and well get there
fastest together.
80Thank you.
- natek_at_yahoo-inc.com
- http//nate.koechley.com/talks
- http//developer.yahoo.com/yui
- http//yuiblog.com
- http//nate.koechley.com/blog
- Photo Credits
- http//www.flickr.com/photos/jacqueline-w/56107224
/ - http//www.flickr.com/photos/grimreaperwithalawnmo
wer/191890428/ - http//www.flickr.com/photos/jasonmichael/4126695/
81- Were hiring!
- (Josie Arguada jaguada_at_yahoo-inc.com)
natek_at_yahoo-inc.com http//nate.koechley.com/talks
82natek_at_yahoo-inc.com http//nate.koechley.com/talks
83natek_at_yahoo-inc.com http//nate.koechley.com/talks