Designing RIA Accessibility: A Yahoo UI (YUI) Menu Case Study

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

Merging Ajax and Accessibility

Getting Started Guide

Design patterns and Animation with jquery. with Paul Bakaus

HTML CS 4640 Programming Languages for Web Applications

Table Basics. The structure of an table

How to set up a local root folder and site structure

HTML TAG SUMMARY HTML REFERENCE 18 TAG/ATTRIBUTE DESCRIPTION PAGE REFERENCES TAG/ATTRIBUTE DESCRIPTION PAGE REFERENCES MOST TAGS

We will talk about Alt-Tab from the usability perspective. Think about: - Is it learnable? - Is it efficient? - What about errors and safety?

COPYRIGHTED MATERIAL. Contents. Chapter 1: Creating Structured Documents 1

HTML Organizing Page Content

UI Course HTML: (Html, CSS, JavaScript, JQuery, Bootstrap, AngularJS) Introduction. The World Wide Web (WWW) and history of HTML

Customizing the Blackboard Learn UI & Tag Libraries. George Kroner, Developer Relations Engineer

Best Practices Chapter 5

Data Visualization (CIS/DSC 468)

Creating Accessible Web Sites with EPiServer

Overview of the Adobe Dreamweaver CS5 workspace

Simple Image Viewer for IBM Content Navigator

High-level accessibility review BTAA

Web Content Accessibility Guidelines 2.0 level AA Checklist

Designing Accessible Websites

Lesson 5 Introduction to Cascading Style Sheets

Accessibility Crash Course for Web Developers. Dan Lewis Clemson University

IBM DB2 Web Query for IBM i. Version 2 Release 2

Our Hall of Fame or Shame candidate for today is the command ribbon, which was introduced in Microsoft Office The ribbon is a radically

Microsoft Exam

Salesforce1 - ios App (Phone)

HTML+ CSS PRINCIPLES. Getting started with web design the right way

Web Community Manager 2.18 Release Notes

Developing Web Applications for Smartphones with IBM WebSphere Portlet Factory 7.0

Word Creating & Using Tables. IT Training & Development (818) Information Technology

COPYRIGHTED MATERIAL. Contents. Introduction. Chapter 1: Structuring Documents for the Web 1

729G26 Interaction Programming. Lecture 4

While you re waiting, you can set up your computer by installing these programs

CSCI 311 WEB ACCESSIBILITY

Web Accessibility Checklist

XnView Image Viewer. a ZOOMERS guide

HTML Organizing Page Content

Easier Reading in Windows 7 Programs

COMSC-031 Web Site Development- Part 2

Dreamweaver CS5 Lab 4: Sprys

UI Toolkits. HCID 520 User Interface Software & Technology

In this project, you will create a showcase of your HTML projects and learn about links and embedding resources.

Implementing Usable Keyboard Interactions. Jared Smith & Jonathan Whiting webaim.org

For detailed instructions, click the links below. To ask questions, request features, or report problems, visit feedback.photoshop.com.

3. Each of these mark examples contains an error. a. <input name= country value= Your country here. /> b. <checkbox name= color value= teal />

Introduction to HTML & CSS. Instructor: Beck Johnson Week 2

Web Site Design Small Screen Design Responsive Design R.I.T. S. Ludi/R. Kuehl p. 1 R I T. Software Engineering

WCAG 2.0 A and AA Requirements

Introduction to using HTML to design webpages

Section 508C This manual provides basic information on applicable guidelines and best practices for 508 Compliance.

Web Accessibility Evaluation Methodologies and Tools

v0.9.3 Tim Neil Director, Application Platform & Tools Product

Agilix Buzz Accessibility Statement ( )

Forerunner Mobilizer Dashboards

Web Accessibility Evaluation Methodologies and Tools. Jared Smith & Jonathan Whiting webaim.org

Index. CSS directive, # (octothorpe), intrapage links, 26

Lesson 21 Getting Started with PowerPoint Essentials

,

How to lay out a web page with CSS

COMS 359: Interactive Media

READSPEAKER ENTERPRISE HIGHLIGHTING 2.5

Web Development IB PRECISION EXAMS

Product Accessibility Conformance Report

1 Ctrl + X Cut the selected item. 2 Ctrl + C (or Ctrl + Insert) Copy the selected item. 3 Ctrl + V (or Shift + Insert) Paste the selected item

Index. alt, 38, 57 class, 86, 88, 101, 107 href, 24, 51, 57 id, 86 88, 98 overview, 37. src, 37, 57. backend, WordPress, 146, 148

Figure 1: Syllabus opened in Word Online. Click the File tab (1)

The Ultimate Web Accessibility Checklist

High-level accessibility review BTAA (Ebsco ebooks - final version)

WEB DEVELOPMENT & DESIGN FOUNDATIONS WITH HTML5

The Benefits of CSS. Less work: Change look of the whole site with one edit

HTML and CSS COURSE SYLLABUS

Accessibility and Moodle: Jailbreak your LMS

Using Microsoft Word. Working With Objects

Etanova Enterprise Solutions

Dreamweaver Basics Workshop

Switch between open apps Close the active item, or exit the active app

Starting Excel application

Using AJAX to Easily Integrate Rich Media Elements

Adobe Web Authoring using Adobe Dreamweaver Exam and objectives

CompuScholar, Inc. Alignment to Utah's Web Development I Standards

Study Guide 2 - HTML and CSS - Chap. 6,8,10,11,12 Name - Alexia Bernardo

Web Site Development with HTML/JavaScrip

INTRODUCTION TO JAVASCRIPT

Advanced Dreamweaver CS6

Using Dreamweaver CC. Logo. 4 Creating a Template. Page Heading. Page content in this area. About Us Gallery Ordering Contact Us Links

Course Details. Skills Gained. Who Can Benefit. Prerequisites. View Online URL:

Figure 1 Forms category in the Insert panel. You set up a form by inserting it and configuring options through the Properties panel.

How to Get Started. Figure 3

Computer Applications Final Exam Study Guide

Accessible Web Mapping Apps. Kelly Hutchins Tao Zhang

Web 2.0, AJAX and RIAs

Announcements. Term Paper due on Wednesday at the beginning of class Midterm #2 next Monday Fawzi Emad, Computer Science Department, UMCP

Sales Cloud Lightning

Mobile & More: Preparing for the Latest Design Trends

('cre Learning that works for Utah STRANDS AND STANDARDS WEB DEVELOPMENT 1

ADOBE VISUAL COMMUNICATION USING DREAMWEAVER CS5 Curriculum/Certification Mapping in MyGraphicsLab

1/6/ :28 AM Approved New Course (First Version) CS 50A Course Outline as of Fall 2014

Animating Layers with Timelines

Marketplace Simulations Accessibility Conformance Report Based on Voluntary Product Accessibility Template (VPAT ) 1

Transcription:

Designing RIA Accessibility: A Yahoo UI (YUI) Menu Case Study Doug Geoffray & Todd Kloots 1 Capacity Building Institute Seattle, Washington 2006.11.30

What s Happening? 2

3 Web 1.0 vs. Web 2.0

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 4

Web 2.0 Design Philosophy Getting It Right The Second Time - Matt Sweeney http://yuiblog.com/blog/2006/10/03/video-sweeneyhackday06/ 5

Getting It Right the Second Time Use technology as designed Example: HTML is a small vocabulary, so choose the right tags to give the most meaning to your content. Do not corrupt layers of the stack Examples of what not to do: class= red-button href= javascript: Create platforms. Evolvability Encapsulation, Flexibility, Mashups, Services, Portability Preserve opportunity & availability 6

Preserve opportunity & availability 7

Accessibility Defined 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 screenreaders specifically However, the resulting work is generally more far-reaching 8

So how can we move forward? 9

Three Techniques (Use Them All) 1. Standards-based Development 2. Redundant Interfaces 3. Faithful and Predictable Ports 10

Characteristics of Techniques Don t make things worse Provide alternatives Learn from other technologies Support improvement of a11y tech 11

Standards-Based Development Don t miss the opportunity 12

Approach 1: Standards-Based Development Overview and Definition Create and stand upon a strong markup foundation Subsequent layers (CSS, JavaScript, etc.) enhance meaningful and structured markup Progressive and unobtrusive enhancement Don t contaminate the neighborhood Be generous with markup to provide as much meaning as possible 13

Standards-Based Development Example: Menu Structure <div> <div> </div> </div> <ul> <li> Cut </li> <li> Copy </li> <li> Paste </li> </ul> <ul> <li> Select All </li> </ul> <ul> <li> Find (on This Page)... </li> </ul> 14

Standards-Based Development Example: Menu Heirarchy <div> <div> </div> </div> <ul> <li> Item One <div> <div> </div> </div> </li> <li> Item Two </li> <li> Item Three </li> </ul> <ul> <li> Item One </li> <li> Item Two </li> <li> Item Three </li> </ul> 15

Standards-Based Development Example: Separators <div> <div> </div> </div> <ul> <li> Cut </li> <li> Copy </li> <li> Paste </li> </ul> <ul> <li> Select All </li> </ul> <ul> <li> Find (on This Page)... </li> </ul> 16

Standards-Based Development Example: Help Text <div> <div> </div> </div> <ul> <li> Cut <em>ctrl + X</em> </li> <li> Copy <em>ctrl + C</em> </li> <li> Paste <em>ctrl + V</em> </li> </ul> <ul> <li> Select All <em>ctrl + A</em> </li> </ul> <ul> <li> Find (on This Page)... <em>ctrl + F</em> </li> </ul> 17

Standards-Based Development Example: Titles <div> <div> </div> </div> <h6> Applications </h6> <ul> <li> BBEdit </li> <li> Firefox 2.0 </li> <li> Grab </li> <li> Microsoft PowerPoint </li> </ul> <h6> Documents </h6> <ul> <li> Accessibility </li> <li> file.txt </li> </ul> 18

Standards-Based Development Example: Emphasis <div> <div> <ul> <li> <em>open</em> </li> <li> Explore </li> <li> Search </li> <li> Manage </li> </ul> <ul> <li> Map Network Drive.. </li> <li> Disconnect Network Drive.. </li> </ul>... </div> </div> 19

Standards-Based Development Benefits With the grain of web technologies Truly available to all Provides strong foundation A step toward a semantic web Long shelf life 20

Standards-Based Development Drawbacks Doesn t solve every problem Perceived overhead Unobtrusive JavaScript, CSS-based layouts and Hijax are still less familiar techniques 21

Standards-Based Development Drawbacks Example disabled attribute can be applied to a limited number of elements in HTML 4: <button> <input> <optgroup> <select> <textarea> This limitation makes it difficult to communicate that an element in a DHTML widget is disabled Existing limitation solved by WAI-ARIA States and Properties Example: <li role= wairole:menuitem aaa:disabled="true">copy</li> 22

Redundant Interfaces Offer flexible interactions 23

Approach 2: Redundant Interfaces Overview and Definition Desktop offers multiple means of input Choice of GUI input and command line Direct movement of objects vs. configuration-based movement Text fields with option of auto complete Support for Tab and arrow keys We must bring these redundancies to the web 24

Approach 2: Redundant Interfaces Overview and Definition Desktop offers multiple means of manipulation Keyboard and mouse Example: Users can close a window by hitting Esc key or by using the close button Drag-drop and form-based We must bring these redundancies to the web 25

Redundant Interfaces Example: Progressive Enhancement Lynx: text-only browser No JavaScript support No CSS support YUI Menu content is still meaningful and menu hierarchy is well represented because it is based on semantic markup 26

Redundant Interfaces Example: Progressive Enhancement Netscape 4: graphical browser with limited support for CSS and JavaScript YUI Menu content is still meaningful and menu hierarchy is well represented because it is based on semantic markup. 27

Redundant Interfaces Example: Progressive Enhancement Firefox has excellent support for CSS and JavaScript Paranoid users might disable JavaScript YUI Menu content is still meaningful and menu hierarchy is well represented because it is based on semantic markup 28

Redundant Interfaces Example: Progressive Enhancement IE also has excellent support for CSS and JavaScript CSS and JavaScript can work together to transform the experience without sacrificing the content 29

Progressive Enhancement Summary Semantic markup makes content portable Progressive enhancement allow for the development of redundant interfaces that give users a choice Text only interface: Lynx and Netscape 4 Rich, DHTML interface: Firefox and IE 30

Redundant Interfaces Example: Multiple Task Flows Site should be to be navigated without DHTML Communication Give users a choice DHTML menus gives the user the option of skipping steps PIM Mail 31

Redundant Interfaces Example: Keyboard & Mouse Support 32

Keyboard & Mouse Support Roaming tabindex= 0 technique Start out with tabindex= -1 on all child items except for first, which gets tabindex= 0 As user arrows around, reset previously focused item item to tabindex= -1 Set newly focused item to tabindex= 0 Works with Firefox and IE More at: http://developer.mozilla.org/en/docs/keynavigable_custom_dhtml_widgets 33

Redundant Interfaces Example: Screen Reader Support Focused Inline images with alt text: Collapsed. Click to expand. click event handler hides and shows submenu When submenu is made visible, content is focused and image alt text is updated: Expanded. Click to collapse. 34

Redundant Interfaces Example: Screen Reader Support Inline image with alt text: Checked. Appended after the text node of the <li> element Positioned via CSS for traditional look and feel <li> Status Bar <img alt= Checked > </li> 35

Redundant Interfaces Example: Screen Reader Support Learnings: Use inline images over background images when appropriate Screen readers respect CSS visibility and display properties Set focus to new content that is made visible or appended to the page via DOM methods 36

Redundant Interfaces Benefits Better for everybody Keyboard is important just as important as mouse Let users choose from multiple task flows Transfer the complete set of expectations from the desktop to the browser 37

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 38

Faithful and Predictable Ports Preserve the illusion 39

Approach 3: Faithful and Predictable Ports Overview and Definition: Mimic the desktop experience to provide: Learnability Discoverability Completeness is critical We must capture this moment in time 40

Faithful and Predictable Ports Example: Keyboard Access Hitting Esc hides a menu Arrow keys Up and Down will go over the top Right to expand submenu OR to move to the next item in the menu bar Left to collapse a submenu OR to move to the next item in a menu bar Tabbing through items 41

Faithful and Predictable Ports Example: Resizability Declare font size in relative units Use <iframe> to allow DHTML widgets to response to changes to the font size Create and insert into the page via JavaScript Height and width declared in EM units Add a resize event listener 42

Faithful and Predictable Ports Example: Viewport Positioning Problem: Menus positioned outside the boundaries of the browser viewport require extra scrolling. 43

Faithful and Predictable Ports Example: Viewport Positioning Solution: Menus that automatically remain inside the browser viewport boundaries are more usable to all users. 44

Faithful and Predictable Ports WAI-ARIA Roles & States Utilizes powerful and well-understood desktop API Map controls, events, roles and states directly to powerful and wellunderstood desktop accessibility APIs Standard and predictable enrichment of markup Allows ARIA on top of RIA 45

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

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

Questions 48