 Diversity, inclusion, and belonging is one of GitLab's credit values. Our mission is to create a world where everyone can contribute, and in order to do that, we need to foster an environment and a community where everyone can thrive. In this next talk, you will hear from Brendan O'Leary, a GitLab team member. He will share examples that will be familiar for some and new to others, but the impacts of these stories will be something we can all relate to. He'll also share ways you can get started building accessibility into your products. If you're ready to get started making a more inclusive world and joining us in our mission, then this talk is for you. Enjoy. Thank you for being here today. If you're here because you thought the title was intriguing, great. If you're one of those who were a little apprehensive about the title but wanted to give it a chance, thank you too. Despite the title, I won't be berating everyone today for being lazy. Lazy isn't even the best word for it. There's probably a perfect German word for what I mean, but I don't speak German. Side note, if you do speak German and there is a word for this, please let me know. What I mean is there are a lot of hard problems in software, in scaling apps, in working together with other developers, in shipping code to production. I get it. I've been on lots of sides of that equation. At the same time though, there are many, many, many solved problems. Unless you have very advanced use cases, most of us are not writing machine code, creating our own processors or doing low-level memory management. Those are solved problems that we take for granted. Another solved problem is how to build accessible and inclusive software. But even though there are solutions, those are much less likely to be adopted than, say, the latest JavaScript framework. And the data shows it's not getting better. In 2015, there were 57 digital accessibility lawsuits in the US. In 2018, there were close to 3,000. And that's a little bit about what I want to talk about today. I want to talk about a few stories around accessibility and inclusion and how many are representative of solved problems. And in the end, I hope I can encourage you to reevaluate and understand your own designs and software and build a better world where everyone can contribute. I'll introduce myself a little later, but I want to start with a personal story about my name, specifically my last name. My last name is Uliri. It stands for Son of Liri from back in the time of feudal lords in Ireland. And if there's still some lordship that I'm due back in Ireland, I'm completely unaware of it. And my family's been in the United States for quite a long time. It's fun to spell to people over the phone. Capital O, apostrophe, capital L, then lowercase E-A-R-Y. And that's just with humans. Anyone who's been programming for a while, has ever done anything with a SQL-like database, or has ever read XKCD 327 about poor little Bobby Tables, knows that it's a problem for computers too. That apostrophe, or single quotation mark, or single curly quotation mark, it goes by many names and many different Unicode characters, actually. It can cause a real problem for folks using databases. Or even my favorite version, when you want to make rendering safe for HTML and we get, yeah, that's simultaneously my favorite and least favorite version of my last name. And I get it, I really do. SQL injections are scary. Someone putting JavaScript into an input and getting it to run on someone else's computer, also very scary. But there are ways to handle this much better than many websites do today. The typical response is to do some client-side evaluation and just reject things we don't like. But that's also the lazy way. There are a lot of name variations out there, and programmers believe a lot of falsehoods about people's names. Instead of working to understand the differences and try their best to account for them, they restrict name fields to fit in the box that they've decided is acceptable. But there's a serious problem with that. It can literally invalidate a person's personhood, especially depending on the specific warning given, which often is that my last name is actually invalid. Well, that's about as invalidating as you can get, I guess. And this doesn't just happen with no name or small websites. First of all, the state I live in, Maryland, I was born there. My birth certificate shows an apostrophe in O'Leary. But my license to drive a car has no apostrophe. But my passport from the U.S. government has an apostrophe. My Social Security card, well, I don't actually know, I didn't look it up for this. And I've probably given you already way too much detail for anyone who wants to try and steal my identity. What even is my legal name? I'm not sure if I know the answer to that. Though if you do steal my identity, good luck. Many major organizations with budgets in the millions and billions of dollars can't figure out how to escape an apostrophe when inserting it into their database. Getting onto the Wi-Fi at a hotel with your last name and room number is a new adventure every time. Sometimes people haven't even thought of it and my name ends up being O' in their system. Who knows what happens to the leery? If you ever end up with leery in your database for some reason, you're welcome for this troubleshooting tip you never thought of. But it's not just different forms of names with things like apostrophes. Different orders of surname and given names and lots of other name diversity exists. It can impact people who character-wise have a normal name but platforms decide that their name is invalid for some other reason. There's a lot of people with two-character surnames out there. Don't just put a limit on that. And when implementing your community guidelines, sometimes purely automated is not the way to go and can lead to some pretty bad experiences for folks who probably don't love attention being called out to the alternative meaning of their names. My father has given up this fight. He doesn't even try to add the apostrophe anymore to any online form. He's just accepted the world isn't made for him. Being somehow even more stubborn than him, I still fight and I call it out when I see it. Neither of those things should have to happen. With inclusion at the design phase, when we're building those user stories, we can prevent these type of things. And honestly, I've spent a lot of time on it in this talk because it impacts me personally, but it's really not that big of a deal. I understand it, I can get around it, I can even give up like my dad and just go about my life. But it doesn't start and end with names. Things can get much worse. For example, gender or sex on a form on your website. The lazy way is to put man woman other or male female other. First of all, you need to learn the difference between sex and gender and collect the one you're really looking for. And here's a hint, if you're not building medical software, it's probably gender. Second of all, one of my best friend's genders identifies their gender as genderqueer. It can be tough to have that as a gender identity. A lot of the world doesn't get it. In fact, as a cis man, I probably don't completely understand it, but I do know that my friend isn't other and I know my friend doesn't want to be othered by people. So why would a website lazily make them say, I am other? It's honestly completely unacceptable. And the problem of identity is extremely pervasive. It impacts many, many people across the globe. A professor was talking with a colleague about how he couldn't get the virtual background and their Zoom calls to work. And he guesses as to what's happening here. I bet you could guess it. The algorithm being used for face detection works great for people like me, bald white dudes. But it can also literally erase black faces deciding that either the wall or the globe in the background must have been the face. When I originally saw this, I didn't see the thread online on a computer. I saw it on Twitter's mobile app. And in reporting this problem with face detection for people of color, Colin actually found another problem he hadn't thought of. Twitter, where he was sharing the problem with Zoom, had a similar problem. No matter how he uploaded the side-by-side comparison, Twitter would show his face and not his colleagues. Twitter was using smart cropping algorithms to try and find what is important in the picture. And it was choosing the white face over the black one as more important every time. Now, it's important to add here that Twitter saw this post, commented on it, and fixed it. And they fixed it the easy way. They disabled cropping and all that automatic fitting stuff on mobile and elsewhere. But the fact that they fixed it this way is actually very telling. Getting this right, an algorithm that isn't biased based on the inputs was so hard that not even Twitter, with its vast team of engineers and really smart people, I know some really smart people that work at Twitter, not even Twitter decided it was possible to do cropping right with an algorithm, so they just don't crop anymore. Even with this, I can hear some people saying, it's not that big a deal. Some edge cases exist, people with names that don't fit into two nice little boxes of ASCII characters, etc. What's the big deal, Brendan? Is anyone actually being hurt? Well, let me tell you a story. On a Thursday afternoon, in January of 2020, Robert Julien Borcek-Williams was in his office, and he got a phone call that he assumed was a prank. It was the Detroit Police Department. They told him they had to come to the station right away so that he could be arrested. I would have definitely assumed it was a joke, too. Just an hour later, as he was arriving home to his house in suburban Detroit, a police officer pulled up, handcuffed him on his front lawn in front of his family. They didn't get into any details. They had a warrant that had his picture and the word's grand-law sending on it. When his wife asked for more information or where they were taking him, the officer's response was, Google it. Williams was fingerprinted, had his DNA and mugshot taken, and put in jail overnight. The next day, detectives came to meet with him and asked him what he knew about a robbery of a jewelry store a few months before and asked where he was at that time. He remembered checking out the store when it first opened four years prior to the robbery. Williams then slid a piece of paper across the table. It was a picture of a heavy-set man in a store looking at a watch display. That person then stole $3,800 worth of jewelry and watches. Is that you, asked one of the detectives? Mr. Williams held the picture up to his own face. No, look, this is not me. The picture was clearly not him. So what happened? Well, the Detroit Police Department had spent $5.5 million on a facial recognition system. They used a still image from the store's security footage provided by the store's lost prevention personnel to find a suspect among all Michigan State driver's license photos. A year prior to this robbery, a federal study of the very software they were using showed extreme bias. Misidentifying African-American and Asian faces 10 to 100 times more often than Caucasian ones. Now, the output of that system isn't meant to be evidence. In fact, it says this document is not a positive identification in bold capital letters at the top. It says it's only an investigative lead and not probable cause for an arrest. What the officers did is they took Mr. Williams' image, added it to a photo lineup, and showed it to the same lost prevention personnel who had provided the video. That person pointed to Williams, and on that basis alone, he was arrested and jailed. Two weeks after his arrest, Williams took a vacation day, appeared in Wayne County Court for the arraignment. The state's prosecutor moved to dismiss without prejudice, meaning he could never be charged with that crime again. Since then, he figured out what he was doing the night of the shoplifting. He was driving from home from work and had posted a video to his Instagram. He had a rock solid alibi, but the Detroit police didn't bother to check that. My name is, as I said, partially Brennan O'Leary. I'm a developer of Angels at GitLab, and I want to talk to you about how we can work together to solve these kinds of problems. We know a lot as software engineers, and we know what works and what doesn't. If we're able to apply that same energy towards inclusion and accessibility in our designs and in our software, I'm confident we can make the world a more inclusive, more accessible place. So, first, what's the current state? Where are we? Well, building inclusive, accessible software and systems won't just benefit those who it's directly aimed at helping. It benefits everyone. Hurts nobody. It's complicated by the fact that accessibility or inclusion is often an afterthought. We design software to scratch our own itches, after all, and our own itches are inherently biased to the life experiences we've had. So, how can we build and build it into our designs? We have to bring intention, focus, empathy, and action to bear on the problem and leverage existing resources. Like I said at the beginning, these are problems that have solutions. You just need to seek them out intentionally. And it's not a small portion of people that are impacted by this. I live in the USA in North America, so I have that perspective on the world. But intellectually and with data, the world is much wider, much more diverse place. In fact, unless you live in this small circle over South Asia, you don't live with the majority of people. And regardless of where you live in or out of the circle, your experiences are going to be different from someone who lives on the other side of the globe, or even maybe just the other side of the road. The most recent estimates from the WHO are that a million people have some disability of some sort which might mean they use or operate your software in a very different way or with different tools than you do. And almost one in five people are neurodivergent, which includes things like autism, dyslexia, ADHD, and OCD. If you're neuro-typical, you might not understand the kind of impact that design, color, organization, and other things might have on someone who is neurodivergent interacting with your application. And no matter where you live or your personal circumstances, your environment and experiences in life are going to naturally shape your view on the world. And that's okay. But we have to understand how others might see the world and include them in the design of software to ensure we are building with and for everyone. And I want to talk about that difference in building with versus building for everyone. In the United States, we have laws around making spaces accessible to people who may need to use something like a wheelchair to get around. These laws ensure that we are building literally for everyone. If there are stairs to the front door of a building, you have to also build a ramp somewhere so that folks in wheelchairs can access that building. But how is that different than building with everyone? Well, if I required a wheelchair to move around, I know I'd rather go in the front door rather than some other entrance. So if we're building with those who are differently abled, we might decide, you know what? Let's make the door a single even surface so that everyone can go in through the front door. Letting everyone use the front door is how I like to think about building with everyone rather than just for everyone. Let's say you're on board. Now what? How do we build accessibility and inclusiveness into our design and build processes so that we can ensure we're fully realizing the benefits of building with everyone? Step 1 is to go back to first principles. Any software design you will tell you one of the first principles of design is empathy. The ability to understand and share in the feelings of others is critical to any design. So we have to be sure that empathy is for everyone. Don't just be empathetic in the sense of as a product manager I want to be able to blah blah blah. Build real empathy that includes the feelings and desires of a diverse group of people and brings their perspectives directly into your design process. That doesn't mean you have to build one thing that works for all people. People are different and that's okay. That makes us stronger. Don't try and design a one size fits all solution. Design a solution that brings all of the diverse ways people are going to participate in your experience your software or your app to bear. That will instill in your users a sense of belonging that isn't just good for humanity it's good for your business too. And to build inclusion in you have to make it required just like any other design requirement not a nice to have that you put in the format backlog. You also have to learn both yourself and if you're a leader making room and time for your team to learn. There's a lot of amazing resources out there I linked to some of them on buildinclusive.com I also can't recommend enough building in the open. At GitLab we're not only an open source project but we're an open company. Building in the open can feel really scary or unnatural at first but trust me the more you allow feedback and input into your system the better the outcome. I could do a whole presentation just on that so for now you will just have to trust me. And lastly implementation matters. One of my favorite lines from the musical Into the Woods comes when Red Riding Hood after she realizes what the wolf is really up to he wants to eat her and her grandmother she sings about how he was able to trick her because he seemed so nice she sums it up simply nice is different than good having the intention to be inclusive is nice but actually following through implementation is good. Now I understand that can be intimidating it's a lot to take on so what can you do today or tomorrow when you go back to work after this conference? Well I want to share some tips here there's a lot of small steps you can take to start the journey map out your application look at each small detail in a sequence of interactions what barriers exist for different groups of people then flip it see how you can make those interactions more inclusive find a free online course there's Google web design advanced courses on edx and Udacity if you're building for the web you can use extensions to gauge accessibility and remember to design with excluded and diverse communities not for them you can foster belonging through representation and you can establish accountability on day one make the decision to require it oh and if you're a GitLab user for your otherwise and of course I hope you are and you might be because you're here you can add automated web accessibility testing to your GitLab CI CD pipeline with just six lines of YAML once you add these lines you'll automatically get accessibility testing on every merge request if you use review apps to preview your changes you can even see over time if your app is getting more or less accessible this is a small step you can take today to start the process of including it into your development processes if you visit brendan.fyi slash a11y you'll get the a11y docs you'll get the full documentation for using this you can even some small step today can really help iteration over time and small changes made today will add up we can't end racism by stopping one act of violence against a black person, an Asian person or another person of color and we can't stop all bias or exclusionary design from entering our designs just by focusing on the color of our buttons but if you have a question choose to be in the group of people who try and make people feel included and everyone in your development process takes responsibility for creating inclusive technology we can make the world more inclusive and accessible thank you so much I hope at least you got I got some of you thinking about ways to make your software more inclusive if you have any questions I'll be around afterwards and I'll talk about your thoughts and I'd love to hear your feedback after the conference the best way to get in touch with me typically is Twitter I'm at Uliri crew to view these slides the resources that I mentioned earlier and a lot of other resources that I'm trying to gather on inclusive design and software please visit buildinclusive.com I'd also love your feedback on that I'm sure I'm missing a lot of great resources that I could add there thank you