Simplifying Mobile A11y Presentation.pptx

MarkSteadman7 281 views 79 slides May 11, 2024
Slide 1
Slide 1 of 79
Slide 1
1
Slide 2
2
Slide 3
3
Slide 4
4
Slide 5
5
Slide 6
6
Slide 7
7
Slide 8
8
Slide 9
9
Slide 10
10
Slide 11
11
Slide 12
12
Slide 13
13
Slide 14
14
Slide 15
15
Slide 16
16
Slide 17
17
Slide 18
18
Slide 19
19
Slide 20
20
Slide 21
21
Slide 22
22
Slide 23
23
Slide 24
24
Slide 25
25
Slide 26
26
Slide 27
27
Slide 28
28
Slide 29
29
Slide 30
30
Slide 31
31
Slide 32
32
Slide 33
33
Slide 34
34
Slide 35
35
Slide 36
36
Slide 37
37
Slide 38
38
Slide 39
39
Slide 40
40
Slide 41
41
Slide 42
42
Slide 43
43
Slide 44
44
Slide 45
45
Slide 46
46
Slide 47
47
Slide 48
48
Slide 49
49
Slide 50
50
Slide 51
51
Slide 52
52
Slide 53
53
Slide 54
54
Slide 55
55
Slide 56
56
Slide 57
57
Slide 58
58
Slide 59
59
Slide 60
60
Slide 61
61
Slide 62
62
Slide 63
63
Slide 64
64
Slide 65
65
Slide 66
66
Slide 67
67
Slide 68
68
Slide 69
69
Slide 70
70
Slide 71
71
Slide 72
72
Slide 73
73
Slide 74
74
Slide 75
75
Slide 76
76
Slide 77
77
Slide 78
78
Slide 79
79

About This Presentation

Mobile accessibility can be a very difficult space to navigate. Let's make it easier to dive right in! From common terms, breakdown of application accessibility, and building up accessibility on mobile development teams, this session will help build the foundation to ensure your mobile applicati...


Slide Content

Simplifying Mobile Accessibility

Who Am I? Name: Mark Steadman Director – Digital Accessibility Fidelity Investments Mobile Contributions: W3C Mobile Working Group Member MCAG Contributor IAAP mobile cert committee member

Learning Outcomes The Disconnect Why mobile accessibility tends to be an afterthought Simple Mobile Requirements Simple guide to helping you build accessible mobile apps Sustaining and Building How can each role impact making our apps accessible

Why, What, How? Mobile Accessibility 101 /01

Global traffic on mobile devices has increased from 6% in 2011, to 54% in 2021 Anything and everything has a mobile app now.  Some sites even force you to USE the mobile app (Reddit) Quick, easy access: Communication Ride Sharing Banking Food delivery/Grocery Delivery Why Does Mobile Accessibility Matter

Why Does Mobile Accessibility Matter cont. According to A study done in the Netherlands: 45% of users have one or more accessibility setting on. 15% have more than one accessibility setting on. Source Credit: https://appt.org/en https://www.cdc.gov/ncbddd/disabilityandhealth/infographic-disability-impacts-all.html According to a study done by the CDC, in the US: Around 260 Million Adults in the US 1 in 4 Adults (27%) have a disability (~70 Million) 12.8% Have cognitive disabilities (~33.3 Million) 12.1% have mobility disabilities (~31.5 Million) 6.1% have Hearing Disabilities (~15.9 Million) 4.8% have vision disabilities (~12.5 Million)

What Enforces It? Court Decisions: State of Oklahoma/DOJ Settlement Labcorp Kiosk Settlement Dominos Lawsuit In Law: ADA Act Title II DOJ Accessibility Guidance Guidelines: WCAG – Specifically 2.1 and 2.2 Human interface guidelines User Agent Accessibility Guidelines

Android Assistive Technology Screen Reader: Voice Over Text Resizing Voice Control Switch Control iOS Assistive Technology Screen Reader: TalkBack Text Resizing Switch Access Keyboard How Do Users Interact with Mobile Apps?

Common Navigation Patterns Basic Navigation Move to the next item – Swipe right Move to previous item – Swipe left Activate Focused Item – Double Tap Stop speaking – Two finger tap Additional Controls Rotor Navigation (iOS) – Two finger rotation in circle Once selected swipe up/down LCM Local Context Menu (Android) Three finger swipe right or left Once selected swipe up/down

Lets Get Hands On! Lets get hands on

BUT FIRST!!! Shortcuts! INDEX.HTML BUT FIRST! Shortcuts

TalkBack Directions 1. Open Settings​ 2. Open Accessibility option​ 3. Scroll to the bottom, Accessibility Shortcut option​ 4. Make sure  VoiceOver  is selected VoiceOver Directions 1. Open Settings​ 2. Open Accessibility option​ 3. Scroll to the bottom, Accessibility Shortcut option​ 4. Make sure  VoiceOver  is selected Voiceover and Talkback Shortcut Activation

Amazon Workshop Activity Open Amazon App Turn on screen reader (Using shortcut) Using the navigation patterns in previous slide do the following: Search for notebook Add notebook to cart Navigate to the cart

Amazon Workshop Outcomes What did you notice? How difficult was the experience? Was there anything you believe could have made it better?

The Disconnect WCAG? Terminology? Hybrid Apps? Oh my! /02

Accessibility always gets a bad reputation in the mobile community because of one big thing. “Web specialists don’t get mobile!” Mobile developers and designers only have one set of guidelines and resources to go off of, and those are all web based. Minimum requirements are difficult and hard to parse through What is the Disconnect

Talking the mobile talk! How can we talk in the same terms as mobile devs and designers? What are the actual mobile standards? Hybrid application development vs native mobile application development Fixing the Disconnect

Page = View Main Nav = Navigation/System Bar Aria- describedby or extra content = Hint Focus = Swipe stop/point Tab Order = Swipe Order Resize Text = Scale Key Accessibility Terminology - Common

Android Terms Alt Text = accessibilityLabel Role/Aria = Trait Heading = isHeader Tabindex of 0 = groupAccessibilityChildren Aria-hidden = accessibilityHidden iOS Terms Alt Text = ContentDescription Role = Role or RoleDescription Aria- labeledby = labelFor Tabindex of 0 = focusable attribute Aria-hidden = importForAccessibility Key Accessibility Terminology

The Problem: There are no “official” mobile accessibility standards. Expectations for user interaction in mobile unclear The Reality : WCAG DOES apply to mobile applications, and quite easily. W3C has a working group that is building official set of mobile accessibility standards Where Are The Standards?!

Unofficial Mobile Standards Two sets of unofficial standards: BBC Mobile Standards MCAG (Evinced)

Wrench of Hybrid Hybrid applications combine Web and Native development into one singular application Apps are built in web frameworks and then compiled into mobile applications Examples of Hybrid frameworks Cordova Ionic React Native

Wrench of Hybrid Cont. Major disconnect in the accessibility community is understanding the type of application being developed. If it is hybrid, then (unless React Native) it is developed using web based frameworks If it is Native, it is developed using Android and iOS based development frameworks Example: Swift/ SwiftUI , Android View/ JetPack Compose

Breaking Down Mobile A11y Requirements /03

For This Breakdown… For this ENTIRE section, pick any application you want on your mobile device and test it for these requirements You may want to have a couple apps to try out on this. We will leave plenty of testing time for you all to try it out as we go, but please ensure your volume is down a little bit or headphones are in for others around you Ask questions! I want this to be interactive!

The Breakdown of the Breakdown! 12 Specific requirements. These 12 requirements are based on data collection done through multiple applications and audits completed that took the top 12 issues seen in mobile applications 4 Categories of Issues View Structure (Navigation) Interactable elements Content User Interaction

Proper navigating through an application Headings Easy navigation between content View Titles Unique titles for each new view Swipe Order View Structure (Navigation)

Headings - Requirement Rule #1: Main view title must be announced as heading (iOS), Android is NOT required to announce as heading Rule #2: Any text that breaks up logical chunks of content should be properly designated as a heading Rule #3: Headings MUST be navigable by proper OS functionality iOS: Rotor Android: LCM (Local content menu)

Headings - Tests Test #1 Identifying Headings: Text that breaks up logical chunks of content should announce as “<Text> Heading” Test #2 Navigation: A user should be able to navigate between sections of content using the Rotor in iOS or LCM in Android iOS Rotor: With VO on, Twist two fingers right/left until you hear headings and swipe up/down to navigate by headings Android LCM: Use three finger swipe left/right until you hear “Headings” then swipe up/down to navigate by headings

Headings - Examples Good Bad

View Titles - Requirements Rule #1: Each view must have a unique title Rule #2: If a unique title is not possible on each view (Ex: Sign up for insurance), then the following subheading can qualify as the unique heading Rule #3: Titles should not have trailing … or be cutoff

View Titles - Tests Test #1 Ensure Unique Titles: As you navigate from view to view, ensure the title in the top of the view is changing Test #2 Ensure Titles Exist: No view should have no title UNLESS the next subsequent text is a heading that serves as the views title (Example to follow) Test #3 Ensure title does not cut off: Without resizing, ensure the title does not have any trailing … or is cut off. Titles should be unique and concise.

View Titles - Test Test #1 Ensure Unique Titles: As you navigate from view to view, ensure the title in the top of the view is changing Test #2 Ensure Titles Exist: No view should have no title UNLESS the next subsequent text is a heading that serves as the views title (Example to follow) Test #3 Ensure title does not cut off: Without resizing, ensure the title does not have any trailing … or is cut off. Titles should be unique and concise.

View Titles - Examples Good Bad

Swipe Order - Requirements Rule #1: Items that logically are group together (Ex: buttons with large amounts of info) are grouped properly in swipe order Rule #2: Ensure content that is not visible is not accessible with screen reader on. Rule #3: Ensure focus view to view is consistent Default focus is to the back button or view title If modal or tray, the focus must return to the trigger

Swipe Order -Test Rule #1: Items that logically are group together (Ex: buttons with large amounts of info) are grouped properly in swipe order Rule #2: Ensure content that is not visible is not accessible with screen reader on. Rule #3: Ensure focus view to view is consistent Default focus is to the back button or view title If modal or tray, the focus must return to the trigger

Swipe Order Examples Test #1: With VO and TB on, swiping through (right/left) ensure logical grouped content reads as one stop Test #2: With VO and TB on, swiping through (right/left) Ensure no hidden content is visible to screen reader users. Test #3 Ensure focus view to view is consistent. Either stick with default in the title bar OR if focus is controlled it is consistent where it goes Test #4 If a modal or tray is opened, focus returns to the trigger that opened it

Swipe Order- Examples Good Bad Example Credit: Android Documentation and Microsoft Mobile Engineering

Swipe Order- Examples Cont. Good Bad

Native apps should work with keyboard and screen reader Button/Links What is button/Link. Ensuring it properly states its role Input/Forms Inputs/forms should conform to specific mobile standards Keyboard Interactable Elements

Button/Link - Requirements Rule #1: Each actionable item must have a proper role! (Trait in iOS) Rule #2: Links take you to webview or web content, buttons keep you within native views Rule #3: Each actionable item must have a proper accessible name that clearly defines its purpose. Note: The label CANNOT include the role

Button/Link - Tests Test #1: With VO and TB on, ensure each actionable item has a proper role (Trait) that describes its purpose Test #2: With VO and TB on, if an actionable item takes you to a webview or web content, it has proper role (trait) of link Test #3: With VO And TB on, ensure that the label for each actionable item properly describes it and does not include: file extension naming the role of the item

Buttons/Links - Examples Good Bad

Inputs/Forms - Requirements Rule #1: Each input should have a consistent and visible label Rule #2: Forms should have an error message WITH proper error icon associated with the input or the entirety of the form Rule #3: Each input MUST NOT have multiple swipe stops (focus points). Single swipe point is all that is needed.

Inputs/Forms - Tests Test #1: Ensure each input has a consistent and visible label that is within a logical proximity to the input Test #2: In a form (such as login) enter no information and ensure there is either error messages on each field in question OR a global error message Test #3: With VO or TB on, ensure while swiping through the inputs that the label or error message are not swiped to and it is only focused on the input

Inputs/Forms - Examples Good Bad

Inputs/Forms - Examples Bad

Keyboard - Requirement Rule #1: Native application should function properly in iOS and Android with screen reader on. Should properly function WITHOUT in Android

Keyboard - Test Test #1: Connect a Bluetooth keyboard to your device, and turn on VO or TB. Using standard navigation for keyboard, navigate through the view of the application and ensure all actions and content are accessible. Android Keyboard Commands iOS Keyboard Commands

Keyboard – Example

Color alone cannot dictate vital info Resize Text Text changing size and not cutting ff Images Are properly hidden or described U s e of Color Content

Resize Text - Requirements Body copy should be readable, without overlap or truncation, at roughly 200% of its default size Headings (e.g., not body copy) should be readable roughly 130% of its base size The following is a generally agreed upon method of resizing text on mobile devices to measure the above success criteria: iOS Settings > Accessibility > Display & Text Size > Larger Text With the “Larger Accessibility Sizes” toggle Off, using the drag slider increase the text size as large as it will go, then Toggle the “Larger Accessibility Sizes” toggle On, and drag the slider three more notches (this is considered AX3) Android Settings > Accessibility > Text & Display > Font Size Use the drag slider to increase the text size to 6 of 8

Resize Text - Test Test #1: iOS With font settings to AX3, look to see if all content is available does NOT contain trailing … Android With font settings to 6 of 8, look to see if all content is available does NOT contain trailing …

Resize Text -Example Good Bad

Images - Requirements Rule #1: Images that are decorative should be hidden from screen reader users, those that are not should have proper accessibility label. Rule #2: Images MUST NOT contain large chunks of text.

Images - Test Test #1: With VO and TB on, ensure that each image is either properly hidden from screen reader OR has proper accessible label for it. Test #2: Locate any images that contain multiple lines of text or text with vital information for the user.

Images - Examples Good Bad

Use of Color - Requirement Rule #1: Any use of color that depicts vital information to users cannot be used and must have an alternative to share said information

Use of Color - Test Test #1: Navigating your application, seek any information that depicted using color alone. IF there is not alternative way to gain that information, use of color is violated Example: Showing negative and positive integers as red and green respectively

Use of Color - Example Good Bad

All custom gestures must not interfere with common gestures Touch Target Size Proper sizes for interaction Orientation App must work in both landscape and portrait Custom Gestures User Interaction

Touch Target Size - Requirements Rule #1: All touch targets in mobile applications must be large enough and easily touchable by all users Android MUST have a minimum touch target size of 4 8dp x 48dp iOS MUST have a minimum touch target size of 44pt x 44 pt

Touch Target Size - Tests Test #1: iOS: Use of the Accessibility Inspector Android Use of the Google Accessibility Scanner

Touch Target Size - Example Good Bad

Orientation - Requirements Rule #1: Mobile applications must adhere to landscape and portrait modes Rule #2: When in landscape, not text or loss of context has occurred

Orientation – Test Test #1: Turn on Orientation (allow rotation: iOS: Open control center by swiping from right corner and tapping the “Lock” logo Android: Open control center by swiping from right corner and tapping the “rotation” button (or lock icon if it is locked) Once on, ensure the application works in both landscape and portrait. If portrait works, ensure no overlap or loss of context occurs

Orientation – Example Good

Custom Gestures - Requirements Rule #1: Any custom gestures (Swipe patterns, touch and hold) MUST NOT interfere with common gestures Rule #2: Swipe only gestures MUST have an alternative method or proper instruction and not be overly complex

Custom Gestures - Test Test #1: With VO or TB on, navigate the application using right and left swipe. If any item in the view does something out of the norm (Text sliding, item selected) custom gestures fails Test #2: With VO or TB on, navigate to a “slide to” gesture component and ensure that either: The component has proper instruction to use Has an alternative method to interact

Custom Gestures – Example Good Bad

Sustain and Build Simple Mobile A11y /04

Everybody Has A Role Each person in an organization plays a vital role in ensuring your mobile content is accessible Using the 12 requirements above, we can see how each role can have a large impact in ensuring the issues are fixed before they are even released into production!

Tools to Use Headings Visible Label Resize Text Swipe Order Grouping Touch target size Orientation Potential Issues to Fix Include : eBays accessibility annotations toolkit CVS iOS Annotations : CVS a11y kit for iOS specifically Role: Designers

Sample Designer Tools

Tools to Use Buttons/Links Images Touch Target Swipe Order Potential Issues to Fix Role: Developers Linters SwiftLint Android ATF Automated Tools Accessibility Inspector (iOS) Google Accessibility Scanner

Linting Example with SwiftLint

Automated Testing Tool Example

QA members can have a multitude of different jobs in their daily tasks Regression testing can be a MASSIVE endeavor for teams to get done, and adding accessibility testing to this can be difficult. So what can we do to ensure QA gets accessibility as part of their testing? Role: QA/Test Team

Minute to Win it Tests! – Screen Reader Roles for Actions:  Do actionable items have a proper Role? Roles include button, link, switch. Headers:   Do labels that break up sections of content announce as headings? Using the heading rotor command, can you navigate through headings? Appropriate Accessible Text:  Do screen reader announcements match the visual label?  Image Descriptions : Informative: Does the accessible label properly represent the image? Decorative: Is the image hidden from screen reader focus?