Accessible CI/CD

Rate this content
Bookmark
This video talk covers the importance and implementation of accessibility testing in CI/CD workflows. It begins by addressing what web accessibility is and why it is essential for ensuring that all users, including those with disabilities, can interact with web applications. The speaker introduces WCAG compliance levels, which range from Level A to Level AAA, to guide developers in making their applications accessible. The talk then explores the possibility of automated accessibility testing, particularly for component tests such as checking labels, color contrast, and semantic HTML usage. Tools like xCore are highlighted for their efficiency in automating these tests. The discussion extends to how accessibility testing can be integrated into CI/CD workflows using tools like GitLab and Playwright. Manual testing remains crucial for understanding the user experience, as automated tools cannot catch all accessibility issues. The talk also mentions the importance of accessible buttons and how they should be operable by all users, including those with disabilities.

From Author:

CI/CD has been essential for any productive web product development and release. However, while accessibility is always an important aspect for any Web product included UI, it is often overlooked or considered as a time-consuming manual step, outside of the CI/CD flow. How can we automate accessibility testing within our CI/CD for better developer experience and team collaboration? What tools can we use to integrate and leverage accessibility compliance in our CI/CD? Join my talk and let's find out.

This talk has been presented at DevOps.js Conf 2024, check out the latest edition of this Tech Conference.

FAQ

Web accessibility ensures that all users, including those with disabilities, can perceive, understand, navigate, and interact with the web. It involves making web applications accessible to everyone, regardless of their hearing, movement, sight, or cognitive ability.

WCAG (Web Content Accessibility Guidelines) compliance levels include Level A (minimum level of compliance), Level AA (addresses the biggest barriers for disabled users), and Level AAA (the highest and most complex level of web accessibility).

Yes, parts of accessibility testing can be automated, particularly component tests such as checking labels, color contrast, and semantic HTML usage. However, user experience flows and more complex interactions often require manual testing.

xCore is an open-source JavaScript library developed by Deque for accessibility testing. It can be integrated into browsers like Google Chrome and Edge and supports various testing frameworks, helping developers ensure their web applications meet accessibility standards.

Accessibility testing can be integrated at various stages of a CI/CD pipeline, including during code standards evaluation, unit testing, and smoke testing. Tools like xCore and frameworks like Playwright facilitate including accessibility tests in automated CI/CD workflows.

While automated tests can catch many accessibility issues, manual testing is crucial for understanding the user experience of those with disabilities. It involves real user interactions and checks for more nuanced accessibility barriers that automated tools may miss.

Maya Shavin
Maya Shavin
24 min
15 Feb, 2024

Comments

Sign in or register to post your comment.

Video Transcription

Available in Español: CI/CD accesible

1. Introduction to Accessibility

Short description:

Hi everyone. Welcome to my talk on accessibility in a different context at CIDI. I'm Maya Min, a senior software engineer at Microsoft Industry AI. I've been in the industry for over 10 years, focusing on web development and frontend. I recently released a book called Learning View with Aurelie, which teaches frontend development using Vue and TypeScript. Let's discuss why accessibility testing is important and how it relates to CIDI. Accessibility ensures that users can perceive and interact with web applications. WCAG provides guidelines for accessibility compliance.

Hi everyone. Welcome to my talk and let's discuss accessibility in a different context here at CIDI, shall we?

Okay. But first and foremost, a bit about myself. My name is Maya Min. I'm a senior software engineer at Microsoft Industry AI. Our group is focusing on leveraging different LM technologies to develop AI-integrated solutions and applications for industry specific. I've been in the industry for more than 10 years, focusing on the web and the front end. And lately, I just released a book called Learning View with Aurelie, which this book will teach you and guide you how to develop web applications using view as a front end framework in the context of TypeScript. And if you're interested in learning a new awesome framework, check it out. I'm also a Cloudinary ambassador, Google developer expert, and also an organizer of the View.js Israel community. You can follow me on Maya Chavin in LinkedIn or Twitter or follow my blog posts at mayachavin.com. And that's enough for myself.

Let's go on to our first question. We know about accessibility. We know what accessibility is important, but why accessibility testing and why it has to put in the context of CIDI. Okay. First and foremost, try to click on this button. You can, right? Because this button, even though it looks like a real button, it has the text click here to continue. It's not a real button. It's just an image. And this is exactly what we talked about when we mentioned accessibility. The button is not accessible. No one can use it. It means we have an accessibility issue. So here comes the definition of web accessibility. So web accessibility or accessibility is how you see, how a user can hear, and how a user can perceive your application so that they can understand, or at least come up to some understanding how to use, navigate, or interact with your web applications. This is the full flow that's similar to user experience in a lot of sense. And when I say accessibility, I usually say it's user experience because it's including accessibility inside. And but based on this, it's very hard to decide what is the compliance level for accessibility. This includes a lot of things here, listening, viewing, or understanding, right? So for that, there's a group that WCAG come up with a very, it's a standard guideline of compliance for accessibility.

2. WCAG Compliance Standards

Short description:

WCAG provides guidelines for accessibility compliance. It includes color contrast, navigation, focus, landmark, content layout, zoom levels, understandable content, form handling, media, typography, and link behavior. These are essential, but there are other factors to consider depending on the complexity of your application.

They've been working very hard and it's become an industrial standard for enterprise and public domain to follow and to reflect on. So the normal level for WCAG, acceptable level for WCAG, accessibility compliance for enterprise and public domain is the version 2.1 level EE and above. So there's 3 level AA and AAA. But there's a lot of things mentioned in their website, and you may feel a bit overwhelmed when you go to the website because it's including a lot of explanation. It's very detailed explanations. So in this talk, I will just summarize the most common compliance standard and check that we need to follow. Color contrast, navigation, focus, landmark, content layout, 200% for 400%. You may think that 200% and 400% is not that common. In fact, it's very common because it included how the users zoom in and zoom out your website on a small device machine, like a small screen laptop. And 200% and 400% can define the maximum level the user can zoom in for your applications and make sure that your content stays consistently and usable even when users zoom in in that such case. Understandable content, form handling, media, typography, external internal link behavior. If you have an external link, which means the user will be redirected to a new page, open a new tab, you need to somehow inform the user that this is going to be navigating to a new website and the user won't be taken as surprised. Tab order and many more. Yes, many more. These are just an essential set of things to follow. And there's other things depending on how complex your application would be.

Available in other languages:

Check out more articles and videos

We constantly think of articles and videos that might spark Git people interest / skill us up or help building a stellar career

Accessibility at Discord
React Advanced Conference 2021React Advanced Conference 2021
22 min
Accessibility at Discord
This Talk discusses the accessibility efforts at Discord, focusing on keyboard navigation and the challenges faced with implementing focus rings and outlines. The speaker showcases a unified focus ring system and a saturation slider to address accessibility concerns. They also highlight the implementation of role colors and the use of CSS filters for accessibility improvements. The Talk concludes with insights on runtime accessibility checking and the development of a performant core runtime system for checking accessibility issues.
Why is CI so Damn Slow?
DevOps.js Conf 2022DevOps.js Conf 2022
27 min
Why is CI so Damn Slow?
Slow CI has a negative impact on productivity and finances. Debugging CI workflows and tool slowness is even worse. Dependencies impact CI and waiting for NPM or YARN is frustrating. The ideal CI job involves native programs for static jobs and lightweight environments for dynamic jobs. Improving formatter performance and linting is a priority. Performance optimization and fast tools are essential for CI and developers using slower hardware.
End the Pain: Rethinking CI for Large Monorepos
DevOps.js Conf 2024DevOps.js Conf 2024
25 min
End the Pain: Rethinking CI for Large Monorepos
Today's Talk discusses rethinking CI in monorepos, with a focus on leveraging the implicit graph of project dependencies to optimize build times and manage complexity. The use of NX Replay and NX Agents is highlighted as a way to enhance CI efficiency by caching previous computations and distributing tasks across multiple machines. Fine-grained distribution and flakiness detection are discussed as methods to improve distribution efficiency and ensure a clean setup. Enabling distribution with NX Agents simplifies the setup process, and NX Cloud offers dynamic scaling and cost reduction. Overall, the Talk explores strategies to improve the scalability and efficiency of CI pipelines in monorepos.
Atomic Deployment for JS Hipsters
DevOps.js Conf 2024DevOps.js Conf 2024
25 min
Atomic Deployment for JS Hipsters
This Talk discusses atomic deployment for JavaScript and TypeScript, focusing on automated deployment processes, Git hooks, and using hard links to copy changes. The speaker demonstrates setting up a bare repository, configuring deployment variables, and using the post-receive hook to push changes to production. They also cover environment setup, branch configuration, and the build process. The Talk concludes with tips on real use cases, webhooks, and wrapping the deployment process.
How to Build CI/CD Pipelines for a Microservices Application
DevOps.js Conf 2021DevOps.js Conf 2021
33 min
How to Build CI/CD Pipelines for a Microservices Application
Top Content
This Talk discusses the benefits of microservices and containers for building CI-CD pipelines. It explains how container technology enables portability and scalability. The challenges of microservices include network communication and testing in isolation. The Talk introduces Tacton, a cloud-native CICD pipeline for Kubernetes, and highlights the use of GitOps and Argo CD. It also discusses the importance of maintaining referential integrity between microservices and the evolving role of operators in the DevOps world.
Configuring Axe Accessibility Tests
TestJS Summit 2021TestJS Summit 2021
30 min
Configuring Axe Accessibility Tests
Top Content
AXe is an accessibility engine for automated web UI testing that runs a set of rules to test for accessibility problems. It can be configured to disable or enable specific rules and run based on tags. Axe provides various options, but axe linter does not support all options. The importance of investing time and resources in accessibility is emphasized, as it benefits not only those with disabilities but improves the web for everyone. Manual testing is also highlighted as a necessary complement to automated tests for addressing accessibility issues.

Workshops on related topic

Web Accessibility for Ninjas: A Practical Approach for Creating Accessible Web Applications
React Summit 2023React Summit 2023
109 min
Web Accessibility for Ninjas: A Practical Approach for Creating Accessible Web Applications
Workshop
Asaf Shochet Avida
Eitan Noy
2 authors
In this hands-on workshop, we’ll equip you with the tools and techniques you need to create accessible web applications. We’ll explore the principles of inclusive design and learn how to test our websites using assistive technology to ensure that they work for everyone.
We’ll cover topics such as semantic markup, ARIA roles, accessible forms, and navigation, and then dive into coding exercises where you’ll get to apply what you’ve learned. We’ll use automated testing tools to validate our work and ensure that we meet accessibility standards.
By the end of this workshop, you’ll be equipped with the knowledge and skills to create accessible websites that work for everyone, and you’ll have hands-on experience using the latest techniques and tools for inclusive design and testing. Join us for this awesome coding workshop and become a ninja in web accessibility and inclusive design!
Automated accessibility testing with jest-axe and Lighthouse CI
TestJS Summit 2021TestJS Summit 2021
85 min
Automated accessibility testing with jest-axe and Lighthouse CI
Workshop
Bonnie Schulkin
Bonnie Schulkin
Do your automated tests include a11y checks? This workshop will cover how to get started with jest-axe to detect code-based accessibility violations, and Lighthouse CI to validate the accessibility of fully rendered pages. No amount of automated tests can replace manual accessibility testing, but these checks will make sure that your manual testers aren't doing more work than they need to.
Web Accessibility in JavaScript Apps
React Summit 2022React Summit 2022
161 min
Web Accessibility in JavaScript Apps
Workshop
Sandrina Pereira
Sandrina Pereira
Often we see JavaScript damaging the accessibility of a website. In this workshop, you’ll learn how to avoid common mistakes and how to use JS in your favor to actually enhance the accessibility of your web apps!
In this workshop we’ll explore multiple real-world examples with accessibility no-nos, and you'll learn how to make them work for people using a mouse or a keyboard. You’ll also learn how screen readers are used, and I'll show you that there's no reason to be afraid of using one!
Join me and let me show you how accessibility doesn't limit your solutions or skills. On the contrary, it will make them more inclusive!
By the end, you will:- Understand WCAG principles and how they're organized- Know common cases where JavaScript is essential to accessibility- Create inclusive links, buttons and toggleble elements- Use live regions for errors and loading states- Integrate accessibility into your team workflow right away- Realize that creating accessible websites isn’t as hard as it sounds ;)
Bring Code Quality and Security to your CI/CD pipeline
DevOps.js Conf 2022DevOps.js Conf 2022
76 min
Bring Code Quality and Security to your CI/CD pipeline
WorkshopFree
Elena Vilchik
Elena Vilchik
In this workshop we will go through all the aspects and stages when integrating your project into Code Quality and Security Ecosystem. We will take a simple web-application as a starting point and create a CI pipeline triggering code quality monitoring for it. We will do a full development cycle starting from coding in the IDE and opening a Pull Request and I will show you how you can control the quality at those stages. At the end of the workshop you will be ready to enable such integration for your own projects.