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

Transcript
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