Accessible Web 2.0 Applications PRESENTED BY: Arne Louison, Web Developer, Governor’s Office of Employee Relations Jeff Bennett, Programmer & Usability.

Slides:



Advertisements
Similar presentations
XHTML & CSS 2 By Trevor Adams. Last week XHTML eXtensible HyperText Mark-up Language The beginning – HTML Web Standards Concept and syntax Elements (tags)
Advertisements

Understand Web Page Development Software Development Fundamentals LESSON 4.1.
® IBM Software Group © 2007 IBM Corporation Accessible Rich Internet Applications and Online Services Rich Schwerdtfeger IBM Distinguished Engineer, Chair.
ICT Issues Social Networking. Social Networking Social networking: the interaction between a group of people who have a common interest, eg. music. Popular.
© 2007 IBM Corporation IBM Emerging Technologies Enabling an Accessible Web 2.0 Becky Gibson Web Accessibility Architect.
Server-Side vs. Client-Side Scripting Languages
Tutorial 1 Developing a Basic Web Page
Dynamic Web Pages Bert Wachsmuth. Review  Internet, IP addresses, ports, client-server, http, smtp  HTML, XHTML, XML  Style Sheets, external, internal,
Does Ajax suck? CS575 Spring 2007 Chanwit Suebsureekul.
Chapter 9 Introduction to the Document Object Model (DOM) JavaScript, Third Edition.
UWWD In our quest to eliminate bad websites, we present…. HALLELUJAH!!
Part or all of this lesson was adapted from the University of Washington’s “Web Design & Development I” Course materials.
ITM352 Javascript and Dynamic Web Pages: Client Side Processing.
Web Development & Design Foundations with XHTML Chapter 9 Key Concepts.
Web Design Basic Concepts.
Forms, Validation Week 7 INFM 603. Announcements Try placing today’s example in htdocs (XAMPP). This will allow you to execute examples that rely on PHP.
Scripted, Tab Accessible Tree Control Hierarchical view of data via tree control. Keyboard Navigation from initially closed tree to view above with focus.
Web Content Management Systems. Lecture Contents Web Content Management Systems Non-technical users manage content Workflow management system Different.
1 Web Developer & Design Foundations with XHTML Chapter 6 Key Concepts.
An Introduction to WAI-ARIA Dan Jackson Web Team Leader City University London.
Chapter 1 Introduction to HTML, XHTML, and CSS
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.
1 CS 3870/CS 5870 Static and Dynamic Web Pages ASP.NET and IIS.
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.
May 16 – 18, 2007 Copyright 2007, Data Access Worldwide May 16 – 18, 2007 Copyright 2007, Data Access Worldwide Build Great Web Application 'Fast and Easy'
1 CS 3870/CS 5870 Static and Dynamic Web Pages ASP.NET and IIS.
Development of Accessible E-documents and Programs for the Visually Impaired WAI-ARIA (V2011)
Server-side Scripting Powering the webs favourite services.
CNIT 133 Interactive Web Pags – JavaScript and AJAX JavaScript Environment.
D2L Notes Be sure to submit your link in the dropbox provided on D2L You can just upload an empty text file if a file upload is required Do not use D2L.
Design and Construction of Accessible Web Sites Michael Burks Chairman Internet Society SIG For Internet Accessibility for People with Disabilities June.
INTRODUCTION TO JAVASCRIPT AND DOM Internet Engineering Spring 2012.
Active Server Pages  In this chapter, you will learn:  How browsers and servers interacted on the Internet when the Internet first became popular 
Beth Schaefer, assistant director Client Services University Information Technology Services IT's 4 U: Putting social networking tools to work.
Copyright © Osmosys O S M O S Y SO S M O S Y S D e p l o y i n g E x p e r i e n c e & E x p e r t i s e™ HTML Training.
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.
Tutorial 6 Working with Web Forms. 2New Perspectives on HTML, XHTML, and XML, Comprehensive, 3rd Edition Objectives Explore how Web forms interact with.
Session: 1. © Aptech Ltd. 2Introduction to the Web / Session 1  Explain the evolution of HTML  Explain the page structure used by HTML  List the drawbacks.
Introduction to JavaScript CS101 Introduction to Computing.
Web Development Process The Site Development Process Site Construction is one of the last steps.
Tutorial 1 Developing a Basic Web Page. Objectives Learn the history of the Web and HTML Describe HTML standards and specifications Understand HTML elements.
Introduction to HTML. _______________________________________________________________________________________________________________ 2 Outline Key issues.
Tutorial 6 Working with Web Forms. 2New Perspectives on HTML, XHTML, and XML, Comprehensive, 3rd Edition Objectives Explore how Web forms interact with.
 Web pages originally static  Page is delivered exactly as stored on server  Same information displayed for all users, from all contexts  Dynamic.
HTML A brief introduction HTML1. HTML, what is? HTML is a markup language for describing web documents (web pages). HTML stands for Hyper Text Markup.
HTML Concepts and Techniques Fifth Edition Chapter 1 Introduction to HTML.
Chapter 1 Introduction to HTML, XHTML, and CSS HTML5 & CSS 7 th Edition.
AJAX and REST. Slide 2 What is AJAX? It’s an acronym for Asynchronous JavaScript and XML Although requests need not be asynchronous It’s not really a.
AJAX Use Cases for WSRP Subbu Allamaraju BEA Systems Inc WSRP F2F Meeting, May 2006.
Web Technology (NCS-504) Prepared By Mr. Abhishek Kesharwani Assistant Professor,UCER Naini,Allahabad.
1 CSC160 Chapter 1: Introduction to JavaScript Chapter 2: Placing JavaScript in an HTML File.
Jackson, Web Technologies: A Computer Science Perspective, © 2007 Prentice-Hall, Inc. All rights reserved Chapter 7 Representing Web Data:
JavaScript and Ajax (JavaScript Environment) Week 6 Web site:
INTERNET APPLICATIONS CPIT405 Forms, Internal links, meta tags, search engine friendly websites.
Introduction. Internet Worldwide collection of computers and computer networks that link people to businesses, governmental agencies, educational institutions,
1 Introducing Web Developer Tools Rapid application development tools ASP.NET-compatible web editors –Visual Studio.NET Professional Edition –Visual Studio.
Chapter 1 Getting Started with ASP.NET Objectives Why ASP? To get familiar with our IDE (Integrated Development Environment ), Visual Studio. Understand.
Section 10.1 Define scripting
DHTML.
Project 1 Introduction to HTML.
Javascript and Dynamic Web Pages: Client Side Processing
Unit 4 Representing Web Data: XML
AJAX and REST.
Subbu Allamaraju BEA Systems Inc
Application with Cross-Platform GUI
Prepared for Md. Zakir Hossain Lecturer, CSE, DUET Prepared by Miton Chandra Datta
Chapter 7 Representing Web Data: XML
Introduction to World Wide Web
Presentation transcript:

Accessible Web 2.0 Applications PRESENTED BY: Arne Louison, Web Developer, Governor’s Office of Employee Relations Jeff Bennett, Programmer & Usability Tester, Office of the Chief Information Officer / Office for Technology Mike J. Hritcko, Web Developer, NYS Insurance Fund For the NYS FORUM IT ACCESSIBILITY COMMITTEE

Introductions Arne Louison Governor’s Office of Employee Relations Mike Hritcko State Insurance Fund Jeff Bennett Office of the Chief Information Officer / Office for Technology

Today’s Agenda Web 2.0 Web Accessibility AJAX ARIA

What is “Web 2.0”? Describes the trend in the use of web technology and design to enhance creativity, information sharing, and most notably collaboration among users through the use of interactive components.

Examples of Web 2.0 Social networking service – an online community of people that have similar interests or participate in similar activities. The interaction between these users takes place through the use of online chat, online messaging, video, voice chat or discussion groups…the list goes on.

Examples of Web 2.0 Wiki – a collaborative web site whose content can be edited by anyone who has access to it.

Examples of Web 2.0 Portal – a web site that functions as a collection/entry point for various resources on the site or through external forces (e.g., RSS feeds), and users expect current info at all times.

Examples of Web 2.0 Blog – a web page or site usually maintained by a single person with regular entries of commentary, descriptions of some events or other material. An example would be John Doe posting a few paragraphs on his web site about his ski trip to Aspen. *** (Some blogs permit comments by visitors)

Web 2.0 does not pertain to updates or changes to technical specifications for web languages; refers to changes in the way developers code and visitors user the web. Web 2.0 is not a recommendation by the W3C. Technologies involved in making Web 2.0 web sites such as JavaScript, CSS and HTML are not new, they have been around for a long time.

Screen Reader Demonstration Jeff Bennett, CIO/OFT. Inaccessible form example. Accessible form example. Inaccessible RSS Feed Accessible RSS Feed Discussion on how the screen reader transforms the page to the user.

What’s the difference? With proper semantic markup: ◦ Screen reader renders form properly ◦ User knows what info to provide on first try because programmer/developer properly codes input element By providing adequate user support and instructions, server traffic is reduced.

Web Accessibility What makes it so difficult to make a data driven, visually engaging page, portal, or even dashboard? Dashboard is an application, like a Portal, that provides one central location to get current, real time data. In other words, a “Dashboard” is a presentational format, a visual form of the Portal concept. The evils of buzzwords. Web 2.0 leans toward the latest and least proven technologies.

Portals A web site or web page that functions as a gateway for various resources. Yahoo’s home page would be a good example of a Portal, which is also customizable by any user as “My Yahoo” Usually includes a few “widgets” on a web page that link to or access other resources. These resources can be internal or external. A widget is defined as a chunk of reusable code that can be installed and executed within any separate HTML-based web page by an end user without requiring additional compilation.

Portals (cont’d) Some products that provide access to APIs to easily build these pages through a WYSIWYG editor. Can be made out of a single web page using server side includes: ColdFusion: PHP: ASP:

Example of a “Portal” using server-side includes

Is this Portal Accessible? Assume that all the pages were validated using the NYS Validation Tool. Assume they are compliant with the NYS Standards. So having this knowledge, would this example be accessible? Let’s discuss what makes a page accessible.

Certain things are required to make sure that a page is accessible. Proper semantic markup. Tabindex attributes where appropriate. So having this knowledge, is this web page, or “Portal” accessible? Without looking at the code there really is no way to tell.

I’ll answer the question for you, Sort of…. Okay, why? The page uses no other HTML markup other than DIV tags. This does not allow for proper semantic markup…….HUH????? By using, and other semantic tags, the screen reader has some frame of reference of what you are trying to accomplish. Example: 1 Home Page 9 Pages brought in by server side includes.

Example of a Portal shell

What I am trying to show here is that a page using only DIVs could be made to be accessible if you properly code the page. How is this done? Widget 1 Widget 2 Widget 3 Widget 4 Widget 5 Widget 6 Widget 7 Widget 8 Widget 9

Order is good By putting the DIVs in order of how you would like them to be presented, this page could be made to be accessible, and a screen reader would have no issue rendering the page properly.

Why is this? When a browser receives a web page back from the server, the screen reader will cache the page. The screen reader interacts with the cached page, not with the page in the browser window. If content changes in browser window without reloading page, screen reader won’t know about it.

Why not use tabindex attribute? The reason is that as soon as you add a tabindex attribute to a non-sanctioned form element, the page instantly becomes inaccessible. Form elements, anchors and objects are the only elements within the HTML 4.01 specification that can have a tabindex attribute. The page will not pass any validation, NYS or otherwise.

Did we just see Web 2.0? Nope. This is just a workaround to get our feet wet.

Key concepts of Web 2.0 User interacts with page and makes requests.

Key concepts for Web 2.0 Browser allows JavaScript to make changes to page content – without server reloading page.

Will screen reader user be able to effectively interact with page?

Why JavaScript? Why not some other language? Simply put, JavaScript is client-side scripting - meaning that the processing and changes are done on the client’s PC, within the browser session.

Why JavaScript? Other scripting languages, such as ASP, PHP, ColdFusion, etc. are considered server-side and a request has to be sent to the server for a change or response.

Server-Side Scripting A request has to be made to the server for a response, which in turn will refresh the page. Causes the page to be refreshed every time a new request is made because the page is returned from the server. This can cause excess server traffic. Not very efficient in high traffic sites and can dramatically effect the server’s performance.

Client-Side Scripting Once the page is rendered in the browser, the only requests that are sent to server, are from a “widget” on the page. Done by accessing the Document Object Model (DOM). Only refreshes the information in the calling widget.

The DOM Language and platform independent. Represents both HTML and XML. Suited for applications that need to access a document out of sequence. Required by JavaScript to modify a web page dynamically.

The DOM Tree structure. Parent-child relationships. Create elements ◦ document.createElement(“value") Navigate elements ◦ getElementsByID() ◦ getElementsByName() ◦ getElementsByTagName() ◦ getElementsByClassName()

With all this technology, where is the problem? We talked about how the screen reader caches the page when the browser first receives it. In current technology model, no way for the screen reader user to know anything has been updated or changed on the page. This is a HUGE problem for screen reader users, who find: - dead links - broken forms - wrong info – that appears right

AJAX (Asynchronous JavaScript and XML) Allows cool effects, such as: Adding form elements on the fly. Auto-Suggest features. Updatable Grids that mimic Spreadsheet applications. Uses current technologies such as HTML, JavaScript and CSS. XMLHTTPRequest() method

ARIA (Accessible Rich Internet Application) Not a W3C recommendation yet, it is a working draft. Goal: making AJAX-like applications accessible. Uses the Accessibility APIs of OS platforms to interact with Assistive Technologies. Accomplished using Roles, Properties, States, focus(), and good use of tab indexes.

Tabindexes?? Tabindex attribute has limited use in the current standard. (A, AREA, BUTTON, INPUT, OBJECT, SELECT, TEXTAREA) ARIA may expand usage and utility of the tabindex attribute.

Confused yet? ARIA is in its infancy and is not a recommendation yet. Browsers and Assistive Technology can’t fully implement until it is a recommendation.

Insight into ARIA But I would like to give you a little insight into what they are trying to accomplish with ARIA before we part ways today.

ARIA - Roles Roles – used to define a widget and what a widget will do.

ARIA - Properties and States Properties and States Examples: - aria-checked - aria-labelledby - aria-describedby - aria-haspopup - aria-expanded

focus() focus() - method to move keyboard focus to a DOM node using JavaScript.

tabindex Used for identifying elements that can receive keyboard focus.

Notice a trend? Keyboard focus and keyboard navigation.

Namespaces Make it possible for older browsers to make some use of ARIA markup. xmlns:wairole=“ xmlns:aaa=“

Checkboxes in ARIA Widget Checkbox 1 Widget Checkbox 2 Widget Checkbox 3

Research Research Research Resources: Accessibility Committee ◦ es/ es/ Resources from this presentation ◦ es/curriculum/scripting/index.html es/curriculum/scripting/index.html