Accessibility on Windows Phone - Windows Phone Meetup at Nokia - 16 October @iRajLal

57
Accessible Mobile Apps and Web pages Accessibility on Windows Phone Rajesh Lal Senior Engineer

description

Learn what accessibility means and how to develop your app and web pages to make it more accessible on mobile devices. An accessible app gives maximum reach to your information, functionality and benefits. The four major disabilities that effect user capabilities are visual, hearing, mobility (difficulty in using the mouse) and cognitive disabilities (which are related to learning abilities). Know how to use the latest HTML5 and Accessible technologies to create for mobile devices.

Transcript of Accessibility on Windows Phone - Windows Phone Meetup at Nokia - 16 October @iRajLal

Page 1: Accessibility on Windows Phone - Windows Phone Meetup at Nokia - 16 October @iRajLal

Accessible Mobile Apps and Web pagesAccessibility on Windows Phone

Rajesh LalSenior Engineer

Page 2: Accessibility on Windows Phone - Windows Phone Meetup at Nokia - 16 October @iRajLal

Agenda

MobileAccessibility

Assistive Technology (AT) Users

How AT Works

Accessible App & Website

Page 3: Accessibility on Windows Phone - Windows Phone Meetup at Nokia - 16 October @iRajLal

Mobile Accessibility

Page 4: Accessibility on Windows Phone - Windows Phone Meetup at Nokia - 16 October @iRajLal

Easy to use at all circumstances and by everyone

Mobile Accessibility

Page 5: Accessibility on Windows Phone - Windows Phone Meetup at Nokia - 16 October @iRajLal

• Limited light• Noisy places• Low connectivity• User is Mobile• Temporary Disabled

Mobile Accessibility: Circumstances

Page 6: Accessibility on Windows Phone - Windows Phone Meetup at Nokia - 16 October @iRajLal
Page 7: Accessibility on Windows Phone - Windows Phone Meetup at Nokia - 16 October @iRajLal

• User with Special Needs• Parents • Senior Citizens• Low Literacy Level

Mobile Accessibility: Everyone

Page 8: Accessibility on Windows Phone - Windows Phone Meetup at Nokia - 16 October @iRajLal
Page 9: Accessibility on Windows Phone - Windows Phone Meetup at Nokia - 16 October @iRajLal

Assistive Technology

Page 10: Accessibility on Windows Phone - Windows Phone Meetup at Nokia - 16 October @iRajLal

4 Key Areas

Hearing

Mobility

Cognitive

Visual

Page 11: Accessibility on Windows Phone - Windows Phone Meetup at Nokia - 16 October @iRajLal

Users of Assistive Technology

• Visually Impaired• Blind• Cognitive, Learning Disability• Deaf• Hearing Impaired• Mobility, Physically handicapped

Page 12: Accessibility on Windows Phone - Windows Phone Meetup at Nokia - 16 October @iRajLal

Assistive Technology MobileHardware/Software UserScreen Readers Visual, Blind, Cognitive

Text Magnifier Visual, Cognitive

Color/ Brightness keys Visual, Cognitive

Headphones Cognitive, Hearing

Text/Audio Browser Visual, Blind

Speech Recognition Visual, Blind, Cognitive, Mobility

Virtual Keyboards Mobility

Captioning Text Cognitive, Hearing, Deaf

Page 13: Accessibility on Windows Phone - Windows Phone Meetup at Nokia - 16 October @iRajLal

How Assistive Technology Works

Page 14: Accessibility on Windows Phone - Windows Phone Meetup at Nokia - 16 October @iRajLal

Assistive Technology

Accessibility APIs

How Assistive Technology Works

APP / WEB

Page 15: Accessibility on Windows Phone - Windows Phone Meetup at Nokia - 16 October @iRajLal

Accessible Apps

Page 16: Accessibility on Windows Phone - Windows Phone Meetup at Nokia - 16 October @iRajLal

Accessible Apps

1. UI Automation 2. Color Contrast 3. Media, Form and Content

Page 17: Accessibility on Windows Phone - Windows Phone Meetup at Nokia - 16 October @iRajLal

1. UI Automation

Page 18: Accessibility on Windows Phone - Windows Phone Meetup at Nokia - 16 October @iRajLal

UI Automation

Accessibility API to help Assistive Technology interact with UI elements of an application

• Automation Properties• Automation Peer

Page 19: Accessibility on Windows Phone - Windows Phone Meetup at Nokia - 16 October @iRajLal

UI Automation

Assistive Technology

Platform Accessibility

APIs

XAML

Automation Properties/Peers

Screen Reader

Microsoft UI Automation

AccessKeyName HelpText

Page 20: Accessibility on Windows Phone - Windows Phone Meetup at Nokia - 16 October @iRajLal

UI Automation

UI Automation Tree

Page 21: Accessibility on Windows Phone - Windows Phone Meetup at Nokia - 16 October @iRajLal

Automation Properties

Page 22: Accessibility on Windows Phone - Windows Phone Meetup at Nokia - 16 October @iRajLal

Automation Properties

These property values are set as attached properties.

For getting or setting the value of instance-level values of automation properties

Page 23: Accessibility on Windows Phone - Windows Phone Meetup at Nokia - 16 October @iRajLal

Automation Properties

Page 25: Accessibility on Windows Phone - Windows Phone Meetup at Nokia - 16 October @iRajLal

Automation Peer

2 methods to raise a change notification

AutomationPeer.RaisePropertyChangedEvent method to signal property changes

AutomationPeer.RaiseAutomationEvent method to signal other types of automation changes

Page 26: Accessibility on Windows Phone - Windows Phone Meetup at Nokia - 16 October @iRajLal

2. Color Contrast

Page 27: Accessibility on Windows Phone - Windows Phone Meetup at Nokia - 16 October @iRajLal

Accessible Apps: Color Contrast

Use 5:1 ratio for Foreground to Background color contrast

Page 28: Accessibility on Windows Phone - Windows Phone Meetup at Nokia - 16 October @iRajLal

3. Accessible Forms, Media, Content

Page 29: Accessibility on Windows Phone - Windows Phone Meetup at Nokia - 16 October @iRajLal

Accessible Apps: Media, Forms, Content

• Use TabIndex, IsTabStop for Tab Order in Forms

• Use LabeledBy for Form Fields

• Use IsRequiredForForm property

• Closed Caption, sub-titles For Media

• Use Full words in content (LiveHelp != Live Help)

Page 30: Accessibility on Windows Phone - Windows Phone Meetup at Nokia - 16 October @iRajLal

Accessible Web Pages

Page 31: Accessibility on Windows Phone - Windows Phone Meetup at Nokia - 16 October @iRajLal

1. ARIA2. HOW ARIA Works3. Using ARIA4. Developing Accessible Mobile Website

Accessible Web Pages

Page 32: Accessibility on Windows Phone - Windows Phone Meetup at Nokia - 16 October @iRajLal

1. ARIA

Page 33: Accessibility on Windows Phone - Windows Phone Meetup at Nokia - 16 October @iRajLal

• ARIA is a W3C Initiative & part of HTML5

• ARIA helps Assistive Technology(AT)

• ARIA Make Web content Accessible to AT

• ARIA uses HTML and CSS Tags

• Most of ARIA is embedded in JS libraries

ARIA (Accessible Rich Internet Application)

Page 34: Accessibility on Windows Phone - Windows Phone Meetup at Nokia - 16 October @iRajLal

2. How ARIA Works

Page 35: Accessibility on Windows Phone - Windows Phone Meetup at Nokia - 16 October @iRajLal

How ARIA Works

Assistive Technology

Platform Accessibility

APIs

StatesRoles Properties

HTML

ARIA

Windows Eye

Windows MSAAUI Automation

Page 36: Accessibility on Windows Phone - Windows Phone Meetup at Nokia - 16 October @iRajLal

3. Using ARIA

Page 37: Accessibility on Windows Phone - Windows Phone Meetup at Nokia - 16 October @iRajLal

ARIA

• Set of Roles, States, and Properties

• Assigned to HTML

• Exposes web page to Accessibility APIs

Page 38: Accessibility on Windows Phone - Windows Phone Meetup at Nokia - 16 October @iRajLal

ARIA Roles

• Landmark Roles – Where Am I

• Structural Roles – What’s This

• Interface Widget Roles

Page 39: Accessibility on Windows Phone - Windows Phone Meetup at Nokia - 16 October @iRajLal

ARIA Roles

Role type Role name Role name

Landmark roles

applicationbannercomplementarycontentinfo

formmainnavigationsearch

Page 40: Accessibility on Windows Phone - Windows Phone Meetup at Nokia - 16 October @iRajLal

ARIA Roles

Role type Role name Role nameStructural roles

articlecolumnheaderdefinitiondirectorydocumentgroupheadingimglist

listitemmathnotepresentationregionrowrowheaderseparatortoolbar

Page 41: Accessibility on Windows Phone - Windows Phone Meetup at Nokia - 16 October @iRajLal

ARIA Roles

Role type Role name Role nameInterface Widget Roles

standalone widgetalertalertdialogbuttoncheckboxdialoggridcelllinklog

spinbuttonstatustabtabpaneltextboxtimertooltiptreeitem composite

Page 42: Accessibility on Windows Phone - Windows Phone Meetup at Nokia - 16 October @iRajLal

ARIA Roles

Role type Role name Role nameInterface Widget Roles

marqueemenuitemmenuitemcheckboxmenuitemradiooptionprogressbarradioscrollbarslider

widgetcomboboxgridlistboxmenumenubarradiogrouptablistTree / treegrid

Page 43: Accessibility on Windows Phone - Windows Phone Meetup at Nokia - 16 October @iRajLal

ARIA States

• Dynamic Properties

• Global States

• Widget States

Page 44: Accessibility on Windows Phone - Windows Phone Meetup at Nokia - 16 October @iRajLal

ARIA State

Attribute type Global WidgetARIA states aria-busy

aria-disabledaria-grabbedaria-hiddenaria-invalid

listitemmathnotepresentationregionrowrowheaderseparatortoolbar

Page 45: Accessibility on Windows Phone - Windows Phone Meetup at Nokia - 16 October @iRajLal

ARIA Properties

• Relatively Static Properties

Page 46: Accessibility on Windows Phone - Windows Phone Meetup at Nokia - 16 October @iRajLal

ARIA Properties

Attribute type Global WidgetARIA Properties

aria-atomicaria-controlsaria-describedbyaria-dropeffectaria-flowtoaria-haspopuparia-labelaria-labelledby

aria-autocompletearia-haspopuparia-labelaria-levelaria-multilinearia-multiselectable

Page 47: Accessibility on Windows Phone - Windows Phone Meetup at Nokia - 16 October @iRajLal

ARIA Properties

Attribute type Global WidgetARIA Properties

aria-livearia-ownsaria-relevant

aria-orientationaria-readonlyaria-requiredaria-sortaria-valuemaxaria-valueminaria-valuenowaria-valuetext

Page 48: Accessibility on Windows Phone - Windows Phone Meetup at Nokia - 16 October @iRajLal

Accessible Website with HTML5

Home

Contact About

Page 49: Accessibility on Windows Phone - Windows Phone Meetup at Nokia - 16 October @iRajLal

Accessible HTML5 Home page

<header role="banner"><nav role="navigation"><section role=“main”><footer role=“contentinfo”>…

HTML5 Accessible HTML5

Page 50: Accessibility on Windows Phone - Windows Phone Meetup at Nokia - 16 October @iRajLal

Accessible HTML5 Contact Form

Page 51: Accessibility on Windows Phone - Windows Phone Meetup at Nokia - 16 October @iRajLal

Accessible HTML5 Form

• Use label tag for describing form elements

• Associate labels with controls using for attribute

• Create a logical tab order with tabindex

• Use placeholder, type=email, url, text

• Use fieldset and legend to group form elements

HTML5

Page 52: Accessibility on Windows Phone - Windows Phone Meetup at Nokia - 16 October @iRajLal

Accessible HTML5 Form

• Use role=main and keep one form in one page

• Use aria-required for required fields

• Use aria-live=assertive in the form for validation

• Use aria-describedby for adding help to fields

ARIA

Page 53: Accessibility on Windows Phone - Windows Phone Meetup at Nokia - 16 October @iRajLal

Accessible About Page

• Accessible Image

• Accessible Text and Links

Page 54: Accessibility on Windows Phone - Windows Phone Meetup at Nokia - 16 October @iRajLal

Accessible Image

Use alt attribute for alternative text for the image

Use title attribute for tooltip

Use role=presentation to ignore the image

Use blank alt for decorative images

Use meaningful name for src=meaningful.png

Page 55: Accessibility on Windows Phone - Windows Phone Meetup at Nokia - 16 October @iRajLal

Accessible Text and Links

• Font size should always be relative , never fixed

• Links should be underlined and visited different color

• Use Anchor links, easily navigable by screen readers

• Meaningful link text , avoid using “click here” or “more”

• Color in CSS with foreground & background color

• Simple and Machine readable words like “Home page”

Page 57: Accessibility on Windows Phone - Windows Phone Meetup at Nokia - 16 October @iRajLal

Thank YouRaj Lal

[email protected]

Twitter @ iRajLal