mobile accessib es and best practices - Ideals

Mobile Accessibility, Challenges,
and Best Practices
Hadi Rangin & Jim Hahn
University of Illinois at UrbanaChampaign
Introduction
• Strong tendency in higher ed to go mobile
• Users with disabilities can benefit from mobile
apps substantially if they are accessible
– Travel: Trip tracker…
• Special Assistive Apps
– Voice recognition software, color finder…
Goals of this presentation
• Share some of accessibility/usability problems
with common apps
• Derive design & implementation Best
Practices from our findings
• Our knowledge and expertise is very limited
so we need to do it collectively
• Promote Best practices
Demo of accessible and
inaccessible apps
• Accessible apps: Contacts, Mail
• Inaccessible apps: American Airlines
Samples drawn from UGL4EVA app
Dashcode
• Dashcode is a developer environment that
allows you to apply web skills to mobile app
design. We will model a few strategies for
making apps accessible, while also pointing
out limitations in this area.
– In other words, some areas may be fixed in web
based ways, while others using Xcode can be
addressed in the Native developer environment.
Xcode
• Xcode is the native development
environment. It uses C, mostly Objective C but
also C++. You can also work from Apple
provided templates here as well.
The Xcode Developer Environment
1. Specify a button as button
• Problem: the text string doesn’t always
indicate it is a button. Convey that action will
occur.
• Example:
• Fix: use a <role> tag in the HTML of the app
Voice Over will recognize this as a button with
this additional tag used inside of Dashcode
<div role="button"
2. If a button is not available make sure
it is dimmed or invisible to VO
• Problem: Voice over is picking up a button
that should be unavailable.
• Example:
• Fix: Explore turning off this element using CSS for the first
level of the browser or use HTML disabled attribute.
<li><input type="button" value="button 1"></li>
<li><input disabled type="button" value="button 1"></li>
• A few parts of the Dashcode templates are not accessible out
of the box.
3. Video Element
• Problem: voice over is reading “next track,”
but there is no next track, it will actually
forward the video, to the end, if used.
• Example: in UGL4EVA we have one video to play, however Voice Over
reads this as “next track”
• Fix: Use a video plugin that we can modify
track controls. In Dashcode, we are unable to
make controller modifications, since this is
calling a QuickTime plugin.
• We also tested HTML5 video element and are
seeing the same behavior.
• In Xcode we advise leaving out controller
elements if there isn’t a “next track.”
Multimedia Accessibility
• See also:
http://www.w3.org/html/wg/wiki/Multimedia
Accessibilty
4. How do users know what items are
related?
• Problem: how does Voice Over know what
items go together
• Example: There are a number of links here, and Voice Over reads “list
start” where the grouping begins.
• Fix: use a list element to group portions of the
page together and provide a heading element
preceding that indicates the purpose of list.
5. Table index outside the navigator
• Problem: This index is not read by Voice Over.
• Example
• Fix: Designers should make certain the index
of letters is accessible from the page
navigation. Either make the table index
(Skype) in a tab order (the user can access
from Keyboard) or use alphabetical navigation
with headings (example: Apple contact List).
6. Screen Reader View and Visual View
Not Consistent
• Problem: Voice Over is reading portions of the
page that are not displayed.
• Example: see Page Once, Al Jeezera Live,
AA.com
• Fix: Developers should test the VoiceOver
functionality for when portions of the page
are hidden from view, since screen readers will
be able to pick up portions of this.
7. In Plain Text app menu, if you need
to activate a menu…
• Problem: Menu activation requires a user tap
in the screen, but Voice Over has no way to
indicate this
• Example: Plain Text example
• Fix: Avoid such events. Dedicate a funtion on
the interface. Make sure we have a fixed or
dedicated menu for this. Make the function
keyboard accessible.
8. Page title • Problem: Identify the page with the proper
heading.
• Example:
• Fix: main app home screen modified to
indicate it is a video tour application
9. Tab order when using a table
layout
• Problem: if you design with a table layout, the
order of the items may be unintentionally
confusing.
• Example: AA.com mobile app is a good
example
• Fix: Consider using a layout that will be easily
navigated by a keyboard.
10. Proper Form Control
• Problem: Lack of form labels
• Example: Use radio button if you can’t select
more than 1 item. Use checkbox to enable
selection of more than one item.
• Fix: Use label for the form control. Similar to
HTML technique.
Conclusion
• Process: test your beta mobile apps with Voice
Over before launching to App Store
Consulted
Safari HTML Reference:
http://developer.apple.com/library/safari/documentation/AppleApplications/Reference/SafariHT
MLRef/SafariHTMLRef.pdf
See section: supported accessibility roles, p. 105