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

Slides:



Advertisements
Similar presentations
ARIA Web Design and Development Patterns KEITH HAYS IT Accessibility Specialist CITES / ITaccess
Advertisements

Sriram DRUPAL GCI What is a drop down menu? A drop down menu is a menu of options that appears when an item is selected with a mouse. The item.
Antranig Basman, CARET, University of Cambridge Aaron Zeckoski, CARET, University of Cambridge Josh Ryan, Arizona State University Colin Clark, Adaptive.
Understand Web Page Development Software Development Fundamentals LESSON 4.1.
Yahoo! Confidential1 Yahoo! Experiences with Accessibility, DHTML, and Ajax in Rich Internet Applications CSUN, March 23 rd, 2006 Victor TsaranVictor Tsaran.
February 11, 2007 Can Ajax be OS for the Browser? Kevin Hakman Co-Founder General Interface Ajax Toolkit Director, Developer Evangelism TIBCO Software.
® IBM Software Group © 2007 IBM Corporation Accessible Rich Internet Applications and Online Services Rich Schwerdtfeger IBM Distinguished Engineer, Chair.
Project 1 Introduction to HTML.
© 2007 IBM Corporation IBM Emerging Technologies Enabling an Accessible Web 2.0 Becky Gibson Web Accessibility Architect.
AJAX Presented by: Dickson Fu Dimas Ariawan Niels Andreassen Ryan Dial Jordan Nielson CMPUT 410 University of Alberta 2006.
AJAX & By – Anupama Sharma. Defining Ajax Ajax isn’t a technology. It’s really several technologies, each flourishing in its own right, coming together.
Microsoft ASP.NET AJAX - AJAX as it has to be Presented by : Rana Vijayasimha Nalla CSCE Grad Student.
The W3C Web Accessibility Initiative (WAI) Inclusive learning through technology Damien French.
October 2, 2007IEEE IPCC2007 Building Communication With Access for All Richard B. Ells Senior Webmaster University of Washington
Chapter 1 Getting Started With Dreamweaver. Explore the Dreamweaver Workspace The Dreamweaver workspace is where you can find all the tools to create.
October 16, 2007HighEdWebDev2007 Single Source Website for Full Spectrum Access Rick Ells University of Washington
ITM352 Javascript and Dynamic Web Pages: Client Side Processing.
HTML 1 Introduction to HTML. 2 Objectives Describe the Internet and its associated key terms Describe the World Wide Web and its associated key terms.
© 2006 by IBM 1 How to use Eclipse to Build Rich Internet Applications With PHP and AJAX Phil Berkland IBM Software Group Emerging.
WEB DESIGN SOME FOUNDATIONS. SO WHAT IS THIS INTERNET.
Web Design Basic Concepts.
Scripted, Tab Accessible Tree Control Hierarchical view of data via tree control. Keyboard Navigation from initially closed tree to view above with focus.
Accessibility for Rich Internet Applications: Colin Clark, Fluid Project Technical Lead, Adaptive Technology Resource Centre Techniques & Toolkits.
An Introduction to WAI-ARIA Dan Jackson Web Team Leader City University London.
© 2008 IBM Corporation Emerging Internet Technologies Real World Accessibility with ARIA Becky Gibson Web Accessibility Architect.
Chapter 1 Introduction to HTML, XHTML, and CSS
What is Web Design?  Web design is the creation of a Web page using hypertext or hypermedia to be viewed on the World Wide Web.
DHTML. What is DHTML?  DHTML is the combination of several built-in browser features in fourth generation browsers that enable a web page to be more.
INTRODUCTION TO DHTML. TOPICS TO BE DISCUSSED……….  Introduction Introduction  UsesUses  ComponentsComponents  Difference between HTML and DHTMLDifference.
JavaScript and The Document Object Model MMIS 656 Web Design Technologies Acknowledgements: 1.Notes from David Shrader, NSU GSCIS 2.Some material adapted.
Architecture Of ASP.NET. What is ASP?  Server-side scripting technology.  Files containing HTML and scripting code.  Access via HTTP requests.  Scripting.
Real World Accessibility Becky Gibson Dojo Accessibility Lead IBM Web Accessibility Architect.
Yahoo! User Interface (YUI) Library Natly Mekdara.
Yahoo! Experiences with Accessibility in DHTML and RIA Nate Koechley Senior Engineer & Designer, Yahoo! User Interface (YUI) Library Team Platform Engineering.
Overview of Previous Lesson(s) Over View  ASP.NET Pages  Modular in nature and divided into the core sections  Page directives  Code Section  Page.
© Ms. Masihi.  The Dreamweaver Welcome Screen first opens when you start Dreamweaver.  This screen gives you quick access to previously opened files,
Tutorial 1 Getting Started with Adobe Dreamweaver CS3
10 Adding Interactivity to a Web Site Section 10.1 Define scripting Summarize interactivity design guidelines Identify scripting languages Compare common.
Accessible DHTML Simon Bates David Bolter ATRC
HTML, XHTML, and CSS Sixth Edition Chapter 1 Introduction to HTML, XHTML, and CSS.
Instructor, Dr. Khalili Bahram Jeevan Kumar Gogineni.
Tutorial 7 Creating Forms. Objectives Session 7.1 – Create an HTML form – Insert fields for text – Add labels for form elements – Create radio buttons.
Silverlight Technology. Table of Contents 1.What is Silverlight Technology? 2.Silverlight Overview. 2.1 How it works 2.2 Silverlight development tools.
1 Yahoo! User Interface Library Nate Oracle User Experience April 17th, 2006.
Accessible DOM scripting with ARIA Léonie Watson
WEB BASED DATA TRANSFORMATION USING XML, JAVA Group members: Darius Balarashti & Matt Smith.
1 Geospatial and Business Intelligence Jean-Sébastien Turcotte Executive VP San Francisco - April 2007 Streamlining web mapping applications.
Building Rich Web Applications with Ajax Linda Dailey Paulson IEEE – Computer, October 05 (Vol.38, No.10) Presented by Jingming Zhang.
Bells, Whistles, and Alarms: HCI Lessons Using AJAX for a Page-turning Web Application Juliet L. Hardesty, Indiana University.
UPLOAD / DOWNLOAD april  HTML5 is just the next iteration of HTML  Previous version was technically HTML 4.01, which incorporated XHTML 1.0.
Cs332a_chapt10.ppt CS332A Advanced HTML Programming DHTML Dynamic Hypertext Markup Language A term describing a series of technologies Not a stand-a-lone.
Accessible DHTML Implementation Aaron Leventhal IBM Senior Engineer Firefox accessibility lead Firefox 1.5.
RIA and Web2.0 Development with no Coding Juan Camilo Ruiz Senior Product Manager Development Tools.
Building AJAX-Enabled Applications with ASP.NET AJAX Framework Peter Ty Developer Evangelist Microsoft Hong Kong
INT222 - Internet Fundamentals Shi, Yue (Sunny) Office: T2095 SENECA COLLEGE.
HTML Concepts and Techniques Fifth Edition Chapter 1 Introduction to HTML.
1 Designing RIA Accessibility: A Yahoo UI (YUI) Menu Case Study Doug Geoffray & Todd Kloots Capacity Building Institute Seattle, Washington
Yahoo! Confidential1 Yahoo! Experiences with Accessibility, DHTML, and Ajax in Rich Internet Applications CSUN, March 23 rd, 2006 Victor TsaranVictor Tsaran.
Web Technology (NCS-504) Prepared By Mr. Abhishek Kesharwani Assistant Professor,UCER Naini,Allahabad.
Ajax! Ajax Programming Ajax! Ajax Programming. Ajax! Ajax Programming Take a look at a typical desktop application (Spreadsheet app, etc.) The program.
1 Using jQuery JavaScript & jQuery the missing manual (Second Edition)
HTML III (Forms) Robin Burke ECT 270. Outline Where we are in this class Web applications HTML Forms Break Forms lab.
INNOV-16: Rich User Interface for the Web???? AJAX to the Rescue Ken Wilner VP of Technology Progress Software.
DHTML.
Web Application.
User Interface Design and Usability jQuery, jQuery UI & jQuery Plugins
AJAX.
Silverlight Technology
Lesson 9: GUI HTML Editors and Mobile Web Sites
Presentation transcript:

1 Yahoo! Experiences with Accessibility (a11y), DHTML, and Ajax in Rich Internet Applications Nate Koechley Refresh 06 Orlando, Florida

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 Agenda Changing Landscape Four Approaches –Standards-based Development –Redundant Interfaces –Faithful and Predictable Ports –“Accessible DHTML”, or WAI ARIA Looking Ahead

4 What’s Happening?

5 Browser vs. Desktop

6 Web 1.0 vs. Web 2.0

7

8 “Getting It Right The Second Time” – matt sweeney

9 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. EvolvabilityEvolvability –Encapsulation, Flexibility, Mashups, Services, Portability Preserve opportunity & availability

10 How do you move to RIAs?

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

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

13 Definitions

14 Definitions: DHTML / Ajax Is NOT a specific technology

15 Definitions: DHTML / Ajax Is NOT a specific technology Is NOT inherently inaccessible

16 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

17 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)wikipedia Often, our focus is on enabling screen- readers specifically –However, the resulting work in generally more far-reaching

18 Accessibility = Availability Accessibility is Availability

19 Accessibility = Availability Accessibility is Availability

20 Accessibility = Availability Accessibility is Availability

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

22 Accessibility on the Desktop OS provides a11y API –Microsoft’s Active Accessibility 2.0 (MSAA)MSAA –Sun’s Java Access BridgeAccess Bridge –Accessibility Toolkit for Linux (ATK)ATK Assistive Technology talks to OS API Result: nearly ubiquitous a11y

23 So desktop accessibility is nearly ubiquitous, but what about web accessibility?

24 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)

25 “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. “

26 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

27 So how can we move forward?

28 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

29 Four Techniques – Use Them All 1.Standards-based development 2.Redundant interfaces 3.Faithful and Predictable Ports 4.WAI ARIA aka “Accessible DHTML”

30 Standards-Based Development Don’t miss the opportunity

31 Approach 1: Standards-Based Development Overview and Definition Create and stand upon a strong foundation Subsequent layers enhance meaningful and structured markup Progressive and unobtrusive enhancement Don’t contaminate the neighborhood Be generous – it’s your last chance!

32 Standards-Based Development Example: Y!News Tab Panel Example: Tab-Panel box: complete

33 Standards-Based Development Example: Y!News Tab Panel Example: Tab-Panel box: no CSS

34 Standards-Based Development Example: Y!News Tab Panel Example: Tab-Panel box: no JavaScript

35 Standards-Based Development Example: 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’tUnobtrusive JavaScriptHijax Stretching semantics to provide clues Microformats enrich date, and provide predictable hooks for add-onsMicroformats

36 Standards-Based Development Ex: Y!Photos Ratings & Tags

37 Standards-Based Development Example: Y!Games

38 Standards-Based Development Example: Y! Home Page

39 Standards-Based Development Benefits 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)

40 Standards-Based Development Drawbacks 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

41 Redundant Interfaces Offer flexible interactions

42 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

43 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

44 Redundant Interfaces Example: 1D Slider 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.

45 Redundant Interfaces Example: 2D Slider

46 Redundant Interfaces Example: Date Selector

47 Redundant Interfaces Example: YUI Menu from Markup

48 Redundant Interfaces Example: YUI Panel from Markup Motion Protection – ntainer/panel-aqua.htmlhttp://developer.yahoo.com/yui/examples/co ntainer/panel-aqua.html Technology Protection – devday-schedule/ devday-schedule/

49 Redundant Interfaces Example: Yahoo! home page

50 Redundant Interfaces Ex: Drag-n-Drop vs. Edit Flow

51 Redundant Interfaces Benefits Better for everybody –Keyboard is important for ALL users –Let users choose from multiple task flows Transfer the complete set of expectations from the desktop to the browser Works today

52 Redundant Interfaces Drawbacks Insufficient communication with accessibility APIs on the desktop Dual experiences/interfaces may pressure goals of parity Requires development of two experiences But not 2x effort! Can actually benefit development process

53 Faithful and Predictable Preserve the illusion

54 Faithful and Predictable Ports: Faithful and Predictable Ports Overview and Definition We must capture this moment in time Learnability Discoverability Completeness is critical

55 Faithful and Predictable Ports: Example: Full Selection Model

56 Faithful and Predictable Ports: Ex: Full Keyboard Control

57 Faithful and Predictable Ports: Ex: Full Keyboard Control Example: Slider fortified with keyboard

58 Faithful and Predictable Ports: Ex: Full Keyboard Control

59 Faithful and Predictable Ports: Benefits More options for everybody Better discoverability Better usability Supports many working styles Establish the new platform

60 Faithful and Predictable Ports: Drawbacks Isn’t always easy Seems heavier and/or more complex Not always the path of least resistance

61 WAI ARIA “Accessible DHTML”

62 Rich Interfaces Require Sophisticated Definitions

63 “Assistive technologies … requires information about the semantics of specific portions of a document in order to present those portions in an accessible form. For example, to provide reliable access to a form element, a tool must also be able to recognize the state of that element (for example, whether it is checked, disabled, focused, collapsed, or hidden).”

64 Approach 4: “Accessible DHTML” Overview and Definition –IBM technology, now in W3C and open htmlhttp:// html –Allows embedded role and state metadata in (X)HTML documents –Uses namespace extensions to XHTML 2, but Techniques allow most functionality in HTML 4 documents, as of today –Communicate directly with the desktop API

65 The Virtual Buffer Screen readers “scrape” a page into a Virtual Buffer. Facilitates knowledge of the page –“20 links”, “list, 14 items”, “four headers”

66 The Virtual Buffer and Script Handles basic script: –click, keypress, mouseover –For these, new content is exposed Ajax content isn’t natively exposed in reaction to these events For example, doesn’t know onreadystatechange

67 Content has changed! focus on updated content –tabindex -1 Omits from tab order Not fully cross-browser Works, but unsophisticated

68 Role Taxonomy for Accessible Adaptable Applications

69 States and Adaptable Properties Module 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

70 “Accessible DHTML” Example: XHTML

71 “Accessible DHTML” Example: HTML 4 <span id="slider" class="myslider myselector2 slider valuemin-0 valuemax-50 valuenow-33" tabindex="0" >

72 “Accessible DHTML” Benefits Utilizes powerful and well-understood desktop API Map controls, events, roles and states directly to powerful and well-understood desktop accessibility APIs Standard and predictable enrichment of markup Allows ARIA on top of RIA

73 “Accessible DHTML” Drawbacks Requires recent-version of assistive technology software (e.g., screen reader) Only works in Mozilla’s Firefox 1.5+ today –Not in Microsoft’s IE7 XHTML required for full power –HTML does not allow multiple states, for example

74 Need Your Help This is an important development –Thanks for IMB/Mozilla/W3C Becky Gibson Aaron Leventhal –We can thank them with adoption and a steady commitment –We can help these small companies.

75 Availability and Browser Support “Graded Browser Support”

76 The Dirty Truth The Web is the most hostile software engineering environment imaginable. – Douglas Crockford

77 Binary Browser Support Do I need to support ___ on this project?

78 Graded Browser Support: Two Key Ideas (1) 1) Support != Same Expecting two users using different browser software to have an identical experience fails to embrace or acknowledge the heterogeneous essence of the Web.

79 Graded Browser Support: Two Key Ideas (2) 2) Support must not be binary! Our primary goal is availability. –Don’t exclude anyone –Welcome all visitors

80

81 Graded Browser Support: General 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%)

82

83 Final Thoughts It’s possible to give the new richness to everybody, and morally correct. –More users + good PR = win win There’s no excuse for not doing this, plus it’s not that hard. Together we’ll get there faster.

84 Thanks! nate.koechley.com/talks/2006/11/refresh06/RIA_Accessibility/ nate.koechley.com/talks/2006/11/refresh06/RIA_Accessibility/ Nate Koechley: | – Yahoo! Developer Network and Y! UI Blog: – – – – – Creative Commons Photos from Flickr: – – –

85 We’re Hiring! Josie Aguada: Usual suspects: JavaScript, PHP, CSS, HTML, ActionScript…