00:00:00 ◼ ► Hello and welcome to Developing Perspectives. Developing Perspective is a podcast discussing
00:00:08 ◼ ► an independent iOS developer based in Herndon, Virginia. This is show number 188, and today
00:00:18 ◼ ► get started. So first thing I was just going to mention is an update to a site that I found
00:00:39 ◼ ► that. It's quite a lot of content to get through. But something that Matt Thompson has put together
00:00:46 ◼ ► that is a useful resource that I've run into many -- used many times and so I've mentioned
00:00:56 ◼ ► it's a way he took, he extracts the transcript tracks from the videos, I think, and then,
00:01:04 ◼ ► you know, provides them in a searchable interface. So it's just really useful, I find. If you're
00:01:08 ◼ ► curious what was said at WWDC about a specific technology, you can go in and search and say,
00:01:14 ◼ ► "Hey, show me all the WWDC videos that involved," whatever, "UI search controller," or something
00:01:28 ◼ ► to be able to kind of make sure that I'm touching on all the places in the videos that that
00:01:38 ◼ ► today is talking a little bit about accessibility. This is coming out of a update that I did
00:02:00 ◼ ► So accessibility, it's probably fair to start off talking about what I mean by that. And
00:02:06 ◼ ► specifically I'm going to be focused on the accessibility elements of things like voice
00:02:11 ◼ ► VoiceOver in iOS. Focus mostly on the visual impairments. Obviously there's a variety of
00:02:22 ◼ ► impairments would require software that would be built in a specific way. But the one that
00:02:26 ◼ ► I'm going to focus on mostly is on VoiceOver and otherwise in general focused on building
00:02:40 ◼ ► in the sense that I think it's an important part of software development, not necessarily
00:02:45 ◼ ► in so much as it is strictly a way to further your business or the financial of your application.
00:03:01 ◼ ► and is very good about rewarding good apps, in my experience. But moreover, there's just
00:03:08 ◼ ► a certain amount of it's just the right thing to do. And sometimes you do things just because
00:03:12 ◼ ► they're the right thing to do, not necessarily because you'll see a strict return on it.
00:03:23 ◼ ► some return to it. So I would encourage everybody to do it. In my experience, it's relatively
00:03:28 ◼ ► easy. The amount of work it takes is certainly not overwhelming. And the impact that that
00:03:33 ◼ ► can have in someone's life is quite dramatic. There's, on a personal level, there's nothing
00:03:38 ◼ ► quite, you know, there are a few things in my experience when I get a help desk request
00:03:43 ◼ ► from somebody who talks about how my application has allowed them to do something that they
00:03:53 ◼ ► better. That's quite dramatic. That is something that will sit with you in a way that a lot
00:03:59 ◼ ► of the other work that I do doesn't. You know, when you're really having an impact on people's
00:04:03 ◼ ► lives, that feels awesome. And maybe that's just as selfish as wanting it to pay off financially,
00:04:11 ◼ ► but either way, it's something that I've found to be worthwhile doing. So I'm going to kind
00:04:23 ◼ ► would call thoughtful accessibility. And this is coming out of my own experiences recently.
00:04:29 ◼ ► If you're curious about the general overviews of accessibility, there are tons of W3C videos
00:04:40 ◼ ► Just look for all W3C videos about accessibility for the actual technical details of it.
00:04:45 ◼ ► But at a high level, accessibility is about providing an alternative way to interact with
00:06:04 ◼ ► is excellent for development, excellent for making sure that it works without having to
00:06:11 ◼ ► And so you can -- when you're in voiceover mode, the interaction model is very different.
00:06:21 ◼ ► it becomes selected, its name is read aloud, and if you double tap, it'll perform an action
00:06:27 ◼ ► on that. If you swipe left or right, it'll select the next control, and so on. And like
00:06:32 ◼ ► I said, it's a bit hard to describe, but hopefully if you sit down with it and try it, it'll
00:06:47 ◼ ► things just aren't going to work. Like, this is something that I've struggled with a little
00:06:55 ◼ ► it. And so gestures are often very difficult to translate completely into something like
00:07:17 ◼ ► to do is make sure that the information you're trying to present to that user is accessible
00:07:22 ◼ ► in a reasonable and easy to navigate way. And there are really, I think there are probably
00:07:28 ◼ ► three ways, parts to this. And these are the things that I've more recently been able to
00:07:33 ◼ ► learn, especially honestly thanks to people in the visually impaired community who have
00:07:38 ◼ ► reached out to me saying, "I like your app. It has basic voiceover support, but it would
00:07:44 ◼ ► be much better if it did so and so. And they'll expand this and talk to me about this. And
00:07:49 ◼ ► if you're a developer for any amount of time, you're almost certainly going to reach out
00:07:52 ◼ ► to these people. And what I find, if you are, consider them tremendous resources, because
00:08:03 ◼ ► know, as much as I try and think about what it would be like if I couldn't see my screen
00:08:06 ◼ ► or I'll use my application with my eyes closed, I don't know what it's like to actually be
00:08:11 ◼ ► blind or to be visually impaired and to know what that experience is like. So if you have
00:08:21 ◼ ► you, make sure you take advantage of it. I've learned so much every time I've done this.
00:08:26 ◼ ► And so recently, the two things that I learned from one of my users for Podometer++ that
00:08:31 ◼ ► who reached out to me is he was talking to me a lot about the way in which I was ordering
00:09:08 ◼ ► had just kind of done the basic version of VoiceOver, where all the controls said their
00:09:12 ◼ ► text out loud. So there's, you know, there's a thing that says how many miles you've walked,
00:09:17 ◼ ► there's a thing that says how many steps you've taken, and if you tapped on them, it would
00:09:21 ◼ ► just to say the name, which sort of works, but it didn't really address what the actual
00:09:29 ◼ ► user would want to do. And especially there were some issues I had where if you just take,
00:09:35 ◼ ► do that basic level of it. The way, the order in which those controls are going to be navigated
00:09:45 ◼ ► to it, but it's not something that is strictly predictable out of the box. And I was talking
00:09:51 ◼ ► to this user and he said, "What a lot of voiceover users do is they navigate an application
00:09:59 ◼ ► to control to control. And so it's important the order in which those controls are displayed
00:10:11 ◼ ► have to sit there swiping five or six times, and every time they do that they have to listen
00:10:22 ◼ ► on VoiceOver, and I think it would start off with saying, giving you access to the settings
00:10:27 ◼ ► button and to the share button. And then your next one, if you swiped, it would swipe over
00:10:40 ◼ ► is actually probably not really what the user is interested in, right? The user is probably
00:10:44 ◼ ► not most interested in knowing how many steps they took a week ago, but it just so happened
00:10:58 ◼ ► accessibility order for any control, is reorder that. And so when you swipe, you know, when
00:11:12 ◼ ► is what did I do today? And so it's just something you have, a thought exercise you need to go
00:11:51 ◼ ► how they're going to be navigating. Secondly, being thoughtful about the order of words
00:11:57 ◼ ► and what you're actually going to be telling them. If they're interacting with your application
00:12:06 ◼ ► because if it's long-winded, overly verbose type of thing, it's going to be very frustrating
00:12:12 ◼ ► for them to hear. What they really want is to get the data out of your application. And
00:12:17 ◼ ► And so you want to be thoughtful and terse about how you do that. And the order is important.
00:12:22 ◼ ► So for example, I'm going to be telling somebody on a particular date, "They took so many
00:12:29 ◼ ► steps and walked so many miles." Those three bits of information. Now there's a variety
00:12:54 ◼ ► say it. Conversely, you could say 4,277 miles today. 4.6 miles. Right? That's the same information
00:13:05 ◼ ► but presented in a very concise way. And starting with the most important thing, in this case
00:13:11 ◼ ► I would say step counts, and then moving on to the less important information as you go.
00:13:25 ◼ ► isn't really helpful. It's like labels showing current step count value to 4627 isn't actually
00:13:34 ◼ ► useful. The user doesn't care that it's a label. They just want to get that information.
00:13:39 ◼ ► And so being thoughtful about what your labels are is important, and being appropriately
00:13:47 ◼ ► people who are interacting with your application are very good at parsing short bits of information
00:14:01 ◼ ► little brief pause as it reads it, which makes it even clearer to hear. So often do something
00:14:06 ◼ ► like, you know, 4,622 steps to 4.2 miles, right? If you want to smush those two numbers
00:14:18 ◼ ► And remember, you're trying to create an alternative experience for that user. You're trying to
00:14:25 ◼ ► do something that is a parallel experience. You're not narrating your interface. That's
00:14:31 ◼ ► the biggest thing I'd like for you to take away from this is hopefully when you're building
00:14:34 ◼ ► accessibility. You're not narrating your experience. You're trying to create an alternative experience.
00:14:40 ◼ ► And I think if you do, you'll create something that is valuable to a class of customers who
00:14:46 ◼ ► are some of the most fanatical, devoted people I've interacted with. And so I'd encourage