Jason Pitoniak Rochester Institute of Technology

Slides:



Advertisements
Similar presentations
Essentials for Design JavaScript Level One Michael Brooks
Advertisements

ARIA Web Design and Development Patterns KEITH HAYS IT Accessibility Specialist CITES / ITaccess
Creating dynamic and accessible content in Drupal 7 using WAI-ARIA Sarah Pulis Web Accessibility Evangelist DruaplCon | Content Authoring |
Screen Rea ript aSc A Jav RI ithA w der + Accessible Rich Internet Applica1ons.
Antranig Basman, CARET, University of Cambridge Aaron Zeckoski, CARET, University of Cambridge Josh Ryan, Arizona State University Colin Clark, Adaptive.
® IBM Software Group © 2007 IBM Corporation Accessible Rich Internet Applications and Online Services Rich Schwerdtfeger IBM Distinguished Engineer, Chair.
© 2007 IBM Corporation IBM Emerging Technologies Enabling an Accessible Web 2.0 Becky Gibson Web Accessibility Architect.
Web Development Using ASP.NET CA – 240 Kashif Jalal Welcome to week – 3-1 of…
Web Accessibility Tests Using the Firefox Browser ACCESS to Postsecondary Education through Universal Design for Learning.
ARIA intro WAI ARIA The problems being addressed  Limitations of the web pidgin  The old and new webs The ARIA solution (roles, states, properties, regions,
User Interface Design using jQuery Mobile CIS 136 Building Mobile Apps 1.
Scripted, Tab Accessible Tree Control Hierarchical view of data via tree control. Keyboard Navigation from initially closed tree to view above with focus.
Chapter 1 Variables in the Web Design Environment
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.
Real World Accessibility Becky Gibson Dojo Accessibility Lead IBM Web Accessibility Architect.
Chapter 6: Forms JavaScript - Introductory. Previewing the Product Registration Form.
Development of Accessible E-documents and Programs for the Visually Impaired WAI-ARIA (V2011)
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.
Lesson 4: Using HTML5 Markup.  The distinguishing characteristics of HTML5 syntax  The new HTML5 sectioning elements  Adding support for HTML5 elements.
ARIA + HTML5 Steve Faulkner & Hans Hillen The Paciello Group.
CNIT 133 Interactive Web Pags – JavaScript and AJAX JavaScript Environment.
10 Adding Interactivity to a Web Site Section 10.1 Define scripting Summarize interactivity design guidelines Identify scripting languages Compare common.
The Internet and the World Wide Web. The Internet A Network is a collection of computers and devices that are connected together. The Internet is a worldwide.
Chapter 1 Understanding the Web Design Environment Principles of Web Design, 4 th Edition.
Week 1 Understanding the Web Design Environment. 1-2 HTML: Then and Now HTML is an application of the Standard Generalized Markup Language Intended to.
Accessible DHTML Simon Bates David Bolter ATRC
Design and Construction of Accessible Web Sites Michael Burks Chairman Internet Society SIG For Internet Accessibility for People with Disabilities June.
Tutorial 7 Creating Forms. Objectives Session 7.1 – Create an HTML form – Insert fields for text – Add labels for form elements – Create radio buttons.
DHTML - Introduction Chapter Introduction to DHTML, the DOM, JS review.
Functional Accessibility Evaluation of Web 2.0 Applications Testing Jon Gunderson, Ph.D University of Illinois.
 Whether using paper forms or forms on the web, forms are used for gathering information. User enter information into designated areas, or fields. Forms.
Avoiding the JavaScript:Void(‘’): Building Web Apps That Work Anywhere and Everywhere Jason Pitoniak Rochester Institute of Technology HighEdWeb 2008 ▪
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.
Aria Roles Informing assistive technology. What are Aria Roles A way of conveying the role or state of content or functionality. Accessible Rich Internet.
Introduction to HTML. _______________________________________________________________________________________________________________ 2 Outline Key issues.
HTML Forms.
Creating Accessible Web Forms Sandy Clark Constella Group
 Accessibility & Information Architecture Presented by Liz Molleur INF385E April 5 th, 2009.
Teaching slides Chapter 6. Chapter 6 Software user interface design & construction Contents Introduction Graphical user interface – Rich window based.
4.01 How Web Pages Work.
4.01 How Web Pages Work.
Chapter 5 Validating Form Data with JavaScript
4.01 How Web Pages Work.
Presented by: Bryan Garaventa, Accessibility Fellow
ASP.NET Web Controls.
Creating Accessible Web Forms
Tutorial 6 Topic: jQuery and jQuery Mobile Li Xu
Web Programming– UFCFB Lecture 9
Reaching more customers with accessible Metro style apps using HTML5
What Designers Need to Know about Accessibility (A11y)
DHTML Javascript Internet Technology.
DHTML Javascript Internet Technology.
Tutorial 6 Creating Dynamic Pages
Lesson 9: GUI HTML Editors and Mobile Web Sites
Teaching slides Chapter 6.
Web Development Using ASP .NET
Web Standards and Accessible Design.
CIS 133 mashup Javascript, jQuery and XML
Web Programming– UFCFB Lecture 9
4.01 How Web Pages Work.
4.01 How Web Pages Work.
Various mobile devices
Presentation transcript:

Avoiding the JavaScript:Void(‘’): Building Web Apps That Work Anywhere and Everywhere Jason Pitoniak Rochester Institute of Technology HighEdWeb 2008 ▪ TPR 4 October 6, 2008

What is the JavaScript Void? The inability of a user to access web content or features due to system incompatibilities, such as the lck of JavaScript. <a href= “javascript:void('')” onclick= “window.open('popup.html', 'height=500, width=300);”>more information</a>

Accessible Content: Not Just For Blind Users Anymore The web is becoming increasingly ubiquiteous: Mobile Devices “Smart” Devices Implications Smaller Screens Lack of Graphics Support Lack of Scripting Support

Accessible Content: Not Just For Blind Users Anymore The web is being used by more less-experienced users: Grandparents Disabled Persons Lower Socioeconomic Status

Accessible Content: Not Just For Blind Users Anymore This means: Less computer savvy Older, slower systems Possible assistive technologies Lower speed connections Less likely to do timely upgrades

Accessible Content: Not Just For Blind Users Anymore Some people just choose to be different: JavaScript off Cookies off Styles off Using older or non-standard browsers

We’d Like to Accommodate Everyone…But We Have a Deadline Know your audience Code like it’s 1999 Use progressive enhancement on the client side Level the playing field with JavaScript libraries Use WAI-ARIA to make it accessible

Code Like It’s 1999 As much as possible, return plain old (X)HTML from server generated scripts Follow current standards to ensure consistancy and forward compapatibility Make sure all basic functionality exists, even if it ain’t pretty

Use Progressive Enhancement There’s nothing wrong with bells and whistles when they provide a benefit and don’t confuse or hinder the user Use JavaScript to alter the page and add the features

Progressive Enhancement Examples Forms and disabled fields: all fields should be enabled by default and disabled with JavaScript Calendar widgets: attach to date fields after the page loads Popup windows: devise a method of navigating to a new page and back

Level the Playing Field JavaScript libraries, such as YUI and jQuery: Eliminate many browser irregularities Add support for “missing” events such as “onDocumentReady” Make it easy to work with AJAX and other advanced features Offer clean, consistent sets of widgets

Progressive Enhancement 101 $(document).ready(function () { $(“.datefield”).insertAfter(‘<input type=“button” class=“calpopup”>’); })

Use WAI-ARIA ARIA attempts to solve the two biggest issues regarding web accessibility: Runtime changes to content can’t be “seen” by assistive technologies Users of don’t understand the intended meaning of objects on the page

About ARIA Accessible Rich Internet Applications suite Part of the W3C Web Accessibility Initiative (WAI) A set of specifications for browser manufactures and web developers to follow to ensure the accessibility of web applications

ARIA Roles and States Operating systems generally define a set of “atomic widgets” that are used in GUIs Fields, labels, tabs, windows, etc. ATs understand these widgets and interpret them for the user The set of widgets available in HTML is much smaller, so we fake them with markup, JavaScript, and CSS

Example: Tabs Typical tab list markup on a web page: <ul class=“tablist”> <li class=“selected”><a href=“#tab1”> Tab 1</a></li> <li><a href=“#tab2”>Tab 2</a></li> …

Example: Tabs What we see:

Example: Tabs What the screen reader sees: Tab 1 Tab 2 Tab 3

ARIA Roles Attempt to tell the browser the indended function of a piece of markup The browser should then pass that to the AT Implemented using the “role” attribute <a role=“checkbox”>…</a>

Recognized Roles Role, Input, Textbox, Select, Range, Section, Sectionhead, Window Link, Combobox, Option, Checkbox, Checkboxtristate, Radio, Radiogroup, Menuitemradio, Menuitemcheckbox, Progressbar, Secret, Slider, Spinbutton, Separator, Textarea, Textfield, Tree, Treegroup, Treeitem, Status, Alert, Alertdialog, Dialog Presentation, Appliction, Document, Group, Imagegroup, Directory, Region, Liveregion, Log, Grid, Gridcell, Tabcontainer, Tab, Tabpanel, Tablist, Table, TH, TD, Rowheader, Columnheader, List, Listitem, Menu, Toolbar, Menubar, Menuitem, Breadcrumbs

ARIA States States define the current status of an element A checkbox can be “checked” or “unchecked” A tab can be “selected” States are implemented using aria-* attributes <span role=“checkbox” aria-checked=“true”>

ARIA States Available states vary by role A few common ones: Checked (true|false|mixed) Disbaled (true|false) Selected (true|false) Expanded (true|false) Valuenow, Valuemax, Valuemin Invalid (true|false) current value is invalid

Live Regions Most ATs are unable to see that a page element has changed if that element doesn’t have the focus This poses a problem for most AJAX-type RIAs ARIA Live Regions are designed to fix this

Live Regions Live Regions are defined as sections of a page that are likely to change Text in live regions can be spoken without giving the region focus Live regions are denoted by the aria-live property being set to one of the recognized politeness settings <div aria-live=“polite”>…</div>

Politeness Polite - if content is currently being spoken, wait until done before alerting of change (default) Assertive – new content has a higher priority than “polite” but still doesn’t necessarilly interrupt the current content Rude – the new content has a very high priority and the user should be notified of it immeadiately

ARIA Downsides Still in draft state and still evolving Not yet widely supported ARIA properties are not part of (X)HTML specs and therefore do not validate

ARIA Is Not Enough ARIA is designed as a notification tool only It does not help users interact with custom widgets, navigate the page, etc. It is still necessary to include proper event handlers on ARIA-enabled elements, including keyboard navigation

ARIA and AAA As you research ARIA you may come across examples that use the aaa: namespace Namespaces aren’t supported in HTML Namespaces are only supported in XHTML when the application/xhtml+xml MIME type is used IE doesn’t recognize application/xhtml+xml So the namespace was dropped in favor of the prefix aria- prefix instead.

ARIA Demos FireVox Tutorials http://firevox.clcworld.net/tutorial/tut4.html Mozilla Developer Center Examples http://developer.mozilla.org/en/Accessible_DHTML

ARIA Links Intro: http://www.w3.org/WAI/intro/aria Overview: http://www.w3.org/TR/wai-aria/ Roles Working Draft: http://www.w3.org/TR/2006/WD-aria-role-20060926/ States and Properties Working Draft: http://www.w3.org/TR/2006/WD-aria-state-20060926/

Toolkits YUI Supports ARIA (with a bit of work), YUIBlog articles frequently show how: http://developer.yahoo.com/yui http://yuiblog.com Fluid Project – a new, open source, initiative built on top of JQuery http://www.fluidproject.org

Screen Readers, Etc. NVDA – Open Source Screen Reader http://www.nvda-project.org/ AccessFirefox – Accessibility Extensions Overview Site (includes FireVox) http://www.accessfirefox.org/

MobileOK W3C Initiative for Designing for Mobile Devices Working Draft: http://www.w3.org/TR/mobileOK/ Basic Tests: http://www.w3.org/TR/mobileOK-basic10-tests/ Validator: http://validator.w3.org/mobile/

I Am Accessible Jason R. Pitoniak Web Services Senior Programmer/Analyst Information Technology Services Rochester Institute of Technology (585) 475-4186 ▪ jrpisd@rit.edu