Podcast Search

Under the Radar

132: Accessibility

Select a time to play from there. The line being spoken is highlighted as the audio plays.

0:00:00Welcome to Under the Radar, a show about independent iOS app development.

0:00:04I'm Marco Arment.

0:00:05And I'm David Smith.

0:00:06Under the Radar is never longer than 30 minutes, so let's get started.

0:00:10Today what we want to talk about is accessibility.

0:00:14If you remember from our Q&A episode a couple weeks ago,

0:00:17we had a very brief discussion about accessibility,

0:00:21but I think it's a topic that deserves a much broader discussion

0:00:24than the few minutes you were able to give it inside of that.

0:00:27It turns out also that this week has National Global Accessibility Awareness Day, I think.

0:00:35I don't typically get into these kind of awareness days,

0:00:39but it's just coincided well, and it seemed a good thing to talk about.

0:00:44Because I think accessibility is a topic that is...

0:00:49It's an interesting intersection between something very...

0:00:55It's a very personal side of development,

0:00:57because it tends to interact with people at a level that is different

0:01:02than just our normal development.

0:01:04And I think as a result, accessibility can often become something

0:01:07that you can become very emotional about, or very...

0:01:09It takes a different level of importance than a lot of things.

0:01:13But before I dive into a bit more of what accessibility, the specifics of it,

0:01:17I think it probably makes sense to have a bit of an overview

0:01:20about what it is that we mean when we talk about accessibility.

0:01:23And in general, I would say it's best to think about accessibility

0:01:28as methods of development that make your app usable by specific communities

0:01:36within your user base.

0:01:37And that can take a lot of different uses, take a lot of different paths,

0:01:42depending on if there's different impairments that you may have to be working around,

0:01:45or to consider.

0:01:47But in general, accessibility and usability are one and the same.

0:01:52There are certain things that we might do in our application to make it usable,

0:01:56just for general usability with our general population who uses our application.

0:02:00And then accessibility, I think, is the extreme versions of those,

0:02:05where we have to make it usable by people who don't have all of the affordances

0:02:10that a typical user might have.

0:02:12And so these often get into things like visual impairments,

0:02:15physical impairments, auditory impairments.

0:02:17There's a variety of things that could make our app less usable for somebody.

0:02:21And so accessibility is about making it work for those users.

0:02:26We often tend to think of accessibility as something that's for other people,

0:02:31something that is for people who, "Well, we don't know anybody like that

0:02:34because we're all young, able-bodied developers," whatever.

0:02:37But the reality is almost everybody will use some kind of accessibility feature

0:02:41sometime in their lives.

0:02:43The most common example is text sizing, making text larger as you get older

0:02:49and as your eyes get worse, because that's just how our bodies work.

0:02:52And so it's good to think of accessibility not as a special accommodation

0:02:59for other people, but as a collection of features, tools, and design considerations

0:03:06that make the app usable for as many people as possible.

0:03:11Yeah, and I think that, too, it's the powerful thing of --

0:03:14I remember I used to think of accessibility as this --

0:03:18it's like there's this thing for other people that I do for them,

0:03:22which is a really kind of entitled, privileged way to see it.

0:03:27It's like, "Oh, I'm being so kind to this other community."

0:03:30But I'm very glad that I think over time I've developed that into a much more mature,

0:03:36actual understanding that accessibility is something that is for everybody.

0:03:41It is most beneficial and most impactful in special communities,

0:03:45but it just makes my app better for everybody.

0:03:48And I think about the last time I went and had my eyes dilated

0:03:53when I was having an eye exam, and suddenly I need to crank dynamic type

0:03:58all the way up to see my phone, and all of a sudden it's like,

0:04:02"Right, yeah, this impacts everybody."

0:04:05It impacts everybody to a different degree, but it's the same affordances

0:04:09and the same benefits that apply to everybody.

0:04:12Having that change in mindset that just makes your app better

0:04:17and more accessible for everybody,

0:04:20it changes the degree in which I was motivated to think about it.

0:04:24And I think it was also just so useful to change my --

0:04:28it's like this just as a person, that was a really useful thing.

0:04:32Any time you can get away from that kind of others versus yourself mindset,

0:04:38it's like, "No, this is just part of development because this is for everybody."

0:04:41All of my users benefit from this.

0:04:44It reminds me in a funny way of all of the episodes under the radar have a transcript.

0:04:50If you look in your -- wherever you're listening to this now, in the show notes,

0:04:53the top link is "episode transcript," and that is there in many ways

0:04:57for people who can't hear the episode.

0:05:00If you have auditory impairments, you may not be able to listen to us speak,

0:05:04and so podcasts can be very inaccessible to you.

0:05:07But if you have a transcript, you can read it if you're able to read.

0:05:10But it also has benefits for people who might just want to quickly browse something,

0:05:17if you want to search for something later.

0:05:19There's a tremendous number of other benefits that can come from something

0:05:22that is ostensibly an accessibility feature

0:05:25or something that is more particularly targeted, but it benefits everybody.

0:05:29And because it benefits everybody, it's also just smart business

0:05:33to design your apps to maximize accessibility.

0:05:36Because as you mentioned, it is kind of an extension of usability,

0:05:40and no one questions the value of good usability in like,

0:05:44"Oh, if you want your app to succeed, you should make it as usable as possible."

0:05:48That seems universally agreed upon.

0:05:50Accessibility is part of that, and yet accessibility kind of gets low priority

0:05:55or people don't talk about it as much.

0:05:58And I get that. I have been there.

0:06:01I have frequently in my career, I have shipped accessibility problems.

0:06:06I have shipped unlabeled voiceover buttons and stuff like that,

0:06:10or I've broken accessibility because I forgot to test it when I moved a view around or something.

0:06:15We've all made these mistakes, but I think it's important to keep it in mind more.

0:06:23And if you have any kind of testing process, any kind of formalized checklist

0:06:27or anything like that, to make it a part of that.

0:06:30And that will help you avoid shipping accessibility problems.

0:06:34Yeah. And I think too, probably to wrap up the overview,

0:06:37is to say that why should you development?

0:06:39Like if I was trying to convince somebody why making accessibility

0:06:42a big part of their development process.

0:06:44There's two main reasons for it.

0:06:46I think there's the first, which is the more just general,

0:06:50it's a good thing at a human level to make your apps very usable,

0:06:53which is a good general thing.

0:06:55But more specifically, it's good business.

0:06:58It's in the same way that localizing your application

0:07:01makes your app usable to broader communities,

0:07:05which allows you to make more money or have a more sustainable business

0:07:09because you have more users.

0:07:11Accessibility is the same thing, where you open up your app to be usable

0:07:16by these other communities that then allows you to broaden your user base,

0:07:20which is just good business.

0:07:22And thirdly, it's also just, Apple really likes accessibility,

0:07:26and they care a lot about it.

0:07:28And it is something that you will hear Apple talk about many times.

0:07:32They spend a tremendous amount of effort,

0:07:34clearly on the engineering side,

0:07:36making sure that the tooling and abilities that we have

0:07:40on the accessibility side are very robust.

0:07:42And so doing things that Apple cares about is going to benefit you

0:07:46in terms of featuring, in terms of your just general being a good member

0:07:52of that community and having the knock-on benefits that that brings with it.

0:07:56It's just a good business decision as well as a good human decision.

0:08:00We are sponsored this week by Linode.

0:08:03With Linode, you have access to a suite of powerful hosting options

0:08:06with pricing starting at just $5 a month.

0:08:08You can be up and running with your own virtual server

0:08:10in the Linode cloud in under a minute.

0:08:12Linode has hundreds of thousands of customers,

0:08:15all of whom are serviced by their friendly 24/7 support team.

0:08:18You can email them, call them, even chat over IRC in the Linode community.

0:08:22They know how important it is to get the help you want,

0:08:25and Linode also has a suite of amazing guides and support documentation

0:08:29to give you any references when you need it.

0:08:31So, for instance, if you wanted to learn details about how to set up

0:08:34your Linux server, Linode, you can even, if you search the web,

0:08:37these are public. Anybody can see these documentation.

0:08:39And I have frequently found when I've searched for some kind of,

0:08:42like, you know, Linux help thing, oftentimes the best answer

0:08:45and one of the top answers is a Linode document.

0:08:47They really know what you need, and they're really great at explaining it.

0:08:50And they have an intuitive control panel.

0:08:52This allows you to deploy, boot, resize, snapshot,

0:08:55and clone your virtual servers in just a few clicks.

0:08:58And they also now have two-factor authentication to keep you safe.

0:09:01So Linode has fantastic pricing options for every budget and every need.

0:09:05Their plans start at one gig of RAM for just five dollars a month,

0:09:09and they offer lots of other plans that go up from there,

0:09:11including high memory plans, depending on what your needs are.

0:09:14As listener of this show, sign up at linode.com/radar.

0:09:18That will support us and give you $20 towards any Linode plan.

0:09:21So on that base $5 plan, that's four months free.

0:09:24And with a seven-day money-back guarantee, there's nothing to lose.

0:09:27So go to linode.com/radar to learn more, sign up,

0:09:31and take advantage of that $20 credit, or use promo code radar2018 at checkout.

0:09:36Thank you so much to Linode for supporting the show.

0:09:39So I think now that it's sort of the general overview to the side,

0:09:42I think let's dive into some of the more specific types of accessibility

0:09:47and probably even more over from the developer perspective,

0:09:50some of the tools and abilities that we have as a result.

0:09:53And I think the main area to start with probably are visual accessibility tools that we can use.

0:09:59So visual impairments can come in all varieties.

0:10:02They can go all the way to the extreme forms of things like blindness,

0:10:05where a user is completely unable to view the interface that your app has,

0:10:11to the more minor, to things like we were talking about,

0:10:15where they have difficulty seeing things that are small,

0:10:18they have difficulties around differentiating between colors or contrast,

0:10:23and so you can run the gambit between those.

0:10:25But in general, because our apps at their core are fundamentally visual things,

0:10:32one of the key innovations of the iPhone was that it didn't have any buttons on the main screen,

0:10:39which means that our entire app is functionally something that is visual,

0:10:43that there's no tactile cues to it, or at least not intrinsically.

0:10:48And so there's a variety of different things that we have to take advantage of.

0:10:52And I think the first one and probably the biggest one that most people think about

0:10:55when they think of visual accessibility is the voiceover system in iOS,

0:11:01which if you've never used it, I highly recommend that you stop this episode now,

0:11:06go turn it on, and just play with your iPhone for a little while,

0:11:10because it is a fascinating alternative way to navigate an iPhone,

0:11:15that you can do essentially everything that you currently do with your iPhone,

0:11:19you can do without having--if you close your eyes and just swipe left and right

0:11:25and then double-tap to select things,

0:11:27you do a tremendous amount of capabilities of your iPhone without ever having to look at it.

0:11:33And so voiceover is that system.

0:11:35It's a system that is this alternative interface on top of the main interface,

0:11:40and you'll see it visually with these little cues,

0:11:43which obviously if you couldn't see them, they're not important,

0:11:46but they're ways for us as developers at least to see what's happening,

0:11:50where it's a way of navigating the screen hierarchically,

0:11:54so you move from element to element to element,

0:11:58and then rather than some of the--in a typical interface on the iOS,

0:12:04there's typically direct input, so wherever you--

0:12:07if you want to tap on a button, you have to find--

0:12:09your finger has to be directly over that button.

0:12:12What voiceover does is it takes that and adds a level of indirection

0:12:15where you have a selection state and then a tap state, for example.

0:12:20So you would swipe over until the button you want to select is selected,

0:12:25and then you double-tap on the screen,

0:12:27and so where you're swiping is irrelevant in voiceover,

0:12:30and so it creates that level of indirection,

0:12:32which then allows you to use it if you can't see the screen.

0:12:36I would even say--go a little harder on this--

0:12:38I would say actually learn voiceover.

0:12:41Figure out the basics, which it sounds intimidating.

0:12:45Trust me, it's not. It's really quite simple.

0:12:47It's like swipe right to go to the next item in the sequence,

0:12:50swipe left to go to the previous item in the sequence,

0:12:52double-tap the screen to select something.

0:12:55That's roughly all--that's the basics to all--

0:12:58that's all you need to know to start this.

0:13:00There are lots of other little tricks.

0:13:02One thing the developers should make sure your apps work with

0:13:04is if you present any kind of custom modals or sheets or anything like that,

0:13:09you want to support the accessibility perform escape gesture,

0:13:13which is two fingers on the screen, swipe left, right, left,

0:13:16and it's kind of like a zigzag, like you're crossing out the current screen,

0:13:20and that should dismiss or be like a cancel button

0:13:23on any kind of modal or sheet and everything,

0:13:25and that's something that the built-in stuff

0:13:27does not make it incredibly easy to support that

0:13:30if you don't know about it, but once you know about it,

0:13:32it's pretty easy.

0:13:33But I would say the basics of voiceover,

0:13:36swipe right, swipe left, double-tap to select,

0:13:39learn that, then actually cover your eyes

0:13:43or look away from the screen and try to navigate your app

0:13:46and try to actually use it and see,

0:13:48does the sequence of these things make sense?

0:13:51Are there things that are missing?

0:13:52Are there states that you can get in that you can't get out of

0:13:55because you can't leave the screen from voiceover

0:13:58or you can't leave this mode?

0:14:00Things like that are incredibly important

0:14:02for just the basics of voiceover testing.

0:14:04And voiceover also, not only does it serve visual impairments,

0:14:08but the same kind of mechanic, the same system,

0:14:11can also serve things like motor disabilities and things like that

0:14:14because it's using these same APIs and everything.

0:14:16So the voiceover accessibility API is the number one API

0:14:21to try to support after probably dynamic type,

0:14:24although ideally you shouldn't have to choose,

0:14:26you should really be supporting both.

0:14:27But those are the two big ones.

0:14:30And really, it does not take much to teach yourself voiceover

0:14:35enough to be able to go through your app

0:14:38and just see if there's any major pain points.

0:14:40And I would even extend that to say,

0:14:42actually, if at all possible, seek out voiceover testers,

0:14:46seek out people who are full-time voiceover users

0:14:49on their phones as your beta testers.

0:14:52I made tons of voiceover mistakes

0:14:54until I had voiceover people on my betas,

0:14:56and it made all the difference in the world.

0:14:58I know how an interface should look.

0:15:01I have a pretty good idea of how the app should be laid out visually.

0:15:05But because I'm not a full-time voiceover user,

0:15:08not only do I not run into those problems if they exist,

0:15:11but I don't really have a good concept of what's good.

0:15:14And so it's important to have full-time voiceover users,

0:15:17if at all possible, testing your app and telling you,

0:15:20not only if they see any problems,

0:15:22but also what's good design, what's bad design?

0:15:25What works, what's a pain,

0:15:27what's more complicated than it needs to be?

0:15:29One of the questions I had was,

0:15:31when I was arranging my now-playing screen elements in voiceover,

0:15:36and I thought it would make more sense

0:15:39to have the most frequently used things come first

0:15:43in the sequence of things that you're iterating through,

0:15:45even though that's not how the screen is laid out.

0:15:48If you just try to read the screen left to right, top to bottom,

0:15:51that isn't how the screen is laid out.

0:15:53The most frequent controls are on the bottom, actually.

0:15:55So in the sequence of the naively ordered controls,

0:15:58they would almost be last.

0:16:00But I was like, "Don't you want play/pause first,

0:16:03and skip forward second, and skip back third?"

0:16:06Stuff like that.

0:16:07And so I just asked my voiceover testers,

0:16:09"Hey, would this be weird? Would this be unusual?

0:16:13Would this be bad or off-putting to arrange these in a custom way?

0:16:17Or is that a useful thing to do?"

0:16:20Because I honestly don't know what's normal.

0:16:23What would throw somebody off as being weird or unexpected,

0:16:26versus what's a nice convenience.

0:16:29And I got great feedback on stuff like that.

0:16:31So anything you can do to have voiceover testers,

0:16:34and this applies to all other types of accessibility APIs, too,

0:16:38have testers that use different dynamic type sizes.

0:16:41My dynamic type implementation in Overcast is still not perfect.

0:16:44I only know that because people tell me,

0:16:46because I have testers who actually use it and tell me.

0:16:48So it's just incredibly valuable to have that kind of actual feedback,

0:16:52because it is important for you as a developer to try to learn,

0:16:57to test out your app in these different scenarios,

0:17:00and learn the basics of voiceover so you can navigate it and stuff like that.

0:17:03But you're never going to use it as much,

0:17:06and find as much good and bad stuff about your implementation,

0:17:10or have as much of a sensibility of what works and what doesn't,

0:17:13as a full-time user of these technologies.

0:17:15So if at all possible, involve people who use them in your testing.

0:17:18And I'd say, too, one of my biggest recommendations

0:17:22for anyone who is going to be at WWDC,

0:17:24who has a ticket and is going to be inside,

0:17:26is to make an appointment for the Accessibility Lab.

0:17:28Yes.

0:17:29Where typically, the way I've gone every year,

0:17:31I always find a reason to go, even if I don't have a pressing reason,

0:17:34because I learn so much from the experience,

0:17:37because the way it's typically set up is they have a typically sighted user

0:17:41and a non-typically sighted user,

0:17:43someone who has a vision impairment of some kind from Apple,

0:17:47who will sit down and they'll go through and use your app.

0:17:50And you get to watch and take notes on how they use it,

0:17:55what they see, what they're hearing,

0:17:57the speed at which they're interacting with.

0:17:59And that in-person experience, I found to be tremendously helpful

0:18:03for understanding things that you wouldn't really understand otherwise.

0:18:07I've learned a lot around how verbose I want to make my button

0:18:11accessibility labels be, for example.

0:18:14Spoiler, not.

0:18:16Yeah, you get this, where they're like, "No, no, no,

0:18:19the shortest amount of text possible.

0:18:21I don't need to be having this big, long thing where,

0:18:24so for a lot of my apps, it's like I'm displaying user data.

0:18:27And so for a while, I would have these usability labels

0:18:31that would be like, "Your steps on Thursday, May 17th, 2018,

0:18:36were 10,163."

0:18:39And she's like, "I don't need that. I know where I am in the app.

0:18:43You can just say Thursday's steps, 10,383."

0:18:46And that's all they wanted, because they're very used to,

0:18:51they have a tremendous ability, you develop a tremendous ability

0:18:54to know where you are in the hierarchy,

0:18:56and they have to wait to listen to what's going on

0:19:01before they can make their next action.

0:19:03And so if you make those labels really long,

0:19:05it's hard for them to navigate quickly.

0:19:07Also, things like I learned from going to the accessibility lab

0:19:10was like putting the most important information up front,

0:19:13not at the end.

0:19:15And so actually, I think what I do in my apps,

0:19:18I think I say the number of steps first,

0:19:20and then I say the date in certain circumstances,

0:19:23because that's actually what they're interested in,

0:19:25rather than the date.

0:19:27Because once they have what they need,

0:19:29they can move on or swipe to the next thing,

0:19:31or if this is not the right thing.

0:19:33But I highly recommend going and seeing that in person.

0:19:35Or if you know somebody in person who has a vision impairment

0:19:38and uses VoiceOver, it's tremendously effective.

0:19:41Because at its core, VoiceOver is,

0:19:44it's almost like painfully simple to implement on a developer side.

0:19:48Every UI control in iOS has accessibility baked into it,

0:19:53and most of what you're doing when you're making your app work well

0:19:57with VoiceOver is making sure that you set accessibility labels

0:20:00for everything so that when an element becomes the focused element,

0:20:04that's what VoiceOver reads.

0:20:06And so you need to have a description of what that is,

0:20:10and then making sure that the hierarchy within your app makes sense,

0:20:14so that as you swipe left and right,

0:20:16it's logically moving through the hierarchy of your app,

0:20:20rather than it's, in general, it does a pretty good job of doing that,

0:20:24because it's sort of working its way along visually,

0:20:27based on sort of X, Y coordinates,

0:20:29but sometimes you need to override that

0:20:32with an orientation that makes sense.

0:20:34So as an example, like in Podometer++,

0:20:37I have a bunch of bar graphs showing the history of your step counts.

0:20:42In the default implementation, they would go from left to right,

0:20:47which in my case would be oldest to newest,

0:20:50whereas for an accessibility perspective, I flip that around.

0:20:53And so the newest is the earliest one,

0:20:56and then it works its way back in time,

0:20:58even though visually that's flipped.

0:21:00Things like that are basically all you have to do

0:21:04to make good use of VoiceOver,

0:21:06good labels and good hierarchy,

0:21:08and you'll be like 99% there,

0:21:10and then get feedback from users as best you can,

0:21:12either in person, at the Accessibility Lab,

0:21:15beta testing, wherever you can.

0:21:17- And I can't stress enough how important it is to just try it.

0:21:20Just try your app.

0:21:22There's a few things you can do.

0:21:24You can set the triple tap home button shortcut

0:21:27to turn on and off VoiceOver.

0:21:29And that's something I've found

0:21:30after years of accidentally triggering that

0:21:33when I meant to double click the home button

0:21:35and hearing VoiceOver on in the middle of the world.

0:21:38(laughs)

0:21:39I turned that off because I learned

0:21:41that you could just turn it on and off via Siri.

0:21:43So you can just ask Siri, "Turn VoiceOver on.

0:21:45"Turn VoiceOver off."

0:21:46And it takes two seconds and no setup to do that,

0:21:49so it's great.

0:21:51And then just try it because usually when you mess up,

0:21:54it's usually like, oh, you have some kind of custom button

0:21:57that doesn't have the standard label text.

0:21:59It has some other way to display what it is,

0:22:01and you didn't put in a label.

0:22:02So you scroll past it with VoiceOver,

0:22:04and it just says, "Button, button."

0:22:06And it's like, oh, god, it's like head-smackingly obvious.

0:22:10It's embarrassing how easy it is to fix that.

0:22:12It takes two seconds to add an Accessibility label,

0:22:15and you fix this incredibly embarrassing Accessibility bug.

0:22:18So just actually trying it and testing it

0:22:21gets you so far, so much of the way there.

0:22:23I'd also say if you don't know

0:22:25or can't access any visually impaired users

0:22:28who use this kind of stuff,

0:22:30at least what everybody can do is look on YouTube

0:22:32and try to look at videos of screen reader users

0:22:35actually using their screen readers.

0:22:37And that should give you some sense of how they navigate,

0:22:39how quickly they navigate,

0:22:41what kind of phrasing and wording you should use,

0:22:44how brief or verbose should you be, things like that.

0:22:47It's not a great solution, but it's better than nothing.

0:22:50- The next kind of type of accessibility

0:22:52that's probably worth talking about

0:22:53is just around things like dynamic type,

0:22:56which I think is a simpler topic,

0:22:58where dynamic type is inside of iOS.

0:23:00You can set the system text size queue in the Settings app

0:23:06or then in the Accessibility app

0:23:08if you want really, really, really big text.

0:23:11And this is something that I've noticed

0:23:13just in normal life is used incredibly widely.

0:23:19Voiceover use is probably a relatively smaller part

0:23:22of your user community.

0:23:24Dynamic type is a very large proportion

0:23:26of your user community.

0:23:28And I think in general, dynamic type is pretty straightforward

0:23:30because it just makes everything bigger.

0:23:33And especially this has gotten easier

0:23:35as we have to support multiple phone sizes,

0:23:38that having more flexible, flowable layouts

0:23:40is just something that I think in general

0:23:42we kind of have to do because we have to make an app

0:23:45that works on a 5S screen

0:23:48all the way up to an 8+ screen.

0:23:51And so you have to be flexible anyway.

0:23:54And so dynamic type is just a way of saying,

0:23:56"Make my text bigger, make my text smaller,

0:23:59and as it gets bigger, making sure that it doesn't break,"

0:24:01is functionally what dynamic type is.

0:24:03And I think it's just a question

0:24:05of making your app flexible in layout

0:24:07so that when you crank up dynamic type,

0:24:10if everything just becomes--

0:24:11you get the first letter and the last letter

0:24:13and then a bunch of ellipses in the middle

0:24:15because everything's getting truncated.

0:24:17You didn't do dynamic type right.

0:24:19So it's something to try and to make sure

0:24:21that your app responds reasonably well to

0:24:24as well as opting into supporting it.

0:24:27Some controls will automatically do this.

0:24:29Like, certain UI label setups will just automatically use it,

0:24:33which you want to make sure you know

0:24:35that they're going to opt into.

0:24:36But it also just--in general, you can ask the system

0:24:39for what the dynamic type size is right now,

0:24:42and even if you're doing custom rendering,

0:24:44you could respond to it appropriately.

0:24:47And lastly, I think there's some elements around accessibility

0:24:52for things like colors and button shapes,

0:24:56things that users who may have difficulty

0:24:58with low-contrast displays.

0:25:01And so it's just in general--

0:25:02it's always the general rule that I try and keep to is

0:25:06color is a powerful way to communicate something to my user,

0:25:10but it shouldn't be the only way that I communicate with my user.

0:25:13So if you have--if I need to differentiate something

0:25:18by only with color, then I'm making an interface

0:25:23that's going to be confusing to users who have difficulty

0:25:26differentiating colors or similar impairments.

0:25:29And in general, that's just probably bad design.

0:25:31I mean, this came up a lot around the iOS 7 redesign,

0:25:35where color became the thing that we used

0:25:37to differentiate buttons from just text.

0:25:40And so I think in general, I tend to prefer actually making buttons

0:25:44with some other affordance to them,

0:25:46whether that be a rounded rectangle around them

0:25:48or some indication, maybe an underline,

0:25:51to make it seem that this is something different,

0:25:53that it isn't just the color that makes it different.

0:25:56Finally, I think I'd like to end with a plea to Apple.

0:26:01There is no way in the App Store for users of apps

0:26:06or buyers or potential users of apps

0:26:08to know whether an app has accessibility compatibility or not.

0:26:12There's no way to know if an app has been tested for voiceover.

0:26:15There's no way to know if it responds to dynamic type,

0:26:18things like that.

0:26:19And so if you are a user who uses these technologies,

0:26:21who needs these technologies, you're taking a risk.

0:26:24You have no way to know whether an app that you're interested in

0:26:27possibly buying will work for you at all or not.

0:26:30The App Review tests apps for other things like crashing,

0:26:33things like that.

0:26:34So people can be sure that you're downloading an app

0:26:36that will work if you don't need these technologies.

0:26:39If you do, you have no way to know.

0:26:41It's almost as if you don't have App Review for yourself.

0:26:43And I wish Apple would either test for the basic accessibility technologies

0:26:50like dynamic type and voiceover during App Review

0:26:52and actually reject apps if you didn't do it,

0:26:54which would also save us from shipping embarrassing shortcomings,

0:26:57either require that or allow developers to opt in,

0:27:01to optionally have that testing applied to us

0:27:04and display some kind of little icon in the App Store page

0:27:07for our apps that we are accessible.

0:27:10I wrote a blog post to this effect a couple years ago.

0:27:12It didn't get anywhere yet, but I still would like that

0:27:16to be considered by Apple because if you think about

0:27:20the value of App Review for mainstream purposes,

0:27:24this is a pretty big thing that it serves that same kind of goal,

0:27:27like making sure, giving people the assurance that apps will work for them

0:27:33in a basic way, I think that would go a long way in accessibility as well.

0:27:37Oh, sure. I also love the thought of it being an added incentive

0:27:43for developers to adopt accessibility in a robust way within their applications.

0:27:48Exactly.

0:27:49If there is an additional flag or gold star that you get in the App Store

0:27:55as a result of doing it, all the better.

0:27:58That just seems like that would be a wonderful win.

0:28:01Thanks for listening, everybody, and we'll talk to you next week.

0:28:03Bye.

0:28:05[BLANK_AUDIO]