I always struggled in school as far back as I can remember. Not in every subject though. I thrived in science, computers, and art and was often referred to as a daydreamer, quirky, or creative kid in class. Fast forward a bit where I spent most of my 20s in and out of doctors’ offices for my mental and physical health. Attempting a BFA in Graphic Design, living on my own, working 2 part-time jobs…it was too much. I didn’t understand why everything seemed so overwhelming. What was I doing wrong? Why did I struggle so much more than my peers with simple tasks like getting laundry done or managing a budget? I often wondered, “What’s wrong with me?!” Then, in my early 30s, after all the misdiagnoses and failed treatments/therapies, I was eventually diagnosed with Attention Deficit Hyperactivity Disorder (ADHD) and Obsessive-Compulsive Disorder (OCD).
I bet you’re wondering if my disabilities have ever held me back. My answer is: no, not really. If anything, I consider them some of my best qualities. I truly believe having ADHD/OCD is what’s helped me become the empathetic QA test engineer I am today. ADHD is often misunderstood as an inability to focus, but it’s much stranger than that. For me, it’s not a lack of focus, it’s that I have a hard time selecting something and giving it my full attention. But once I find the thing that piques my curiosity, I can begin my journey into hyper-focus land.
With my diagnosis… my disabilities, I felt obligated to learn more about ADHD, OCD, and accessibility. So, like any good nerd, I began to research online to figure out what this meant for me and my future. I knew of testing accessibility features early in my career with assistive technologies like high contrast color modes and screen readers. Heck, even some video games I played have color blind modes I was familiar with. But since I started as a software tester, I began to look for things I could do in my day-to-day work to increase accessibility awareness. This made me even more focused on how big of a topic accessibility is.
So What is Accessibility?
Accessibility, in a nutshell, refers to the forethought and inclusion of users with disabilities in the design of products and environments. Common examples include providing wheelchairs, entryway ramps, hearing aids, and braille signs. Beyond the physical environment though, there is also a need for accessibility in hardware and software applications. Grasping the WHAT of accessibility has greatly assisted me in understanding WHY I’m testing for WHO and HOW. I want to ensure the feature I’m testing is usable for everyone.
What is Accessibility Testing and WCAG?
Accessibility Testing is a process that utilizes a series of guidelines to verify the presence or lack of certain conditions of a software application. This type of testing is typically structured around Web Content Accessibility Guidelines (WCAG) that are universally accepted standards describing how to make products more accessible to people with disabilities.
The 4 principles of WCAG
WCAG is based on 4 guiding principles known as POUR (Perceivable, Operable, Understandable, Robust):
Perceivable – Information and user interface components must be presentable to users in ways they can perceive. Available through sight, hearing, or touch. Under this principle, you will find guidelines relating to:
- Handling media content like video, audio, and imagery
- Handling alt-text through components like closed captioning and sign language
- The approach to sequencing content and layout
- Handling color and contrast
- Controlling text size and audio controls
- Handling content interactions (i.e. hover and focus states)
Operable – User interface components and navigation must be operable and compatible with a keyboard or mouse. Under this principle, you will find guidelines relating to:
- Keyboard operability
- Time allowance
- Seizures and other involuntary physical reactions
- Navigation through objects like focus order, page titles, links, headings, and labels
- Input methods like touch targets sizing and alternative input methods
Understandable – Information and the operation of the user interface must be understandable and easy to comprehend. Under this principle, you will find guidelines relating to:
- Predictable and consistent navigation
- Use of language such as abbreviations, jargon, and reading levels
- Predictable and consistent actionable components
- Feedback and error handling
- Use of contextual help and error prevention
Robust – Content must be robust enough to be interpreted by a wide variety of user agents, including assistive technologies. The application should work across multiple browsers, assistive technologies, mobile devices, old devices/browsers, etc. Under this principle, you will find guidelines relating to:
- Parsing and generally ‘clean’ code like no duplicate attributes and complete start and end tags for elements
- Name, role, and value
- Status messages that send messages to the user without interrupting their workflow by giving focus to an element (e.g. “added to cart” while shopping online should act as a message and not a redirection of activity and focus for the user).
Did you know the most common categories for accessibility are pain, flexibility, and mobility… followed by mental health, dexterity, and hearing… and then seeing, learning, and memory?!? Although the first ones that come to mind for most people are vision or hearing loss.
Accessibility doesn’t have to be an unknown subject to you. Relax your mind and take some time to review the content of this blog and find ways you can apply it in your current role. You can be an accessibility advocate even if all you do is TALK about the subject matter. Help spread awareness by bringing up testing for accessibility on the next feature of your project. Discover ways you can begin to contribute to the #A11y community.