React Native Radio

RNR 238 - Accessibility in React Native with Lizzi Lindboe

Episode Summary

Lizzi Lindboe joins Robin, Mazen, and Jamon aka Barry White to talk about accessibility in React Native!

Episode Notes

Lizzi Lindboe joins Robin, Mazen, and Jamon aka Barry White to talk about accessibility in React Native!

This episode brought to you by Infinite Red! Infinite Red is a premier React Native design and development agency located in the USA. With five years of React Native experience and deep roots in the React Native community (hosts of Chain React and the React Native Newsletter), Infinite Red is the best choice for your next React Native app.

Helpful Links:

  1. React Native accessibility docs
  2. AccessibilityInfo
  3. When to use accessibility labels
  4. Jen Luker's 2018 Chain React talk, "How to be a React Native A11y"
  5. React Native Accessibility on Android tips
  6. Building an accessible clock on iOS

Connect With Us!

Episode Transcription

Todd Werth:

Welcome back to React Native Radio Podcast, brought to you by Family Dinner. It just tastes better when you serve Family. Episode 238, Accessibility in React Native with Lizzi Lindboe.

Jamon Holmgren:

So I'm back, and I just got back from my first conference held outdoors, actually first conference in two years, and of course I got sick. I don't know. People might not even be able to recognize my voice. This is Jamon, by the way.

Robin Heinze:

I was curious who I was talking to.

Jamon Holmgren:

Not Barry White.

Robin Heinze:

Are you sure it's not COVID? Was this a superspreader event?

Jamon Holmgren:

I don't think it's COVID. Actually, I think I got it from my wife when I got home, to be honest, and-

Robin Heinze:

That's actually kind of ironic.

Jamon Holmgren:

Yeah, I think so. She took two COVID tests and both came out negative, so I don't know. I should probably take one too, but I feel like something's going around that's not COVID that's just making everybody just worn down, like really tired.

Robin Heinze:

Speaking as someone with two kids in daycare, there are absolutely things out there that are not COVID, and I think I've had all of them.

Jamon Holmgren:

Yeah. Well, I got used to not being sick. I got used to not being sick the last two years, and this is just weird to just always be sick. I don't know. I just sound like Mazen now. Mazen, this is his normal voice, but-

Mazen Chami:

Are people going to tell who's speaking? Probably.

Jamon Holmgren:

Yeah, I'm a pro soccer player here. That's what I do.

Mazen Chami:

And I'm your friendly CTO host.

Jamon Holmgren:

Yes. Well, we're going to push through because I have finished sisu. What does that mean, Robin?

Robin Heinze:

It means grit, not like shrimp and-

Mazen Chami:

Grits, oh.

Jamon Holmgren:

It could mean shrimp and grit, but no, you're right. Yeah, it's like perseverance, like extreme perseverance. I don't know. I'm not that tough, but I can do a podcast I think. I'm Jamon Holmgren. I'm your host and friendly CTO of Infinite Red. I'm located just north of Portland, Oregon in Vancouver, Washington. No, I'm not Canadian. I live there with my wife and four kids on three acres, and I have a tractor. I am joined today by my stellar co-hosts. I can't believe we haven't used stellar yet. I think we say that every time, like I can't believe we haven't done this, but we have done, I don't know, 60 some episodes, something like that, and we've used a different one every time.

Robin Heinze:

It's impressive.

Mazen Chami:

It is.

Jamon Holmgren:

There's a lot of words that mean awesome. Anyway, my co-hosts are Robin and Mazen, and we actually have a guest today, Lizzi Lindboe. I'll introduce her in a bit. Robin is a senior software engineer at Infinite Red. She's located west of Portland, Oregon with her husband and two kids and has specialized in React Native for the past five years. Mazen Chami lives in Durham, North Carolina with his wife and newborn child.

Robin Heinze:

Not so newborn anymore.

Jamon Holmgren:

No, actually getting bigger every day.

Mazen Chami:

Every day.

Jamon Holmgren:

He's a former pro soccer player and coach, and is a senior React Native engineer also here at Infinite Red. And our guest, I'm really excited to have her on today, Lizzi Lindboe. Lizzi is a senior software engineer also at Infinite Red. She's worked here for a couple years now, and in previous lives she did a lot of functional languages, more backend programming like Clojure and Ruby, before moving to React Native in 2019. She also lives in Portland, Oregon with her partner and is currently drowning in house plants. That's what my bio says here. Okay, what kind of plants do you have, Lizzi?

Lizzi Lindboe:

All of the low light ones I could find.

Jamon Holmgren:

Low light. That's how you know that you live in Portland, Oregon, because you need low light-

Lizzi Lindboe:

Exactly.

Jamon Holmgren:

... in this area

Lizzi Lindboe:

Yeah, no cacti, no succulents. I grow things like Calatheas, and try to keep them happy, and fail, but it's fun.

Jamon Holmgren:

That is cool. I have not been bitten by the house plant bug, but I do have a lot of plants around my property that I have to take care of. In fact, I'm going to be putting in some flower beds pretty soon. I may have to hit you up, Lizzi, for some tips here, but that's really cool. And you've been doing a lot of backend programming, which I came from that world as well so I feel like we relate somewhat. Robin did, too. Robin, you did Ruby before this, right?

Robin Heinze:

Yes, I did backend Ruby.

Jamon Holmgren:

Yeah, a bunch of backend devs trying to do front end. Good thing that we're handling the podcast here. Mazen's going to have to straighten us all out.

Mazen Chami:

Well, I started in PHP. Do you consider that backend?

Robin Heinze:

At this point though, Jamon, I've been doing React Native longer than I did Ruby.

Jamon Holmgren:

That's amazing, and Mazen just said that he did PHP before. I got to admit, I did as well for five years before Ruby.

Robin Heinze:

Didn't everybody?

Jamon Holmgren:

Yeah, didn't everybody? It's true.

Lizzi Lindboe:

I did not.

Robin Heinze:

I didn't either.

Jamon Holmgren:

That's that explains a lot, Lizzi.

Lizzi Lindboe:

I remember as a kid trying to figure out PHP so I could build cooler websites, but that didn't happen.

Jamon Holmgren:

Yeah. I mean, I feel like there definitely is a value in doing something like PHP, but it's a whole different beast. Yeah, we should do a PHP episode sometime, but it's not going to be this time. This episode is sponsored by Infinite Red. Infinite Red is a premier React Native design and development agency located fully remote in the US and Canada. Despite appearances, we're not just in Portland, Oregon. If you're looking for React Native expertise for your next React Native project, hit us up. You can learn more on our website, infinite.red/react-native. Don't forget to mention that you heard about us through the React Native Radio Podcast and specifically because Lizzi is so awesome. Also, please do send us your weird React Native bugs, tag at ReactNativeRdio on Twitter and hashtag weird bugs, and we'll put it into a future episode.

Jamon Holmgren:

Okay, let's get into our topic for today. This has been a much requested topic, but we wanted to wait until we had a pretty solid project under our belt. Luckily, all three of my co-hosts here today have been working on a project where accessibility was a first class citizen, so that's pretty cool. I'm really looking forward to learning more from you folks on what you found during that process. We are going to call it... The topic is Accessibility and React Native. We have Lizzi here because this is one of Lizzi's specialties, but also because she's worked with Robin and Mazen on this project. Lizzi, I want to start with you. First off, how did you get into accessibility? When did you get into accessibility? This isn't something that I feel like is necessarily taught in boot camps as much or even university courses. How did you initially get into accessibility?

Lizzi Lindboe:

Yeah, it's definitely not taught very frequently. Like a lot of developers, I had my first exposure to it through testing, kind of using accessibility labels as test IDs for automated tests. But then on this project that you mentioned, the client said it was a priority to have great accessibility. I said, "Well, I've got to learn about this. Time to figure it out."

Jamon Holmgren:

I feel like that's the consultants' impetus to learn new things is they get asked by their clients like, "Hey, can you do this thing?"

Robin Heinze:

Literally how I've learned everything that I know.

Lizzi Lindboe:

Yeah.

Jamon Holmgren:

Yeah, exactly. Me too, and so accessibility, obviously it's been hanging out there. I've heard various things about it, and then this is also... it's true certainly for React Native the first time that one of our clients was like, "This is absolutely a first class citizen." Now, interestingly, since that time we've had more requests as well. I think it's becoming more of a standard practice, which is great. It's fantastic, but one of the things that is... You can't just go take a course and learn accessibility. There isn't just, "Hey, check this box off." It's a lot of different things. Isn't it, Lizzi?

Lizzi Lindboe:

Yeah. There's, one, a lot to the topic of accessibility. There are different features that people need, like screen readers, or text adjustments, or color. In addition to that, there's the fact that a lot of accessibility resources are written for the web and using things like ARIA rules, which don't apply in a React Native context.

Jamon Holmgren:

That's a really good point.

Robin Heinze:

Yeah.

Mazen Chami:

Yeah. I think going on your point, Lizzi, that if it wasn't for the client, I feel like we would've not gone into accessibility and researched it. I think a lot of maybe devs and companies in general think of accessibility as a nice to have. It's almost like, "Oh, if we get around to it, we'll include it," when instead I think it should be highly prioritized, part of the business model because you're unlocking... and there's that empathy aspect of what we do. We're unlocking a new group of users who, unlike the image we take of everybody else out there that can see well, hear, and walk, and all that kind of stuff we take for granted every day. Some people can't, and our ability to integrate that into our apps makes it much more comfortable for people who have these disabilities, and opens up a whole new group of users in our application.

Lizzi Lindboe:

I've also always been interested in learning more about this for myself, like knowing things like I have light sensitivity, and using low light, and having software that supports that makes a huge difference for me, as well as arthritis runs in my family. I've been learning more about how can I keep doing programming throughout my life if it might eventually hurt my fingers to type. There's a lot of things that can come up for everybody.

Robin Heinze:

That was actually one of the main takeaways from one of the talks at the first Chain React, I think.

Jamon Holmgren:

2017.

Robin Heinze:

2017, Jen Luker's talk, which was called Be a React Native A11y, I think was the title. One of the points that she made was that there are so many different types of disabilities, and it's not just the ones that you think of. I mean, obviously there's permanent disabilities, which is usually what you think of, but then there's situational disabilities, which is one that comes up for me a lot, like holding my baby in one arm. I can't use that arm to use the mouse, and so I need keyboard shortcuts, or I'm holding him the other arm, and I can't use the keyboard, so I need VoiceOver or, sorry, voice commands.

Robin Heinze:

There's all sorts of situational disabilities, or there's temporary disabilities. You broke your arm, or I mean, something that is a disability, but it's only for a short time. Basically those features are for so many more people than you'd think, and it could easily be you. When you're trying to sell it to your higher ups, your product team, whatever, so much of their user base could be impacted by this that it's more important than just what they think of as maybe a small fraction of users.

Mazen Chami:

Totally. Building off of that, Robin, with kids, yes, you need all those features, and a quick story around temporary. My mom had surgery recently on her arm, and she wasn't able to move her fingers for a little bit. It would take her ages to text me, and she was calling me. She'd be like, "I'd rather just call you instead of texting." I was like, "Well, here are some features." Given this project, I had unlocked some of these features, like, "Hey, you could use these features to make it much easier for you instead of having to reach for your phone all the time and do all this kind of stuff." It kind of helped her in the interim to do what she needed to do and communicate with family.

Jamon Holmgren:

Yeah. Lizzi did a really awesome accessibility workshop internally at Infinite Red a while back. She had us turn on the screen reader on our phones, or voice over on our phones, and follow along as she was going through a React Native app. After the workshop, I tried a few other apps using the techniques that she was showing us, and most sucked. Most were bad. I went to the, not to call them out, but if they need help, they can talk to us, chess.com app. There's no reason why someone who is low vision or blind could not play chess. Plenty of people do, but the chess.com app was totally unusable. You could not navigate using the VoiceOver features, and I felt that frustration. I was like, "This sucks. This should be better," and it's not that difficult to make it better. They could just do a few things, and it would work better. So in my opinion, you need to put yourself in those situations and feel that frustration, because then you'll start having of a spidey sense of, "his is going to suck for people and I should make it better."

Lizzi Lindboe:

Exactly.

Robin Heinze:

Just take a day, and turn VoiceOver on, and try to use your phone.

Jamon Holmgren:

Exactly.

Lizzi Lindboe:

Yeah, it makes me so happy that you did that. If there's one thing I would like people to do it is go try the screen reader on your phone. I think sometimes there's an impression that if we just add labels to things, it's going to work, and it's going to be just fine. The truth is that gets you 90% of the way there, but there are typically some controls or other UI elements that you need to add a little bit more logic or custom actions to in order to get an equivalent experience for a sighted user.

Robin Heinze:

Think about sliders or swipe, anything with specific gestures. You need to be giving more hints about what's on the screen, and how to interact with it.

Lizzi Lindboe:

One of my favorite tips that I learned was when you have a cluster of controls like you might in a music app, a screen reader focuses on one button at a time normally. But if you just focus on the play button, that's completely devoid of context unless you remember what came before, which screen reader users are good at doing, but it's actually a typical pattern to group related controls together, read them all out at once, and have multiple actions that can fire on that larger grouped control.

Jamon Holmgren:

Yeah. That's true. These are things that we take for granted as sighted users. We'll just take in that context right there. Boom, it's there, and then we have it in our brain. So would you say, Lizzi, you can make some progress understanding what users with disabilities are going through by emulating it, by using screen readers and things like that, but in the end you probably do need to have people test it who actually have those disabilities?

Lizzi Lindboe:

Absolutely, that's the number one thing that you can do. There are a number of people out there who work as accessibility consultants, a number of them have the disability that you want to test for. Not every company makes that choice. The next best thing is then to look up blogs and other posts from people who have the given experience. There are a number of blogs that I love. We can put some in the show notes.

Jamon Holmgren:

Perfect. Yeah, that sounds awesome. We're trying to give resources to people to learn about these things. Like you said, Lizzi, there isn't one place to go where you can learn everything. It has to be a... You have to attack it at many different fronts here. Let's talk about the different facets of accessibility in React Native.

Lizzi Lindboe:

Yeah, there are a bunch.

Robin Heinze:

Yeah. Well, we've talked about probably the most recognizable one, which is VoiceOver TalkBack. In Android it's called TalkBack, iOS it's called VoiceOver, which is for low vision users, and it'll read the contents of your app out loud.

Lizzi Lindboe:

And then there's a number of things around color that it are typically handled more by designers, but are still good to know about for people who are color blind. You might have different themes. Again, for blind or visually impaired users, you might also need to adjust contrast. There's people like me with light sensitivity, and I think, Jamon, you mentioned astigmatism.

Jamon Holmgren:

Yeah. Yeah, we were talking before this about dark mode, and sometimes developers will get kind of religious about, "You're not a real dev unless you use dark mode." I do use dark mode for some things, but it doesn't work great with my vision. I have astigmatism, not super bad, but just some level of it. I think a third of the people in the US have it, so this is not an uncommon thing. I wear glasses for it, and you get a halo effect. Even wearing glasses, you get a halo effect when you're looking at something with a dark background and light text, especially if it's small lettering.

Jamon Holmgren:

Another place where we've seen this as well is we did some apps for... They were like some logistics apps for truck drivers and whatnot. The average age of a truck driver is somewhere... It's north of 45. It's probably in the 50s somewhere. Truck drivers tend to skew older, and you get a 22-year-old designer with great eyes designing with these tiny fonts that look beautiful on their 45-inch curved screen. Then you get it on a phone, and it doesn't work so well for the 60-year-old truck driver who's trying to check it out in a different context. So that's another situation where it's not accessible to the person who it's actually being designed for.

Mazen Chami:

And building on you mentioning bringing in the designers and focusing on the older group of people, you also have to take into account tech size. I mentioned my mom and teaching her some of the accessibility tricks. She also has her font size much higher up, and I've seen her use some of the apps. I think the designers did not take this into account. I think that's something that maybe as designers, as developers, we're like, "Well, it's going to ruin the experience. It's going to ruin the app." Sure, it's going to ruin the experience, but it's going to ruin the experience if we don't take the time into actually accounting for it. Utilizing flex instead of specific heights and widths are usually the first thing I would say, to use flex instead of heights. I think people still use height and width most of the time, which is weird, but besides the point-

Robin Heinze:

Yeah, yeah, definitely use padding.

Mazen Chami:

Exactly.

Robin Heinze:

... instead of specifying a height or width.

Mazen Chami:

Padding start and end are usually better than left and right, yeah. So I think accounting for tech sides and involving the designers in this too, because I think they can also help in this process.

Lizzi Lindboe:

There's also a lesser known, I think, accessibility feature to reduce motion where you would disable any unnecessary animations. Some people are motion sensitive, and that is something that you have access to, that setting, in React Native.

Robin Heinze:

I didn't know about that actually.

Jamon Holmgren:

Is that something that you have to check the setting, the OS setting, and then do it yourself, or does the OS not show the animation?

Lizzi Lindboe:

So React Native has an accessibility info module that exposes several different OS level settings, and then you can just check that.

Jamon Holmgren:

And then you would simply not run an animation yourself. You would have a conditional in your code, right?

Lizzi Lindboe:

Yeah. This is one of the ones that I don't think it comes up very often. I'm not sure if it's in the first AA standard of the WCAG, which I have no idea how to say out loud.

Jamon Holmgren:

That'll work.

Lizzi Lindboe:

But that is the standard that a lot of apps end up aiming for. Some regulation uses it. Some of the items that are not included in that sometimes get overlooked, but they can still matter to people.

Jamon Holmgren:

Accessibility info is a great module that we don't really talk about enough, I think. There's a is reduced motion enabled method. It's a async method that will simply return a true/false. Then I'm kind of thinking, just to get off in the weeds a little bit for a second, but for Ignite for our boilerplate, we should probably have this by default built into Ignite where in our state already is whether reduced motion is enabled or not. You can just check your state. You don't have to even think about it. Anyway, I think providing these super low friction ways for developers to help people out, I think, is the key.

Mazen Chami:

Lizzi, can you discuss some of the differences between React JS web accessibility versus React Native accessibility? I know you mentioned at the beginning we have the ARIA tags on the web.

Lizzi Lindboe:

Yeah. So first off I'm not a web developer. I don't know too much about the web side, but I know that the way that you specify accessibility attributes is very different on the web versus React Native because I would find a lot of guides written for the web that did not apply. So anything with attributes that start with ARIA are not present in React Native. React Native has exposed an accessibility API, which they did a fantastic job with considering that they are unifying into a single API two completely separate, completely differently designed accessibility APIs from iOS and Android. It is helpful to learn about each of those platforms' individual APIs because they do behave differently. The way that they announce details is... They'll sometimes have different behavior in how they read out labels and hints, and how they automatically guess what to read. iOS tries to be clever and decide what order to read things in rather than the order you specified it in.

Jamon Holmgren:

Interesting. I didn't know that.

Robin Heinze:

Yeah, I definitely had to fix a couple bugs where we had to manually change labels so that iOS and Android would both read everything we wanted them to read.

Jamon Holmgren:

So they're not exactly equivalent then.

Robin Heinze:

They're not.

Lizzi Lindboe:

They have different conventions as well, too, especially when it comes to announcements of something that might have changed on the screen, which a sighted user would see. The way that you observe changes and can announce them on iOS and Android are very different.

Jamon Holmgren:

Interesting, and I remember you talking about how... I think during the workshop, I could be wrong, but I think during the workshop you talked about if you had something on the screen that was changing often, that you might want to pick and choose how often you announce that to the user through a VoiceOver. So there are some features that can allow you to fine tune that. If it's a stock ticker, that's changing every half second, a sighted user could just kind of ignore that it's changing all the time. But when the VoiceOver's saying, "Bitcoin is now down to $4..." Sorry, too soon. But every second, that could be problematic.

Robin Heinze:

It would ruin their experience because they couldn't do anything else.

Jamon Holmgren:

Right, exactly.

Mazen Chami:

As a developer, what are the things, maybe we can say the low bar, minimal entry things that I can do to get my app to be accessible so that I can then start testing with VoiceOver or TalkBack to eventually get me to start building a fully accessible app?

Robin Heinze:

I mean, if you're building in React Native, you get a lot of things out of the box, and you can probably just turn VoiceOver on and see what's broken. It's probably the best thing you can do.

Lizzi Lindboe:

I agree. There's a conception that you need to add labels and hints to everything, but several components are smart about how they should be read out. You should absolutely test out your app in a screen reader and see, is this understandable what this component is on its own, or do I need to add additional context?

Robin Heinze:

Yeah, anything that has text that will already have labels basically and will be read out. Buttons are usually pretty good out of the box, and if you're using things like React Navigation, those tend to be accessible out of the box. If you've just built a React Native app and have done nothing with accessibility, you'll probably be already 70, 80% of the way there. Yeah, I would just say turn on your screen reader and see what's broken.

Lizzi Lindboe:

Yeah, you may also have to audit your third party libraries to see if they support accessibility. Some of the ones that implement native components from scratch haven't prioritized that. If that's a consideration for you, definitely check that early.

Robin Heinze:

One example that we ran into on our project, I just fixed it this week, was we were using React Native Modalize and React Native Portalize to create a bottom sheet, but VoiceOver couldn't read anything within that component.

Jamon Holmgren:

Oh wow.

Robin Heinze:

Just couldn't see it at all, which was a huge problem. We actually switched to React Native Bottom Sheet, which is built with accessibility already, and it works great. So you may have to pick and choose your libraries carefully.

Jamon Holmgren:

I feel like to stand out, there's a lot of libraries out there, but if you want to build a library that stands out, mention that it comes with built-in first class accessibility support. I think that people seeing that in a README will be like, "Oh, okay, that's cool." Obviously it means something to have it be accessible out of the box, and it's less work for me, and I can look good. So that's definitely something to think about if you're a library author. I think in the end it does come down to getting buy-in from your management, or your client in our case, because how many times have we been pressured as developers to push a feature out?

Jamon Holmgren:

If they knew that you were sitting there tapping through with VoiceOver to make sure that it works accessibility, would they be cool with that? Some clients or management might be like, "No, no, no. We just need to get this out." So you do need to get buy-in. It's awesome to work with management and clients that do see the value of it. Jen Luker said in the talk that Robin mentioned that it's not just about being kind to people with disabilities, it's also a business concern because it makes your apps available to potential customers who can then use your app, buy things, do whatever.

Robin Heinze:

And sometimes it may even be a legal requirement.

Jamon Holmgren:

Absolutely.

Robin Heinze:

Depending on what your site does, and what industry you're in, it could be a legal requirement.

Jamon Holmgren:

There have been companies that have gotten lawsuits over lack of accessibility, some of which we may have worked with maybe.

Robin Heinze:

Not to name any names.

Jamon Holmgren:

Not before that. We worked after that with them, but we won't name them, but essentially, yeah, legal requirements as well. This is obviously trying to push companies in that direction. We do have a client who is willing to come on our podcast. We're not mentioning the name of the client that we worked with in this particular episode because this isn't finalized yet, but they are willing to come on the podcast and talk more about their project. When that happens, we will definitely deep dive more into the accessibility part of their project. I'm really looking forward to that. Everybody make sure you subscribe to React Native Radio because it's coming up in, I would say the next two months, I would say, because we're getting close to launching. I think beta's happening pretty soon.

Jamon Holmgren:

Really cool project, great client, and they put accessibility first. A fantastic situation there. Also, I want to also say we have so many notes we didn't get to. Lizzi has literal pages upon pages of accessibility stuff that she hasn't talked about here, but we will be putting out some useful, actionable accessibility tips for React Native on our blog Red Shift, which is at shift.infinite.red. Yes, this is my public way to put pressure on Lizzi to write some blog posts. I'm going to see how that works-

Lizzi Lindboe:

Diabolical.

Jamon Holmgren:

... but the rest of us should write some as well. If you're interested in learning some more actionable things, but again, I really want to stress for everybody, go try it. Go actually try turning on VoiceOver. In fact, Lizzi, how do you turn on VoiceOver and TalkBack?

Lizzi Lindboe:

Yeah, so for both platforms you just need to go into settings and accessibility, and you should see options for VoiceOver and TalkBack. If you have an older Android device that's maybe Samsung, you might have Voice Assistant instead, but you can actually go install Android Accessibility Suite from the Play Store, which will give you TalkBack. Recommend using that. TalkBack is the way of the future for all Android platforms, and then both of them also have a tutorial to walk you through. I also recommend looking up a cheat sheet of the gestures and things to use, just to remind yourself while you're navigating around.

Robin Heinze:

There's a lot of gestures.

Lizzi Lindboe:

And a proficient TalkBack user or VoiceOver user will be using all of these, so you want to understand what's available.

Jamon Holmgren:

Yeah, you showed us a few of those gestures, and I was kind of blown away. Some of them are really helpful. They'd be nice to have even if I'm not using VoiceOver, but yeah. So definitely go check that out, try it on your app, just see what happens, see how bad it is, feel that embarrassment, and then go fix it.

Robin Heinze:

Right, feel it.

Lizzi Lindboe:

And for what it's worth, we all have room to improve. I know that when a lot of folks were testing out and learning screen readers, some would go to things like the Apple App Store to try to see, okay, what are the great patterns that they follow, and there are problems there too. A lot of these major apps have problems, but we can do better.

Jamon Holmgren:

Yeah. Yeah. Well, that's all the time we have today unfortunately. If you'd like to nerd out more about React Native, you can check out my Twitch Stream at rn.live. There's a new website there, go check that out. I probably will at some point be hacking on some accessibility stuff.

Robin Heinze:

Yeah, we should. You should add accessibility features to Ignite on Stream.

Jamon Holmgren:

Ooh.

Mazen Chami:

That's a good idea.

Jamon Holmgren:

I like that. I do a lot of open source, so that's a perfect opportunity for this. I really, especially, I thought this would be really straightforward to add that reduced motion thing to the state, just so that you can check it. You can also join our Slack Community at community.infinite.red. We have all over 2,000 React Native developers in there. There's a new Twitter community, rntwitter.infinite.red. We're connecting you up with all the React Native people. One more thing, make sure to send us your weird React Native bugs. We will be talking about that in a future episode at ReactNativeRdio on Twitter, hashtag weird bugs. Robin, where can people find you online?

Robin Heinze:

I'm @robin_heinze with an E.

Jamon Holmgren:

Mazen?

Robin Heinze:

With an E at the end.

Mazen Chami:

With an E, don't forget the E.

Jamon Holmgren:

Jed.

Robin Heinze:

Don't forget.

Mazen Chami:

I'm @mazenchami, with an I at the end.

Jamon Holmgren:

I like it. I like it, and you can find me at Barry white. Wait, no. No, that's not right, @jamonholmgren. You can find Lizzi, Lizzi's on GitHub at Lindboe, that has an E on the end as well, so everybody's kind of following the convention here. You can follow React Native Radio at ReactNativeRdio. Thanks so much, Lizzi, really appreciate you coming on today and sharing just a tiny bit of the vast amount of knowledge you have on this topic. As always, thanks to our producer and editor, Todd Werth, our assistant editor and episode release coordinator, Jed Bartausky, our designer, Justin Huskey, and our guest coordinator, Derek Greenberg. Thanks to our sponsor Infinite Red. Check us out at infinite.red/react-native. Special thanks to all of you listening today. Make sure to subscribe. We are React Native Radio. See you all next time.

Robin Heinze:

Bye.

Mazen Chami:

Bye.