Making Rich Internet Applications Accessible Through jQuery

22
Chris Blouch, AOL Hans Hillen, TPG Making Rich Internet Applications Accessible Through jQuery March 26, 2010

description

Making Rich Internet Applications Accessible Through jQuery

Transcript of Making Rich Internet Applications Accessible Through jQuery

Page 1: Making Rich Internet Applications Accessible Through jQuery

Chris Blouch, AOLHans Hillen, TPG

Making Rich Internet Applications Accessible Through jQuery

March 26, 2010

Page 2: Making Rich Internet Applications Accessible Through jQuery

2

CSUN March 26 2010 Page

Who is doing the workAOL and TPG teamed up to advance accessibility of dynamic web applications. This project is also supported by AEGIS.

Page 3: Making Rich Internet Applications Accessible Through jQuery

3

CSUN March 26 2010 Page

jQueryjQuery is a JavaScript library which makes it easier for developers to implement rich internet applications. Smooths browser differences and minimizes code required to build functionality.

Changing:<div id="slider-range"></div>

Page 4: Making Rich Internet Applications Accessible Through jQuery

4

CSUN March 26 2010 Page

jQueryInto this:

<div class="ui-slider ui-slider-horizontal ui-widget ui-widget-content ui-corner-all" id="slider-range"><div style="left: 15%; width: 45%;" class="ui-slider-range ui-widget-header"></div><a style="left: 15%;" class="ui-slider-handle ui-state-default ui-corner-all" href="#"></a><a style="left: 60%;" class="ui-slider-handle ui-state-default ui-corner-all" href="#"></a></div>

Rendering as:

Page 5: Making Rich Internet Applications Accessible Through jQuery

5

CSUN March 26 2010 Page

Usage widespreadaol.comamazon.combankofamerica.combbc.co.ukbestbuy.combusinessweek.comcbs.comdell.comdigg.com

facebook.comgoogle.comibm.commlb.commozilla.orgnetflix.comnbc.comtechnorati.comtwitter.com

Page 6: Making Rich Internet Applications Accessible Through jQuery

6

CSUN March 26 2010 Page

Root issue

6

AT on top of DOM insufficient to parse piles of DIVs and SPANs into usable widgets

Four core fixesARIAKeyboard controlFocus managementLinearized DOM

Page 7: Making Rich Internet Applications Accessible Through jQuery

7

CSUN March 26 2010 Page

Solutions

7

ARIAObviousAdd and maintain proper roles, states to add

semantics and metadata

Page 8: Making Rich Internet Applications Accessible Through jQuery

8

CSUN March 26 2010 Page

Solutions

8

Keyboard ControlDHTML Style Guide

dev.aol.com/dhtml_style_guideBasis for W3C’s ARIA best practiceswww.w3c.org/WAI/PF/aria-practices#aria_ex

Page 9: Making Rich Internet Applications Accessible Through jQuery

9

CSUN March 26 2010 Page

Solutions

9

Focus ManagementGive the user a hint that new content has been injected without a page refresh (Ajax, DHTML)

Page 10: Making Rich Internet Applications Accessible Through jQuery

10

CSUN March 26 2010 Page

Solutions

10

Linearized DOMEnsure that adjacent objects on the display are

adjacent in the DOM.

Page 11: Making Rich Internet Applications Accessible Through jQuery

11

CSUN March 26 2010 Page

Next layer problem

11

All technically possible but requires awareness and somewhat specialized skills/testing to implement

Means - most developers will not do it

Solution: Roll accessibility development effort into common JS widget libraries

Page 12: Making Rich Internet Applications Accessible Through jQuery

12

CSUN March 26 2010 Page

Which library?

12

There are many libraries out there such as MooTools, Dojo, jQuery, Prototype, YUI etc.

Developers use these libraries to avoid reinventing the wheel over and over

Want to focus effort on a library which has the largest use and mindshare

Page 13: Making Rich Internet Applications Accessible Through jQuery

13

CSUN March 26 2010 Page

Website usage

13

trends.builtwith.com/javascript/JQuery

Page 14: Making Rich Internet Applications Accessible Through jQuery

14

CSUN March 26 2010 Page

Job queries

14

www.indeed.com/jobtrends?q=dojo%2C+jQuery%2C+YUI&l=

Page 15: Making Rich Internet Applications Accessible Through jQuery

15

CSUN March 26 2010 Page

Search trends

15

google.com/trends?q=jquery+javascript%2C+prototype+javascript%2C+dojo+javascript%2C+mootools+javascript%2C+yui+ javascript&ctab=0&geo=all&date=all&sort=0

Page 16: Making Rich Internet Applications Accessible Through jQuery

16

CSUN March 26 2010 Page

Which library?

16

jQuery seemed to be the obvious leader

Internal AOL research led to the same conclusion and standardization on jQuery for all future site development

Smaller librariesFaster executionLess code to write

Page 17: Making Rich Internet Applications Accessible Through jQuery

17

CSUN March 26 2010 Page

Which widgets?

17

jQuery has a large ecosphere with about 3000 plugins

jQueryUI is migrating high quality widgets from the ecosphere to the core code library

Focus on making jQueryUI accessible.

Page 18: Making Rich Internet Applications Accessible Through jQuery

18

CSUN March 26 2010 Page

RolesTPG - Implementing fixes to jQueryUI 1.9 codebase branch

AOL - Rolling accessible jQueryUI into consumer facing products

AEGIS - Providing resources and guidance to advance this effort

Page 19: Making Rich Internet Applications Accessible Through jQuery

19

CSUN March 26 2010 Page

Work completed

19

Initital evaluation of jQueryUI widgets found issues with high contrast mode, ARIA attributes and keyboard controls.

Hans Hillen has been making changes to these widgets and checking in code to the 1.9 branch of jQueryUI.

1.8 branch released Tuesday so our code will be out in the next public release.

Page 20: Making Rich Internet Applications Accessible Through jQuery

20

CSUN March 26 2010 Page

Work completed

AccordionDate PickerDialog

Work work commencing on:SpinnerTab Panel

In particular, we’ve addressed:Progress BarSlider

CarouselTree View

Page 21: Making Rich Internet Applications Accessible Through jQuery

21

CSUN March 26 2010

Page

DEMOSDEMOS

Page 22: Making Rich Internet Applications Accessible Through jQuery

22

CSUN March 26 2010 Page

jQuery Resources

jQuery Home: http://jquery.com/Project Source:

http://github.com/jquery/jquery-ui/jQuery UI and & Planning Wiki:

http://wiki.jqueryui.com/jQuery UI Tickets:

http://dev.jqueryui.com/reportjQuey UI Accessibility Discussion Group:

http://groups.google.com/group/jquery-a11y

Here are the links Hans mentioned at the end of the presentation: