This presentation was developed for Intuit's Bangalore Accessibility Week. It borrows heavily from the presentations given by the Google Accessibility Team at Google IO and provides additional resources on functionality.
This document provides an overview of beginning native Android app development. It discusses Android app structure including the manifest, activities, intents and lifecycles. It also covers common Android views and layouts, accessing device capabilities like the camera and location, working with data via content providers, and rendering with OpenGL. Example code is provided for various app features like input handling, scrollable lists, and camera access. The document concludes with the process for submitting an app to the Google Play Store.
Make Cross-platform Mobile Apps Quickly - SIGGRAPH 2014Gil Irizarry
This document provides a summary of a presentation about making cross-platform mobile apps quickly using open source tools. It discusses using PhoneGap to create apps using HTML, CSS, and JavaScript that are cross-platform. It provides examples of building simple apps demonstrating concepts like accessing device data, using maps, touch events, and animation. The examples are meant to illustrate how to create mobile apps that work across Android and iOS without using their native languages.
This document summarizes some of the new features in Android 4.4 KitKat presented by Chet Haase and Romain Guy. It discusses the new storage access framework which allows browsing local and cloud documents through a standard interface. Printing capabilities are expanded through new PDF generation and printing APIs. The user interface is enhanced with translucent system bars, immersive full-screen mode, and a new WebView based on Chromium. Scene and transition animations can now be defined through code, resources, or a transition manager.
The document discusses several new features and APIs in Android 3.0 (Honeycomb) for tablets, including fragments which allow recomposing UI based on factors like screen size, loaders for asynchronously fetching content, an enhanced action bar for navigation and menus, hardware accelerated graphics, and the new holographic UI design. It also questions what some aspects of Android 3.0 may mean for future phone releases and how to detect "tablet-y" systems.
The document describes the activity lifecycle in Android, including key methods like onCreate(), onResume(), onPause(), onStop(), and onDestroy(). It explains that onCreate() initializes the activity, onResume() makes it interactive, onPause() pauses it on switching to another activity, onStop() ends visibility, and onDestroy() ends the activity. It also provides examples of how to start a new activity using an intent and how to pass data between activities.
Design Patterns for Tablets and SmartphonesMichael Galpin
This is a talk I gave at AnDevCon. It talks about ways to take advantage of features introduced in Android 3.0 to create more modular and better looking apps.
The document discusses the basic components of an Android app. It explains that an Android app consists of components like activities, services, broadcast receivers, and content providers. Activities provide the main user interface and common ones include launching the app and navigating within it. The app manifest file defines these components. The document also covers activities and intents, explaining how activities are launched via explicit and implicit intents and how data can be passed between activities.
In Android, the user interface is built using a hierarchy of View and ViewGroup objects. Views are basic UI elements like buttons and text fields, while ViewGroups serve as containers to hold other views and arrange their layout. The UI hierarchy is defined using XML layout files, which map XML elements to their corresponding View classes. These layout files are loaded and inflated into views at runtime. Views can also be created and added programmatically in code. Views handle drawing, interaction events, and other behaviors to display the UI to the user.
The document provides an overview of iOS app development basics including building a "Hello World" app, application architecture and states, coding in Objective-C, short message sending, storyboarding, and static table views. It discusses setting up an Xcode project, the app delegate, view controllers, windows, and application states like active, background, and suspended. It also covers Objective-C basics like properties, accessors, and blocks.
Being Epic: Best Practices for Android DevelopmentReto Meier
This document provides best practices for Android development. It discusses five "deadly sins" to avoid: sloth (being slow and unresponsive), gluttony (using system resources irresponsibly), hostility (fighting users), arrogance (fighting the system), and discrimination. It also discusses five "glorious virtues" to embrace: beauty (design), generosity (sharing), ubiquity (being everywhere), utility (being useful), and epicness (being legendary). It covers topics like performance, wake locks, navigation, preferences, undocumented APIs, screen sizes, analytics, background updates, location services, and more. The overall message is to create high-quality, useful apps that respect users and system resources.
With the introduction of the iPhone 6s and the iPhone 6s Plus, Apple added 3D Touch, a new dimension to the multi-touch user interface. This new technology senses how deeply users press the display and provides a new way to interact with the iPhone.
In iOS 9, Apple introduced several 3D Touch APIs. In this session I will explain in a practical way what is 3D Touch and how you can benefit from it in your app. I will cover home screen quick actions, peek and pop actions and also how to use the force properties of a UITouch event.
Mobile Application Development with JUCE and Native API’sAdam Wilson
This document discusses mixing JUCE components with native iOS and Android UI elements for mobile app development. It explains that JUCE was designed for desktop apps, not touchscreens, and lists some limitations. The solution presented is to use native platform APIs for scrollable lists, navigation, input, and databases, while using JUCE for audio processing, custom graphics, and specialized GUI elements. Advantages include familiar UIs, smooth scrolling, gesture support, and animation support from native APIs. Disadvantages include extra design and coding work. It then provides details on how to mix JUCE with native UI elements for Android and iOS, including modifying activities, passing data between languages, and integrating JUCE views into native view hierarchies.
1. Android N introduces multi-window mode which allows users to use multiple apps simultaneously by displaying them in split-screen or picture-in-picture modes.
2. Developers can configure their apps to support multi-window mode through settings like android:resizeableActivity and by handling configuration changes and lifecycle methods appropriately when an app is in a paused state but still visible.
3. Best practices for multi-window include designing first for the smallest screen size, handling all orientations, and ensuring activities work properly when launched by other apps in multi-window mode.
This document discusses strategies for building white label apps that can be customized for different clients or brands. It recommends:
1. Using a "flavor architecture" with a main flavor containing shared code and resources and product flavors for customizations.
2. Grouping customizations by "features" that can be enabled or disabled independently.
3. Programming to interfaces so that customizations can be made by providing different implementations rather than modifying core code.
4. Storing customizable values like URLs and resources in configuration files that can be overridden per product flavor.
The document provides an overview of Android user interface components. It discusses that an Activity contains screens composed of components or screen containers called View Groups or Layouts. Layouts define the arrangement of components. There are six main types of Layouts: LinearLayout, RelativeLayout, TableLayout, FrameLayout, AbsoluteLayout, and GridLayout. It also describes Views, ViewGroups, and how components are specified in XML layout files or programmatically.
The document discusses different types of views and view groups in Android user interface development. It describes layouts like LinearLayout, RelativeLayout and FrameLayout that extend the ViewGroup class. These layouts allow arranging views in different orientations using attributes like layout_width, layout_height, layout_weight etc. The document also talks about defining views and layouts in XML files or programmatically at runtime.
In this session, I will give an overview of Android Wear and how to integrate it in your product strategy. We will look at the underlying design principles and discuss a number of use cases for apps that connect to wearable devices. After that, we will take a look at some code examples and learn how to use the Android Wear SDK.
The document discusses various types of user interfaces in Android. It describes the view hierarchy in Android using ViewGroups and Views as the basic building blocks. It explains common layouts like LinearLayout, RelativeLayout, TableLayout, GridLayout and ListView that can be used to arrange views. Key classes involved include View, ViewGroup, and different view subclasses that serve as widgets. The document also compares Java and Android approaches to designing user interfaces.
Android TV: Building apps with Google’s Leanback LibraryJoe Birch
Android TV apps can be built using the Leanback library which provides UI components for TV. Key elements include BrowseFragments to display browsable content, PlaybackActivities for media playback, and custom card views. Interaction uses focus-based navigation via the D-pad. Testing involves performing clicks and other actions on view IDs. Features like picture-in-picture and recording are supported. Open source resources are provided to learn more about developing for Android TV.
Chapa 1 - Jornalistas SP
Carta-Programa da Chapa 1 para eleições no Sindicato dos Jornalistas Profissionais no Estado de São Paulo, em pleito que ocorre nos dias 27, 28 e 29 de março de 2012
Erfolgreiche Neukundenakquise in Preissuchmaschinen und ProduktportalenSoQuero GmbH
Vortrag von Björn Emeritzy (SoQuero GmbH, Head of Data Feed Marketing) auf der Internet World Fachmesse & Kongress 12.-13. April 2011 zum Thema Neukundenakquise in Preissuchmaschinen und Produktportalen.
El documento resume la perspectiva económica global de Franklin Templeton. Resalta que la economía de EEUU está creciendo lentamente pero con indicios de mayores aumentos salariales. También menciona que la debilidad del dólar y datos más positivos de China están impulsando los precios de las materias primas. Finalmente, señala la sorprendente solidez del crecimiento en la Eurozona.
Learnings for Accessibility for iOS PlatformTasneem Sayeed
This presentation provides an overview on what it means to make an app accessible for the iOS platform. It provides guidelines for making your iOS app accessible and includes an overview on the most common accessible attributes, traits and how to add Accessibility via interface builder as well as in code. It covers Accessibility Notifications, Voiceover specific API, Accessibility Containers, and some of the best practices for Accessibility.
Focus Management and Accessibility on iOS, Android, and HTML5Ted Drake
The iPhone revolutionized the world for people with disabilities. Nobody (outside Apple) imagined this touch-only phone with no physical buttons would become the defacto device for people with disabilities. In fact, today's smart phones have not only replaced computers, but also expensive dedicated assistive technology equipment.
Make your application accessible
To be accessible, your app's content must be discoverable, actionable, and understandable. All of these depend on management of content focus. Fortunately, the platforms have made this fairly easy. The first step is being aware, that is the first part of this presentation. You will learn how to navigate with a phone's screen reader.
This presentation is available in an accessible version: http://www.last-child.com/focus-mobile-accessibility/
Color helps us distinguish objects from each other and guides our attention to and away from things. This presentation will help you understand the issues.
Mystery Meat 2.0 – Making hidden mobile interactions accessibleTed Drake
Mystery Meat was the unsavory term for hiding menus behind a parent link. Learn about today’s mobile version and how to make it accessible.
Accessible version: http://www.last-child.com/mystery-meat-2-accessible/
Accessibility metrics Accessibility Data Metrics and Reporting – Industry Bes...Ted Drake
Accessible version: http://www.last-child.com/a11y-data-metrics/
Learn how top companies are tracking and graphing product accessibility progress and incorporating data from automated, manual, and user testing to create management dashboards.
Semiconductor materials like silicon can be made to conduct electricity through "doping" with other atoms. Doping with atoms having extra electrons makes the material N-type and conductive, while doping with atoms missing electrons makes it P-type conductive. Semiconductor devices widely use controlled doping of silicon to generate and regulate electric current flow.
Hotspot 2.0 is a new approach that aims to make Wi-Fi networks as easy to use as cellular networks. It includes technologies like 802.11u for network discovery and selection, WPA2-Enterprise for secure authentication using credentials like SIM cards, and EAP methods. This would allow mobile users to seamlessly connect to Wi-Fi networks without manual login. However, challenges remain such as replacing existing access points that do not support the new standards and ensuring good customer experience given potential interference issues.
LTE uses symmetric key cryptography with algorithms like AES and Snow 3G for encryption and integrity protection. During attachment, the UE and MME perform mutual authentication using the AKA protocol and derive session keys from which encryption and integrity keys are obtained for NAS and AS security. The UE and eNB then negotiate the specific algorithms to use for ciphering and integrity protection of signaling and user data.
Mobile phones were first developed in the 1940s as two-way radios for the military. Dr. Martin Cooper invented the first practical mobile phone in 1973. The first mobile phones available to the public were introduced in 1983 by Motorola and used analog technology. Throughout the 1990s, digital 2G technology improved mobile phones. Today, most phones use 3G digital technology, which allows data like emails and messages in addition to calls. Mobile phones connect to cellular networks provided by operators to make calls and access the internet. They have increasingly taken on additional functions like cameras, music players, and internet access.
Sperm notes equine_01_2012_es - manejo de equiposredaccionpl
Este documento resume varios temas relacionados con la reproducción equina, incluyendo eventos de reproducción equina en 2012, un nuevo fotómetro para medir la concentración espermática, el uso de productos Minitube en un centro de reproducción equina, la recuperación de ovocitos en yeguas mediante ovum pick up y un sistema robusto para la congelación de pajuelas en vapores. Además, presenta información sobre el fortalecimiento de la cubrición con Minitube EQUIPRO® Reinforcer y un póster de reproducción equina
Windows Store app using XAML and C#: Enterprise Product Development Mahmoud Hamed Mahmoud
This document provides an agenda and overview for a presentation on building Windows Store apps using XAML and C#. The presentation will demonstrate the Kona project, a sample Windows Store app, and how to build and test a Windows Store app using Team Foundation Build. It will also cover globalization, logging, MVVM pattern, navigation, and visual state support in Windows Store apps. The presentation aims to provide tips and best practices for enterprise product development of Windows Store apps.
Android Workshop for NTU. A getting started guide to android application development.
UPDATE (Oct 2013): An updated slide at http://samwize.com/2013/10/13/android-workshop-2013/
Developing AIR for Mobile with Flash Professional CS5.5Chris Griffith
This document provides guidance on developing mobile applications using Adobe AIR for mobile platforms. It discusses key considerations for touch interfaces like larger touch targets. It also covers platform-specific development setup and tools for Android and iOS. The document reviews AIR capabilities for mobile like gestures, location services and hardware integration. It provides optimization tips for performance like bitmap caching and GPU acceleration.
The document discusses modern Android development best practices and libraries. It recommends using libraries like ButterKnife, Otto event bus, Retrofit, Dagger 2, and Picasso. It also discusses implementing Material Design principles and shared element transitions. The recommended design pattern is Model-View-Presenter. The document promotes two apps developed with these techniques.
The document provides an overview of basic Android application development concepts including getting set up with the Android SDK, creating a "Hello World" app, and exploring core application components like Activities, Services, Intents, and the AndroidManifest file. It describes setting up the development environment, building a simple app, and diving deeper into how Activities, Services, Intents, and the manifest are used to build the user interface and functionality of an Android application.
The Hitchhicker’s Guide to Windows Azure Mobile Services | FalafelCON 2014FalafelSoftware
Windows Azure Mobile Services provides a straightforward way to connect your data to multiple applications on multiple devices. In this presentation, I will show how to expose cloud data via a REST interface and connect to that data from applications running on Windows Phone, Windows 8, iOs and Android. You will learn how to secure your data and to send push notification to your client application.
Selendroid is an open source test automation framework which drives off the UI of Android native and hybrid applications and the mobile web. Tests are written using the Selenium 2 client API. For testing no modification of app under test is required in order to automate it.
This presentation demonstrates to the audience how easy it is to do mobile test automation. It shows how Selendroid can be used to test native and hybrid Android apps and how the Selenium Grid can be used for parallel testing on multiple devices. Advances topics like extending Selendroid itself at runtime and doing cross platform tests will be covered as well.
Presented at Big Android BBQ 2015
Hurst Convention Center, Hurst Texas
This talk will cover Fragments in detail by comparing and contrasting them to something we know well, Activities. We will also cover examples and use cases. Fragments: Why, How, and What For? is targeted toward developers who may not have had a lot of experience using Fragments and those who want to understand them better. Why did Google introduce Fragments? Aren’t Activities enough? How do Fragments work? What For? Example and use cases such as Fragment reuse, single pane vs multi-pane, ViewPager, NavigationDrawer and DialogFragment.
The document discusses how to implement Google Cast into Android apps. It covers connecting an Android app to a Cast receiver app, launching the Cast app, and interacting with the Cast app. It provides code examples for initializing the Cast SDK, adding callbacks to handle Cast device selection and deselection, and starting discovery of Cast devices.
Through this presentation you will gain a good understanding of how the clean architecture pattern is implemented at Taxibeat. What issues the Android Taxibeat team has faced so far and what solutions we came up with. Of course, the benefits of clean architecture will also be discussed along with the way we managed to build two fast paced iterative apps that share functionality.
The document provides an overview of HTML5 features including new elements, APIs, and tags. It discusses several new HTML5 elements and APIs such as <dialog>, <output>, drag and drop, geolocation, and server-sent events. It provides examples and explanations of how to use these new features. It also discusses the history and standardization process of HTML5 and compares it to other technologies like WebSockets.
Android P includes several new features such as WiFi round-trip-time positioning, display cutout support, the ImageDecoder class for image decoding, and a unified biometric authentication API. It also improves existing features like notifications with enhanced messaging styles, and includes privacy and power management changes such as placing restrictions on background access to sensors and limiting apps' resource usage based on usage patterns.
Canvas and WebGL allow for rich graphics and animation on the web through APIs for 2D and 3D drawing. Forms have been enhanced with new input types like email, number and date pickers. Features like drag and drop, geolocation, notifications and the history API enable more interactive experiences. Browser capabilities have been extended through APIs for multimedia, storage, web sockets and accessing hardware. HTML5 aims to provide these features to enhance user experience without additional plugins.
The document provides an overview of getting started with Material Design on Android. It introduces the presenters and their backgrounds, describes some key Material Design concepts like navigation drawers, animations, floating buttons, and lists/cards. It also provides code examples for implementing Material Design features in Android like adding support libraries, styling colors and themes, navigation drawers, SwipeRefreshLayout, RecyclerView, CardView, and shared element transitions.
From Idea to App (or “How we roll at Small Town Heroes”)Bramus Van Damme
Guestlecture I gave to the students ICT at Odisee, explaining the app development process, how we do certain things at Small Town Heroes, and how we implement QA throughout our process.
Google I/O 2011, Android Honeycomb HighlightsRomain Guy
This document summarizes the key features of Honeycomb, the Android 3.0 tablet release. It discusses the tablet release, user interface improvements like fragments and the action bar, and developer tools like renderscript and animation frameworks. Representatives will be presenting on these topics and more at sessions during Google I/O and developers can find additional information on blogs and documentation after the conference.
The document discusses jQuery fundamentals including selectors, interacting with the DOM, handling events, and Ajax features. It provides examples and recommendations for learning jQuery including reading documentation, using tools like VSDoc and Fiddler, and consuming tea and beer. Next steps mentioned are exploring additional JavaScript libraries and frameworks like Knockout, Backbone, LINQ.js, TypeScript, and SignalR to build richer user interfaces.
OpenSocial aims to make the web more social by allowing developers to add social features to websites and applications. The OpenSocial APIs allow gadgets to access user profile data and enable social interactions through features like activities. Developers can focus on building engaging experiences while OpenSocial handles user management and relationships through standards-based gadget specifications and JavaScript APIs.
Similar to Android accessibility for developers and QA (20)
Introduce Trauma-Informed Design to Your Organization - CSUN ATC 2024Ted Drake
Historically, accessibility specialists focused on a narrow set of disabilities. We focused on the senses, such as sight, sound, and touch. We focused on abilities, like hearing, movement, and seeing.
We expanded to include cognitive, mental health, and neurodiversity. This is significant. We now have tools to build inclusive products and services for an estimated 25% of the population. What about the other 75%?
As accessibility professionals, we understand unique experiences and needs. We are best equipped to expand customer research and design at our companies. Universal design was described as a one size fits all solution. Inclusive design is one size fits one. Intersectional design is one size fits one, but also accounts for price, texture, availability, cultural appropriateness, and more.
This presentation introduces the next layer of inclusive design; one that recognizes trauma.
Trauma-Informed Design (TID) started in education, health, and community spaces. It focuses on the person’s experiences, recognizing trauma’s impact, anxiety, and restoring personal control. Architects embraced TID to develop spaces that are comfortable instead of confrontive.
While the earlier stages of TID focused on individualized experiences, we can still take the principles and apply them to web and mobile application design. This is especially critical for emerging AI powered experiences where transparency and collective understanding are rarely considered.
Transforming Accessibility one lunch at a tiime - CSUN 2023Ted Drake
Try to remember March 2020. The COVID epidemic was raging and businesses sent everyone home to work remotely. Ted Drake and Sagar Barbhaya were at the 2020 CSUN ATC conference. Returning to our homes, we wondered if we could continue the energy and curiosity found at a conference, only transforming it for a virtual work environment. The following week, we launched Intuit’s Zoom-based Accessibility Lunch and Learn series. It was an experiment planned to last only a few weeks. We reached out to our Accessibility Champion network and quickly arranged daily lectures, mostly based on presentations already given at onboarding and other training events. As the epidemic grew, we turned inward and focused less on accessibility and more on our mental health, living with a disability, and celebrating our diversity. The key transformation came with a talk about sobriety in the workplace. The speaker’s courage to discuss her journey led to heartfelt conversations about mental health, the loss of community, and the struggle where colleagues were trying to encourage hope with “happy hours” and alcohol-related team building activities. This presentation led to immediate improvements in our workplace language and pandemic policies. It also showed a lunch and learn was more than a lecture. It could be the community we were aching for. With more than 100 presentations and thousands of participants, we continue to learn something new every week.
Inclusive Design for cognitive disabilities, neurodiversity, and chronic illnessTed Drake
Learn how to design for people with short term memory loss, problems focusing on a task, struggling with anxiety, and dealing with chronic pain. This presentation will introduce you to the people you need to include in your designs. You will also have clear action items for inclusive design.
This talk was presented at the San Diego Accessibility Meetup on August 1, 2022. It explains the basics of affordances, signifiers, cognitive load, and how we can design to reduce the effort needed by our customers to understand and use our products. This also includes updated information on Long COVID and why we need to focus more of our attention on cognitive accessibilty.
Covid 19, brain fog, and inclusive designTed Drake
1. The document discusses Long COVID and brain fog, which can occur in some people after a COVID-19 infection. Symptoms can include shortness of breath, fatigue, joint pain, changes in smell/taste, brain fog, anxiety, and inability to focus. Approximately 20% of COVID patients experience long-term symptoms.
2. The document shares experiences of people living with long COVID and brain fog symptoms. This includes difficulty concentrating, short-term memory loss, anxiety and panic attacks.
3. The document discusses designing inclusively for those with long COVID. This includes minimizing cognitive load, using recognition over recall, highlighting selections, and following guidelines like WCAG that promote cognitive accessibility. A
Automated accessibility testing can greatly improve the product experience by empowering developers and designers to eliminate repetitive, mundane errors and focus on the challenging and interesting elements. This presentation focuses on the customer experience and how it can be improved by using automated testing throughout the software development cycle.
Ask any accessibility leader about accessible colors and they’ll wince from the pain of struggling for a solution. Why is it so difficult to ensure your product meets WCAG 2.1 AA color contrast requirements? Ted Drake, Intuit’s Global Accessibility Leader, will explain the basics of color accessibility requirements. He will also talk about the conflict of overlapping requirements, dealing with brand colors, using color to denote hierarchy of information, and instances where adequate contrast impedes readability. You will have a better understanding of why accessible color usage is a journey and strategies for making continual progress.
About the Speaker – Ted Drake
Photo of Ted Drake
Ted Drake is the Global Accessibility Leader for Intuit, a financial software company. Intuit’s small and centralized accessibility team has created a culture of inclusive development and design with more than 600 champions. Customer interviews and feedback is key to their development.
Ted started working in accessibility almost 20 years ago, when he was the web site manager for the San Diego Museum of Art. He was also an early adopter of standards-based web development, which treated accessibility as core to engineering. While at Yahoo!, Ted was a front-end engineer, developer evangelist, and co-founded Yahoo’s Accessibility Lab. Ted’s benefited from ample International travel, including many trips to India and two years working out of Europe. Connect with Ted Drake on linkedin.
This presentation is for the Hello A11y conference celebrating Global Accessibility Awareness Day 2020. It introduces how artificial intelligence and machine learning is being used in assistive technology for people with disabilities.
Expand your outreach with an accessibility champions program Ted Drake
This document discusses Intuit's Accessibility Champion program, which aims to increase accessibility engagement and knowledge across the company. It outlines three levels of the program - Getting Started, Build Empathy, and Subject Matter Expert. Level 1 focuses on basic awareness training. Level 2 trains on empathy and auditing. Level 3 develops expertise through documentation, training, and certification. The program provides recognition, resources, and rewards to champions at each level to encourage participation and accessibility leadership across teams.
Intuit's Accessibility Champion Program - Coaching and Celebrating Ted Drake
This presentation was created for the Accessibility Online webinar series. It explains the goal of Intuit's Accessibility Champion program and explains the steps and successes of this program. The presentation will help you set up a similar problem at your company. Get the full details at this article: http://www.last-child.com/intuits-accessibility-champion-program/
This presentation was created for the Rotary Club of San Francisco to highlight research being done today for assistive technology and how it could appear in mainstream products and services in the future.
Inclusive customer interviews make it your friday taskTed Drake
Customer research has been a core part of Intuit from the earliest days of the company. In the 1980’s Intuit engineers would hang out at computer stores to find people buying Quicken software and ask if they could follow them home to watch their installation process to learn
about pain points and opportunities. Kurt Walecki, Intuit VP of Design, described the importance:
From the very beginning, Intuit has done user research both to understand how customers are using their current products and to identify customers’ unmet needs, allowing them to introduce new products to the market to satisfy them.
Every product and team at Intuit uses customer research and interviews to design and build products and new functionality. Intuit’s use of Lean Startup includesthe mantra “fall in love with
the problem, not the solution”
.
The goal is to understand the customer’s pain points and missed opportunities first, expand on the problem, build prototypes, continually review with the customer to test solutions, and then promote it to a product feature. This customer focus ensures the product grows with useful features and doesn’t bloat with unnecessary technology.
Coaching and Celebrating Accessibility ChampionsTed Drake
Accessibility is
extremely
impor
t
ant
when it comes to developing applications. It is the
right of every customer to get the same experience when they interact with a product and
disability is something t
hat should never come in the way.
Engineers are the folks
responsible for making this hap
pen and hence it is extremely important for them to
be
motivated and passionate around this technology. Let us learn how Intuit does this.
Accessibility statements and resource publishing best practices csun 2019Ted Drake
Accessibility features, products and services are of limited benefit if
consumers do not know
what is available, or how to access and use them. Companies that have taken the step of
creating a website focused on accessibility are reaching out to users who need that
information. Knowing the essential components to provide a sup
portive and positive
experience for users with disabilities will enable companies to develop or improve their
accessibility websites.
Intuit is in the process of developing an acc
essibility statement and resource center.
Rather
than reinvent the wheel, decided to research what other technology, e
-
commerce, finance,
transportation, and educational companies have done to see what works and what does not.
Raising Accessibility Awareness at IntuitTed Drake
This presentation was given for the Bay Area Accessibility and Inclusive Design Meetup group to share Intuit's journey to expand accessibility education and ownership.
This document summarizes a presentation on accessibility and inclusive design. It discusses building products with and for people with disabilities to benefit all users. It provides examples of companies designing inclusively, like Amazon's focus on accessibility first and Nike's FlyEase shoes. The presentation encourages attendees to data mine for hidden customer feedback, reach out to diverse customer groups, test content for readability, and use resources like Microsoft's Inclusive Design Toolkit.
Matt May tweeted an observation in 2016 introducing Trickle-Down Accessibility and recognized prioritizing our blind customers could lead to less support for others.
Focusing on screen reader accessibility has distinct advantages for product developers. If your application works with a screen reader, it should also be usable with a keyboard, voice recognition, and switch control devices. Screen reader accessibility also falls in line with automated testing tools.
However, there are many disabilities, and assistive technologies, that are not necessarily benefited by this focus on the blind/low-vision community. Color contrast, closed captioning, readability, consistency in design, user customization, session timeouts, and animation distraction are just a few examples of concerns that often go unaddressed.
React Native Accessibility - San Diego React and React Native MeetupTed Drake
This presentation was created by Poonam Tathavadkar and Ted Drake for the San Diego React and React Native meetup to introduce mobile accessibility and how to use React Native's functions to build accessible Android and iOS applications.
Ubiquitous Transactions - Financial Future and AccessibilityTed Drake
This short presentation was created for a financial panel at the m-enabling summit 2016. It introduces some new and upcoming standards that could simplify financial transactions and thus making them more accessible. Please see the accessible version of this presentation http://www.last-child.com/ubiquitous-transactions/
Learn how your company can add automated testing for accessibility on all platforms. This presentation covers what Intuit has learned while working towards this goal
Automated Testing – Web, Mobile, Desktop - Challenges and Successes
Android accessibility for developers and QA
1. Android
Accessibility
Bangalore Accessibility Week
October 6-10, 2014
Ted Drake, Intuit Accessibility
This presentation borrows heavily from the great presentations given by the Google Accessibility team at Google iO: https://drive.google.com/
folderview?id=0B8z0EqKVnjoZbEtZNk05LWhsVHM&usp=sharing
Android Accessibility Videos: https://www.youtube.com/playlist?list=PLQbD187567ZYe2HQ24sQxB6jhnWoR_JUJ
!
photo: http://www.pinterest.com/pin/559501953680642594/
2. Users move accessibility focus by interacting with
the touch screen using explore by touch and
accessibility gestures.
!
AccessibilityServices interpret exploration
and gestures to facilitate different types of
navigation
AccessibilityService Documentation: http://developer.android.com/reference/android/accessibilityservice/AccessibilityService.html
An accessibility service runs in the background and receives callbacks by the system when AccessibilityEvents are fired. Such events denote some state
transition in the user interface, for example, the focus has changed, a button has been clicked, etc. Such a service can optionally request the capability for
querying the content of the active window. Development of an accessibility service requires extending this class and implementing its abstract methods.
3. Meet Talk Back
TalkBack is preinstalled on most Android devices, but is also available on
the Play Store1.
!
TalkBack is enabled from Settings > Accessibility > TalkBack.
!
Enabling TalkBack changes the interaction model of the device.
• Explore with a single finger.
• Double-tap to activate the focused item.
• Use two-finger drag to scroll lists.
Talkback is pre-installed, but can also be found in the play store: https://play.google.com/store/apps/details?id=com.google.android.marvin.talkback
TalkBack support: https://support.google.com/talkback/
!
4. Turn on TalkBack
This video shows how to enable TalkBack and how to use it as a developer.
It’s also available on YouTube https://www.youtube.com/watch?v=82ivNZI6bIA
5. Common Problems
• Content Labeling
• Grouping and Ordering
• Font Scaling
• Web Views and Hybrid Apps
6. • All interactive elements must have a content description:
•
android:contentDescription
•
View#setContentDescription
• Decorative images:
• android:contentDescription=“@null”
• For EditText
• android:hint
• labelFor
• Keep labels short and clear.
Send Email
You spend a lot of time making your screens look great, but are you providing the same experience to TalkBack users? contentDescription allows you to
own the experience.
Setting the contentDescription to null will tell talkback to ignore the image.
Use android:hint on form inputs, as the contentDescription will inherit the value of the input.
7. <TextView
android:layout_height="match_parent"
android:labelFor="@+id/edit_item_name"
android:text=“Invoice amount"/>
<EditText
android:id="@+id/edit_item_name"
android:layout_height="wrap_content"
android:hint=“Invoice Amount"/>
This example shows labelFor and android:hint being used on an input. The hint is not announced when the edit text has a value.
More information: https://www.ssbbartgroup.com/blog/2014/03/19/android-accessibility-properties-and-talkback/
8. Grouping and Ordering
• TalkBack uses view hierarchy order and on-screen
positioning to
determine grouping
and ordering.
• Use ViewGroup
1 2
3 4
5 6
containers to associate related information. Set
android:focusable=“true”
• The order of items displayed may be controlled.
Use android:contentDescription or
View#setContentDescription
http://developer.android.com/reference/android/view/ViewGroup.html
9. Font Sizing
• Android supports large font substitution for low-vision
users.
• Always use scale-independent pixels(sp).
• Avoid density-independent pixels (dip or dp)
• This is also important for i18n
10. WebViews
• Supported in Android 3.1+
• Enable JavaScript within WebView
• Garbage In, Garbage Out! Make sure your
HTML is accessible.
http://developer.android.com/reference/android/webkit/WebView.html
WebViews are not accessible by default, the user must activate this because it uses a JavaScript driven ChromeVox
!
• Turning on Accessibility mode, including 'Explore by Touch' in 4.0+.
• Enabling 'Enhanced Web Accessibility', or, on older devices, 'Inject Web Scripts'.
11. Custom Views
Favorite Actor
Dev Anand
Om Parkash
Aamir Khan
This pie chart could be considered a custom view. TalkBack needs to tell the user about positioning, color, text. It also need to describe interactions, such
as gestures, taps, and states.
12. Virtual View Hierarchy
• Pie Chart
• Om Parkash 30%
• clickable
• checkable
• Dev Anand 45%
• clickable
• checkable
• Aamir Khan 25%
• clickable
• checkable
Favorite Actor
Dev Anand
Om Parkash
Aamir Khan
What are the components? What are their states?
13. What TalkBack Sees
• ViewDecor
• Action Bar
• Pie Chart
• LinearLayout
• My Favorite Bars
• Pie Chart
• Om Parkash 30%
• Dev Anand 45%
• Aamir Khan 25%
Favorite Actor
Dev Anand
Om Parkash
Aamir Khan
14. Custom Views
• Delegate accessibility support
• Map logical items to virtual views
• Expose information about views
• Formalize interaction model
15. setAccessibilityDelegate
ViewCompat.setAccessibilityDelegate(this,
mAccessibilityHelper);
}
@Override
public boolean dispatchHoverEvent(MotionEvent
event) {
if (mAccessibilityHelper != null &&
mAccessibilityHelper.dispatchHoverEvent(event)) {
return true;
}
return super.dispatchHoverEvent(event);
}
We want to check for mAccessibilityHelper support
http://developer.android.com/reference/android/view/View.AccessibilityDelegate.html
16. Map Logical to Virtual
• Reuse your existing code.
• The pie chart already:
• Is drawn on the screen
• Includes touch events
• Uniquely identified
20. Formalize Interactions
!
node.setCheckable(true);
node.setChecked(wedge.isChecked());
node.addAction(AccessibilityNodeInfoCompat.ACTION_CLICK);
}
@Override
protected boolean onPerformActionForVirtualView(
int virtualViewId, int action, Bundle arguments) {
if (action == AccessibilityNodeInfoCompat.ACTION_CLICK) {
return onWedgeClicked(getWedgeForId(virtualViewId));
}
Assign your pre-existing actions to the accessibility node
http://developer.android.com/reference/android/support/v4/view/accessibility/AccessibilityNodeInfoCompat.html
!
21. Android L
• Custom AccessibilityAction
• Live Regions
• Collections
• Window API
Documentation is sparse for these new features.
Presentation from Google IO 14 https://drive.google.com/folderview?id=0B8z0EqKVnjoZbEtZNk05LWhsVHM&usp=sharing
https://developer.android.com/preview/api-overview.html#TestingA11y
!
22. AccessibilityAction
• Swipes and other hard to discover actions
• Actions are activated from the Local Context
Menu
• Provide hints for actions
Documentation for this has not yet been released.
23. Create AccessibilityAction
/**
* @param actionId The id for this action. This should either be one of
* the standard actions or a specific action for your app. In that case it
* is required to use a resource identifier.
*/
public AccessibilityAction(int id, CharSequence label)
new AccessibilityAction(R.id.dismiss, getString(R.string.dismiss));
new AccessibilityAction(ACTION_CLICK,
getString(R.string.play_song)); !!
// Constants for all the standard actions with default label:
AccessibilityAction.ACTION_CLICK
24. Handling a Custom Action
eventView.setAccessibilityDelegate(new AccessibilityDelegate {
@Override
public onInitializeAccessibilityNodeInfo(View host,
AccessibilityNodeInfo info) {
super.onInitializeAccessibilityNodeInfo(host, info);
info.addAction(new AccessibilityAction(R.id.dismiss,
}
@Override
getString(R.string.dismiss)));
public boolean performAccessibilityAction(View host, int action,
Bundle args) {
if (action == R.id.dismiss) {} // Logic for action
}
});
25. Live Regions
• Based on the Live Region experience in HTML +
ARIA
• Content is announced when it changes or
appears on screen
• Look for
TYPE_WINDOW_CONTENT_CHANGED
https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/ARIA_Live_Regions
Documentation on live regions not available yet.
TYPE_WINDOW_CONTENT_CHANGED:
http://developer.android.com/reference/android/view/accessibility/AccessibilityEvent.html
26. Collections
• Similar to a data table in HTML
• Supports int, float, and Percent
• Query info about table and elements
• AccessibilityNodeInfo.CollectionInfo
http://developer.android.com/reference/android/view/accessibility/AccessibilityNodeInfo.CollectionInfo.html
27. Window API
• Introspect all interactive windows: autocomplete,
drawers…
• AccessibilityFocus can move from one window to another
• Retrieve information about properties of windows on the
screen that sighted users can interact with.
• android.accessibilityservice.AccessibilityServic
e.getWindows(): Retrieve a list of objects representing
windows information
• TYPE_WINDOWS_CHANGED: AccessibilityEvent to see events
new features in
28. Android Testing
• Use Android Lint
• Use TalkBack’s Read From Top to make sure
everything is announced on the screen
• Use the On-Screen Overlay to see what is being
spoken
• Martini: Intuit’s UI Test Service
Using android lint: https://www.youtube.com/watch?v=OtwCe-YlD5k&list=PLQbD187567ZYe2HQ24sQxB6jhnWoR_JUJ&index=8
Touch exploration help: https://support.google.com/accessibility/android/answer/6006598?hl=en
Martini: https://wiki.intuit.com/display/CTOTools/UI+Test+Service
29. Testing
• Use Android Lint
• Use TalkBack’s Read From Top to make sure
everything is announced on the screen
• Use the On-Screen Overlay to see what is being
spoken
Using android lint: https://www.youtube.com/watch?v=OtwCe-YlD5k&list=PLQbD187567ZYe2HQ24sQxB6jhnWoR_JUJ&index=8
Touch exploration help: https://support.google.com/accessibility/android/answer/6006598?hl=en
!