How I, as someone who is visually impaired, use my iPhone (2020)
twitter.com
twitter.com
The amount of work Apple, Google and others have put into making all this work is staggering, and life changing for people who are blind. Please don’t throw all that work away in your apps just because you think some UI toolkit is shiny.
.NET MAUI also seems very promising, and I like that they're actively blogging about it[1], but it hasn't been officially released yet.
Anyway, it seemed to me that basically all the others either aren't accessible at all, or are only accessible on one or two of the target platforms, or have long-standing accessibility bugs that seem like they would render the UI unusable.
[1]: https://devblogs.microsoft.com/xamarin/the-journey-to-access...
I decided the latter opinion was the one I cared more about.
I'm admittedly trying to play it very safe. I have zero proficiency with screen readers, so I'm not really able to independently verify any of this. All I know is that the GUI toolkit is one of the most expensive things to have to change later, so I want to be as close as I can possibly be to 100% sure that I won't end up in a situation where my projects have accessibility issues that I can't fix without changing the GUI toolkit.
From what I've read, JavaFX apparently has its own accessibility problems; for instance, I vaguely remember reading that if you used Alt+Tab to switch to or from a JavaFX window, JavaFX would automatically activate the menu bar. I've never used a real JavaFX-based app though.
As much as some of us might dislike it, I think the safest choice is Electron, or just making it a web app if that's an option.
Neither have I; from what I can tell, the only place that JavaFX seems to have a foothold still is "intro to software engineering" classes in colleges.
That's not nothing. Blind students need to be able to participate in those classes.
Electron does have its downsides. On the upside, one nice thing about making screen reader support non-negotiable is that it took so many options off the table. So I was at no risk of analysis paralysis, and I don't have to worry about second-guessing my decision.
Facebook and Twitter both spend dozens if not hundreds of man-years trying to make HTML lists (tweets, posts) scroll as fast as native. Google is spending IDK how much hours painstakingly redrawing all the native components for both iOS and Android into Flutter, having to catch up every time they make a change.
Just use the platform like it was intended to be used. You're not special. You're not smarter. You're forgetting most of what the authors have already solved.
And, if you're at the scale of the Facebooks and co, you have the engineers to build it. You have the engineers to rebuild your whole app from scratch a dozen times over. And if you don't, it'll be trivial to find and hire them at the rates you're paying.
Where's the magical bit that means they can't use a native UI toolkit?
This stuff was solved in the early 90s and everyone's bored now.
> Be kind. Don't be snarky. Have curious conversation; don't cross-examine. Please don't fulminate. Please don't sneer, including at the rest of the community.
> Comments should get more thoughtful and substantive, not less, as a topic gets more divisive.
> When disagreeing, please reply to the argument instead of calling names. "That is idiotic; 1 + 1 is 2, not 3" can be shortened to "1 + 1 is 2, not 3."
> Please respond to the strongest plausible interpretation of what someone says, not a weaker one that's easier to criticize. Assume good faith.
This kind of team structure also causes other strange-looking technology choices, such as CSS-in-JS: they have to do stuff like that because they literally cannot prevent different members of the team from writing CSS class names that collide.
Also, the app has sooooooo much more functionality than people realize. Plus, there is a lot of functionality that ships with the app but is behind a feature gate, meaning that it is turned off for the majority of users. There's lots of internal tools for adjusting feature gates on a per-user, per-region, per-whatever basis, in the name of user research as well as just safely deploying new features at scale.
But I don't believe you're correct, honestly feature flag rollout, even among insanely specific cohorts, isn't actually a hard problem and it's essentially been solved at this point - it isn't easy, not by any measure - but the components and how they interact are rather easy to comprehend. Facebook's main complexity (IMO) is from trying to build essentially a full OS on top of the browser from which to serve a variety of integration apps into their platform and, while I'm not a board member of Facebook or at all familiar with their earnings, that particular goal seems to have been, essentially, a dud.
Being able to play farmville with your friends may have been a decent income source once upon a time but it's very far from what their core competencies now are. Facebook now primarily uses API hooks into other native standalone apps for that particular class of data collection, but their pure web based collection seems to be where they really get value. The fact that they can see precisely where users are going on the web is, IMO, their main value proposition at this point - the social network stuff needs to exist to support that and ease the process of identifying users - but anything related to games seems utterly unnecessary and that core platform they have could be vastly simplified while still delivering the same value to the company.
That all said, they've invested a whole lot into their existing platform so I can see why business would be very very hesitant to try anything that might rock the boat, if they can sustain their platform being fast and responsive they can minimize their corporate risk.
I'm sure a lot of developers on here try and minimize their use of integration branches in the day-to-day (they are necessary for some things but keep them short and sweet) and try and get in-progress features into master ASAP - that's largely due to the fact that maintaining multiple copies of the same basic logic can quickly become extremely difficult to manage.
Localization is a really big exception to this but that's why, whenever possible, you'll see game companies limit localization to strings only - including logical statements in the realm of information to be localized can make security issues extremely fun to track down along with causing frequent usability breaks in less used localizations.
I don't know - whatever the reasons for it and no matter the resources FB has - this stuff increases in cost exponentially and if they do have a really fragmented codebase it's likely that the majority of their labour goes into process definition and QA to make sure that they don't break the Swahili language version of the landing page for China when they change their contact us link.
It works poorly on mobile, where users are not keen to reinstall an app every few days, and some do not update for months and years, because of lack of space, scarce bandwidth, old hardware, or just neglect.
Additionally, at least where Facebook is concerned and IIRC, they actually do heavily utilize out-of-app data in their mobile app. There is a good deal of code, but a lot of the UI ends up being tweaked by data that's being served to the client.
Are you saying Facebook would take more time to compile natively than an open world game including baking maps?
If you assume that they are not less smart than the average engineer, then a reasonable assumptions is that they weighed the trade-offs and went with what worked best for them, and you're missing some context (or give different weighting to importance of native widgets - which comes at a cost).
There are pros and cons to using native widgets or cross-platform libraries/UIs that go back to when UIs and platforms became a thing. I know of the SWT vs. Swing debate in the Java world some decades ago - there are likely many precedents before then. All I know is there is no right answer, just trade-offs you have to weigh.
If you look at a screen produced by, say, Flutter and compare it to Aplpe's native toolkit you might conclude that you can produce the "same" thing with Flutter as you'd get with Apple's native toolkit. To boot you can do it in less time.
The thing to consider is: Did you really produce the same thing? Maybe you produced two things that look the same, but aren't even close to equivalent in many other important ways.
In the initial meetings where you talk about making new component libraries, someone who worked on the old one says, "We reinvented the wheel last time, then standards changed, and we couldn't keep up. We need to take current standards into account before doing anything new, including accessibility."
And the new boss says, "That's a good call-out, but accessibility isn't a problem if nobody can even load the component list and scroll to the thing they want, and with the current ux and stats, we're getting close to using most of the available memory on devices just to scroll our content. We don't want to change the content we can scroll, we just want to make scrolling more efficient. Everyone agrees the current design is at its limits. We need to start over at the beginning. Accessibility is step 3. We're at step 0. Let's focus and move forward." And while they are right, they need to demo an map to an abled-person boss, so accessibility gets pushed farther back as technical things take priority.
Often, this leads to teams over time producing lots of things without accessibility, and you build new things from old things, and it just snowballs.
Suddenly a user appears, and they aren't served, and now a whole new bunch of juniors are scrambling to add accessibility to old things without breaking current usage.
When Sun or Google created their own, non-native toolkits designed to run on Mac OS/iOS, they were fully aware of what doesn't work. However, they balanced that con against the pros of the ability to write cross-platform code once (ground floor engineers), and on strategic level, they wanted to commoditize Mac OS/iOS into a dumb pipe (one of many other dump pipes to deliver code/content to), rather than a platform with inherent value - they consciously considered this to be more important than users' griping at the weird scroll-speed curves. One can create a shim for native widgets like QT does, but you'll be at the platform owners mercy when it comes to release cadence.
It's good business practice to commoditize your complement - seen in that light, the decisions are far from "not smart". Not great for some users, for sure, but they come from deliberate decision-making over control.
The advantage is mostly that it is easier to manage for the organization building the app. There is no real benefit for the users, in this case most likely slower, larger, and resource intensive apps, that avoid platform integration.
I’m personally falling into the belief that we’ve fooled ourselves regarding UI. That one single UI library could actually be the ideal choice for every possible app, and that we just need to keep trying until the absolute perfect set of tradeoffs appears. I think this is enticing because UI is very hard and full of problems you would have to solve over and over if you had multiple UI frameworks, whereas these things could be amortized if there were less.
I don’t think so. I do think the UI ecosystem, as it slows down, could become more modular and share more core components. I expect to see “base” rendering libraries, like Skia or Pathfinder, powering next generation UIs, and hopefully someone will also make a cross-platform library to provide accessibility and IME primitives for Windows TSF/macOS/etc. I think smaller bits like that can clearly be minmax’d to ideal conditions for given use cases. But if you were hoping for a future of “just use the native toolkit!” I think it’s not likely, at least not until software slows down a lot more. Even then, lowest common denominator libraries like wxWidgets often end up being disliked by users and developers alike, due to the compromises needed for them to accomplish their goals. I’ll admit the story has gotten better with React Native and its success on mobile, but even that is not a perfect story: performance on Android was apparently not good enough for Discord, which may in fact be a pretty good signal for why something like Flutter is a good idea anyways: it can mature over time on existing platforms and then possibly even become the first class toolkit for something.
I do agree that most developers should prefer native over vanity, but it’s a false dichotomy, as there are plenty of valid reasons to not do native. No more is this clear than Windows, where virtually nobody does “native” anymore. (It can still be OK, but it’s not great. Having true HWNDs for every component is a great way to have things flicker whenever you delete/create new widgets.)
> I do think the UI ecosystem, as it slows down, could become more modular and share more core components
I think things like Flutter will take another few years to become performant compared to even Electron/Tauri/Webview+JS
Yes, it is sad that we redesign UI (even web UIs) every so often, but it is an unforgiving world. I am not sure if it is the fickle users or the product manager(s) to blame, but we seek fancier and fancier UI with every update. There are exceptions like the craigslist website, but those are rare.
I agree with all other points.
It's not fanciness, it's maturation.
Compare YouTube from 2006: https://web.archive.org/web/20060202021427/http://youtube.co...
to now: https://web.archive.org/web/20210430000812if_/https://www.yo...
The new design puts content first. There are no superfluous borders, backgrounds, or gradients. Every visual element exists for a good reason. This is good, functional, accessible, design.
And YouTube of 2006 is a conservative example, we (well, most of us) can remember the UX/UI atrocities that existed back then.
I'm planning to do this for accessibility. I don't think I have the expertise to cover IME though. Do you think they both need to be done in one library, or can they be decoupled?
I'm not visually impaired outside of garden-variety nearsightedness, but I sort of have a strong appreciation for "boring" websites that have very utilitarian "Header, subheader, body of text, etc...". They work well with text-only browsers, but also are trivial to make work with various text-to-speech things which I find occasionally useful; sometimes it's just easier for me to understand something if it's being read along to me while reading it, particularly if the font is small.
All of which means less CPU, fewer network requests and less power used which means a longer-lasting planet.
I think I mostly get annoyed with stuff like news websites of personal blogs having all this extra crap added to it. At the end of the day, I view these things as somewhat utilitarian; I don't go onto a blog to be wowed by a million JavaScript effects, I go there to read text, and maybe some pictures to help elaborate on stuff.
Doing exactly this right now. I use a bookmarklet to make anything I click start speaking, on any website. It even shows the progress by fading away read words. I've been doing this for at least 7 years, always using Alex from MacOS, at 1.3x. I used to have it work on PDF's as well, but that went away when Chrome's PDF viewer was changed from PDF.js
They have done all that work to avoid problems in the lucrative market that is the US.
Microsoft has done similar work for the same reasons. Business reasons. Bottom line reasons.
People often forget there are humans on the other end developing things, not just faceless corporations.
People often forget that companies are not humans.
The point is it's not all mutually exclusive.
The companies are just as committed on principle as a real estate developer who puts in curb ramps to stay out of court.
That doesn’t mean the designer who drew the plans and the building inspector who approved them don’t care about the plight of the disabled. But the ramps are there because of the law not goodwill.
Its the same here - Apple had some legal obligations, but they didn't need to make their phones so insanely accessible to blind people. The situation is kind of absurd - the software on ios for blind people is so good that blind people prefer to use iphones (which are pure touch screen devices) over phones with keyboards. And they have since some of the very first iphones, back when there was real competition.
Desktop computers from a few years ago didn't do any of this. Screen reading software on windows used to be 3rd party software, and it sort of sucked. Apple could have made some APIs for that and forced someone else to make expensive, janky software for blind people. The law also has no problem forcing blind people to buy expensive electronic braille keyboards and things like that. (Which used to cost upwards of $3000.) Again, they could have done the same with the iphone - forcing blind people to type with $3000 external bluetooth braille keyboards. But they didn't do that. They built everything blind people need into the operating system. They made it work well.
Be cynical if you need to. I have no shortage of criticism for the way Apple handles the app store. But credit where its due - Apple has gone above and beyond to make accessibility for blind people great on the iphone. And I think accessibility on android isn't too far behind. The software on modern phones is a massive enabler for blind people the world over. It didn't happen by accident, and it wasn't written to pass the minimum bar set by the legal department. Real people poured love into modern smartphone accessibility, and it shows. They deserve credit and respect for their work.
https://www.reuters.com/article/us-usa-court-dominos-pizza/u...
[1] https://api.flutter.dev/flutter/widgets/Semantics-class.html
Personal favorite “Easter egg” in their accessibility utilities is the baroque voiceover descriptions for the built-in wallpapers. A current colleague of mine shared it last week as part of Global Accessibility Awareness Day - https://twitter.com/mattt/status/1395439320652148736?s=21
Imo this is really the only way to get accessibility right in practice. It makes sense that Apple has a reputation for good accessibility integration.
The effect may be less for accessibility features, but it would still be there. I’d highly suggest anyone building out accessibility features to at least consult with disability advocates and other end users.
I remember one time my mom told me about a meeting she attended hosted by an organization in our state called ‘The Council for the Blind’. I think it was about how and where to get your COVID-19 vaccines.
The presenter was a sighted man on the council. Apparently, although he could see his own notes, he had some trouble getting his PowerPoint presentation to display on the Zoom call. He spent 10 or 15 minutes fiddling with it before an attendee finally butted in and said ‘You know, most of us won't be able to see your slides at all even if you get them working. Why don't you just go ahead and post a link to them after the presentation?’. There are lapses of judgment that are possible even when you have every reason to, abstractly and externally, ‘consider’ the position of someone with a disability you don't have, but that just never occur when you have that disability.
I know it's a silly story, but that kind of stuff happens ALL THE TIME. It's also really common for websites or software to have accessibility features that are so ill-considered, they're practically unusable.
You're right that positions for, e.g., blind software engineers, could be hard to fill for small companies. But you don't have to involve disabled users only at that level to make sure that they're part of your development process. You could have disabled users as testers with much less difficulty, by reaching out to relevant organizations for (perhaps paid) volunteers.
And that is usually the case in reality. Most small, custom built websites are unusable for the impaired. Doing a11y well requires effort.
This is a useless accessibility feature, if you ask me. It's over engineering.
I guess it comes down to your personal interpretation of “usefulness”, but frankly I think you take for granted the amount of detail that you’re able to ascertain from being (presumably) fully sighted.
There’s no reason that someone with any visual disability can’t appreciate a scene with as much detail and intricacy as you can, if it’s adequately conveyed to them.
Words and grammar can be learned and expounded upon, but the description of a scene as “a tree on top of a hill” cannot, so why not err on the side of being overly descriptive for those that can understand, and leave the door open for those that can learn more?
I, for one, absolutely love this about Apple! Accessibility is a beautiful core value to strive for (Privacy and others too). But I particularly appreciate Accessibility.
Good designs/affordances such as gestural trackpads or mouse cursor support on iPads are all accessibility features, except they cover a major swath of humanity rather than those traditionally considered "less-abled".
Disclaimer: I work at Apple so I'm biased. More likely, my heroes at Apple such as Sue Booker are accessibility experts -- so I'm always fan-boying over these features!
They really are world leaders at this stuff, I can use my right index finger and my mouth and with just that I can use Apple products to run my own company and talk to people on HN (you know, the important stuff!). ---
So I know that there are are a lot of questions about use my computer, and that's largely because The people on HN are genuinely and wonderfully curious.
The question that seems to fascinate able-bodied engineers goes something like this: "imagine coming home and finding somebody had removed every switch, button and lever from every device in your environment; What would you do?" That's the question I had to answer before I could get to where I don't get a job and have to start my own company as a result!
So my question is how best do people think I should share this information? Blog post, Twitter thread (eww) or messenger pigeon?
i.e. where "able-bodied" visitors would have to figure out how to interact with the site without all their usual means.
If you designed it right and maybe even gamified it (in a good way that doesn't trivialize, that challenges you to learn), it might entice young and old to explore what it means to have to interact with the world without the benefit of X.
A podcast I listen to (maybe CodingBlocks.Net or ATP?) talked about a dev who uses a camera to track a shiny bit of tape over the bridge of their glasses as a mouse and speech (with their own phonetic alphabet variation) for typing and is able to create software at the same pace as an able bodied person - I’d love to hear all of those stories.
They were the first mainstream company to release a screen reader, the first company ever to release a high-quality, free screen reader, the first to build one into the operating system, the first to make installing the OS accessible, the first to make touchscreens accessible for the blind, and that's not even all of it. The things we're seeing from Apple are just extraordinary, and beyond what anyone else provides. I've been a really happy iPhone user for years, and I recently got myself a Mac too. This technology literally changes our lives.
I don’t think that’s correct. Microsoft Narrator is from 2000 (https://en.wikipedia.org/wiki/Microsoft_Narrator), voice-over from 2005 (https://en.wikipedia.org/wiki/Mac_OS_X_Tiger)
The Mac had a screen reader in 1989, but that was third party software (https://en.wikipedia.org/wiki/OutSpoken)
IIRC, Narrator was designed for use during OS installation. If so, “the first to make installing the OS accessible” isn’t correct, either.
So it's refreshing to see something like this where a modern smartphone has such a positive (even life-changing) impact on someone's life.
This is also one of the things I find depressing about a significant chunk of Americans. Many will dismiss things like public transit as "people want to drive". Of course we then design cities and subsidize driving so it becomes a vicious circle and any public transit become unviable (to retrofit).
But what about the people who can't drive? Or even can't afford to drive?
Basically the American response is "F em".
Curb cuts, in the USA, are a relatively recent addition and they benefit far more people than just wheelchair riders. Accessibility features can help everyone.
One issue with these in NYC at least is the drainage just isn't designed for them. So anytime you get significant rain or snow melt you get pools of water that don't drain because the actual drains are elsewhere.
If only the US could adopt Dutch junction design [1].
And don't get me started on the cyclist and pedestrian safety nightmare that is allowing people to turn right at red lights.
I wish we could somehow force everyone to live as somebody else for a week.
I often wished this simple request whenever I was lumbered with a non-technical manager who would promise things to their equally-out-of-touch manager or a customer, eg. "I've told them it will be done in 2 weeks. How long will it take?"
It'd reduce the pain of everyone to live with more empathy.
It's also much more dangerous. Making the sidewalks useable for wheelchair users is much better for everyone than forcing them to go on the road.
Government can do a lot of things, but I don't think it can force people to be conscientious.
It also has the benefit of making them more useable for other people.
I'm serious on the last one: I lived one area that didn't allow you to order a cab beforehand, and waiting times could be 15 minutes to 2 hours. Good luck getting to and from work, even more luck if you need to pick up children from child care before they close.
Buses can be a real mixed bad: One city I lived in didn't have busses available for folks working second shift (3-11) because they stopped running, nor did busses run on Sunday. One bar had a large van/paddywagon style vehicle to take drunk patrons home.
Choice would be nice.
I suffer from epilepsy. I live in the Bay area. Unless I get an Uber/Lyft, it's ridiculously hard to get around using public transit.
The iOS app censorship issue is only a fringe issue because we're in peacetime. Censorship that can be deployed society-wide (such as the CCP requiring Apple to censor VPN apps, or the banning of the protest coordination apps in HK) in a click is an existential threat to a free society.
Apple's already maintained the e2e encryption backdoor in iMessage for the FBI[1] just upon request (not even legal compulsion); imagine if on "national security" grounds (or some other emergency circumstance as dictated by the US) they disabled Signal and every other e2e messenger, routing all iPhone-mediated communications into surveillance channels.
The potential for abuse is too large.
[1]: https://www.reuters.com/article/us-apple-fbi-icloud-exclusiv...
I remember being shocked the first time I went to Europe that if you were in a wheel chair you couldn't access 90% of building. Even new ones. Also good luck navigating their subways and train stations.
All I can say is `wat?`
But probably depends on which part of Europe, too. Most of the Northern Europe I've seen, you can access pretty much everything and every train and subway station is equipped with a wheelchair-accessible elevator.
Some parts of Europe may have old infrastructure that can't be easily retrofitted. London's subway has stations that are not wheelchair accessible, and accessibility is always marked on the map: https://content.tfl.gov.uk/standard-tube-map.pdf
I work with restaurants a lot as a part of my job, and there's been a big push to make sure all the websites are ADA compliant; it's something all front end devs and digital marketers should keep in mind.
Depending on why you share the photo, you just have to put that so others can understand it too.
If you want to really get into. A general note is the context around the image is just as important as the alt text.
But if it isn't, express the intent of the image along with its content. Let's say you're back in the office, and describing a photo to someone sitting at a desk across from you. How would you describe it? It the point of the image that it's art? Is it the structure and layout of the scene? Is the point just to identify what a chrysanthemum looks like?
I'm often reminded by a colleague that if you get too wordsy with alt text, or it doesn't seem important or valid, a screen reader user can easily skip past the image and move on.
At the end of it all, the two most important bits seem to be: making any effort is better than not trying at all, do your best and you'll get better at it over time; and remember that even though a screen reader (or some other mechanical assistive technology) will parse the text you write, you're doing this for the person on the other side — they love to laugh, smile, have fun, learn, and understand things just like you do. :)
Some images of flowers behave like headings; some are "the content"; some are decoration. Identify the function and work from there.
By default images are "replaced inline elements" i.e. they're of the same kind as inline text. This is why `alt=""` is perfectly valid and correct for a lot of images! If you couldn't see the image, what would you want in that place, in the context of the text around it?
I have a perceptual visual disability (severe convergence insufficiency) that does not affect actual visual acuity. However, I do rely on screen readers for reading and I use (and have access to) several libraries for people with print-related disabilities.
The above guidelines are an initiative of Bookshare.org, which is the world’s largest digital library (which only people with print related disabilities can legally access).
I think the best recommendation I can give is to try interacting with the resource as if the image wasn't there. Maybe remove it for a while. Put the information that you're missing in the alt description. If all the information from the image is understandable without seeing it, think decorative images in newspaper articles, set alt to "".
In particular, if the image is a screenshot of a terminal, code or other piece of text, you should put the whole text in the description. In that case, strongly consider omitting the image entirely. When charts are involved, often providing the data in a table next to the chart is the right way to go.
This is really helpful, thanks! Maybe I’ve been too caught up in wondering whether my alt text would be burdensome to listen to on a screen reader that I’ve been missing the forest for the trees!
I publish a digital magazine every month in PDF format (it's free to download). I thought PDF was ok for screen readers. We have been doing this for years now (more than 70 issues, 6 years), so it would be a bit too late to change into HTML now :(
If text is "selectable", then an OS/system-wide screen-reader should function.
Both calls that I did answer were great, though!
I wish they'd do "be my ears" for most of the overly compressed albums that get released these days!!
But watching someone use something I made, and struggle to complete the task because of a fairly straightforward disability they overcome every day in many ways, but they couldn’t get that thing I made to work? That’s an incredibly humbling experience. Never felt anything like that before. I’d highly recommend doing some testing with a real user if you ever have the opportunity.
Random thought: She could turn down the screen's brightness all the way to save battery and improve privacy... ;-)
Looking at their computer, it appeared to be off. I said, delicately, that were they sure the computer was turned on. They laughed and turned their laptop's screen on, saying (as you say), they left it off to save battery life!
The problem turned out to be they were using textedit, which while a nice light (and highly accessible) editor, by default turns "s into “”. Unfortunately, Apple's text-to-speech "helpfully" just described all these as speech quotes. This made it impossible to understand, from the compiler error, why the code wasn't working. A quick head into settings and the student was off (they soon changed to textmate, also very accessible).
Well only the ones that don’t work for me
But i hate how hard it is to find an assumptionless and offline text editor these days
edit: Evidently there is VO-specific tooling: https://support.apple.com/en-us/HT201443
Now I need to figure out how to press `VO-Shift-Fn-_`
She probably turned it up so viewers could follow what was happening.
Otherwise there’s a builtin companion feature to voiceover which disables the display (screen curtain).
I have a friend who is blind but keeps their phone on max brightness for this reason. Very little comes through but they still find it helpful.
This opens up really interesting opportunities, think cheating at school for example.
Previously, other tricks have been used to achieve the same effect, including not having a display plugged in at al, Configuring Windows to use a second display while none was actually plugged in, or using a fake HDMI dongle.
Having seen a lot of these videos before (we've been working on making apps truly accessible), I never actually came across someone who didn't use the left/right swipe as a first plan of action, but hey ho, you always learn.
(I wonder if it depends on mental models, and whether you prefer building a 2D map of the screen to moving up and down in a 1-dimensional vector.)
https://groups.google.com/a/chromium.org/g/blink-dev/c/gv69r...
To start out, you use your normal QWERTY/QWERTZ physical keyboard instead of a virtual braille keyboard (screen braille keyboard) or a true Bluetooth braille keyboard [1][2] (also known as a Perkins keyboard or Perkins brailler) to learn this.
Seriously, if you do the lessons on UEB online with a physical keyboard you will learn this 100% solidly and will have absolutely zero learning curve with the iPhone/iOS braille keyboard or Android braille keyboard. The iOS/Android braille keyboards are aware of your fingers, their positions, and your hand orientation, so it translates pretty much perfectly when you transition your learning onto iOS/Android braille keyboards.
This is because your individual fingers are assigned a “braille dot” (excluding thumbs). UEB literary braille uses six dots per braille cell. However, some braille codes have eight dots per cell. As I said, all you have to do is learn UEB literary braille. You can learn it in a day by doing the practice lessons at the link I provided above.
Braille dot finger assignment (for braille chords):
LEFT HAND
Dot 1: (left index finger, “F” key on physical keyboard)
Dot 2: (left middle finger, “D” key on physical keyboard)
Dot 3: (left ring finger, “S” key on physical keyboard)
[If the braille code uses 8-dot cells]
Dot 7: (left pinky finger, “A” key on physical keyboard)
RIGHT HAND
Dot 4: (right index finger, “J” key on physical keyboard)
Dot 5: (right middle finger, “K” key on physical keyboard)
Dot 6: (right ring finger, “L” key on physical keyboard)
[If the braille code uses 8-dot cells]
Dot 8: (right pinky finger, “;” key on physical keyboard)
_________________
So a 6-dot braille cell using all 6 fingers would spatially “look” like this, linearly:
(bottom to top of cell) LEFT HAND SIDE|RIGHT HAND SIDE (top to bottom of cell)
dot 3-dot 2-dot 1|dot 4-dot 5-dot 6
The easiest way to remember this is:
3-2-1|4-5-6
Where dots 1 and 4 are the top two dots, and dots 3 and 6 are the bottom two dots if this is represented spatially as a Unicode braille cell.
If this was 8 cell braille, it would be
7-3-2-1|4-5-6-8
Where dots 1 and 4 are the top two dots and dots 7 and 8 are the bottom two dots.
Anyways once you practice the lessons on the UEB braille website there is no learning curve whatsoever for the iOS/Android braille keyboards. For typing a space you use your thumb.
You can also get a physical Bluetooth braille keyboard, if you were really into it. Many blind people, who do not regularly use braille, not only prefer to type on the virtual braille keyboard, but also like to use a physical braille keyboard with their mobile device for typing ABC letters.
[1] Orbit Braille Writer (physical Bluetooth braille keyboard) http://www.orbitresearch.com/product/orbit-writer/
[2] BraillePen Slim (manufacturer link with specifications: https://int.harpo.com.pl/products/braillepen-slim/)
Many websites don't follow these best practices. However, you might be surprised by how simple and low-effort it is to incorporate these tips into any website.
https://www.youtube.com/playlist?list=PLTqm2yVMMUKWTr9XWdW5h...
I remember walking out of an Accessibility meetup at SalesForce waiting for a ride and seeing an attendee struggling with hailing an Uber. She was an experienced user but still struggling with her new iPhone. It had a larger screen, so all her muscle memory was foiled; the buttons had shifted.
So, my friend and I are looking into rethinking the interface starting with 1st principles, like Fitt's Law. My guess is maybe a 9X improvement for visually impaired and 3X for folks with regular vision. Reserved the name touch.ai for that purpose.
Seems like your approach would require 3rd party developers to build a completely new UI, so this doesn’t seem like a valid criticism of the current paradigm.
It’s also the case that existing designs take into account Fitt’s law. Apple and Google are well aware of these.
That said, I do share the intuition that an information architecture built around cognitive efficiency could be a lot better than we currently have.
I’m skeptical you’ll find particularly easy to achieve - a lot of the complexity of current UI is incidental, but equally a lot is not.
Nope; no changes to existing UIs. Instead a driver, which has its own problems of deployment, as that requires convincing the hardware OEMs.
> It’s also the case that existing designs take into account Fitt’s law. Apple and Google are well aware of these.
Hmmmm ... I don't think so. I remember Bruce Tognazzini wrote about how Apple messed up Fitt's law in a version of OSX, where it was one pixel away from supporting an infinite target.
More recently was Apple's addition of "reachability" which is an incredible kludge.
Apple and Google may have usability research, but that is nothing compared to the deep research done at Xerox Parc. I recall seeing studies on the D* machines which measured the efficiency of several text editors, broken down by select, cut, paste, etc. Xerox first tested and measured alternatives before deciding on the best one.
At the first WWDC for the iPhone (2007?), I went a design lab to review our first app. The designer suggest I put navigation at the top, out of reach. I asked him "What about Fitt's Law?" His reply was "who's that?"
> I’m skeptical you’ll find particularly easy to achieve
I agree; this is incredibly hard to achieve. It involves integrating several moving parts, leveraging: TPUs, crypto, and negotiating with OEMs like Apple. I believe the payoff is worth it.
I infer from this and your domain name that you plan on using ML to ‘read’ UIs and extract salient features into a canonical model, and then to transform this into your more efficient interaction paradigm.
Is that a fair read?
>> It’s also the case that existing designs take into account Fitt’s law. Apple and Google are well aware of these.
> Hmmmm ... I don't think so. I remember Bruce Tognazzini wrote about how Apple messed up Fitt's law in a version of OSX, where it was one pixel away from supporting an infinite target.
I’m curious if you remember the example. Also - Tog worked at Apple for 14 years, so they clearly did know about it at that time.
> More recently was Apple's addition of "reachability" which is an incredible kludge.
It’s kludge but it has nothing to do with them not knowing fitts law. It has a lot more to do with the iterative path which started with a screen that was small enough to be reached with one hand as a constraint. Market demand forced them to relax this constraint, and they haven’t caught up with the changes yet.
> Apple and Google may have usability research, but that is nothing compared to the deep research done at Xerox Parc. I recall seeing studies on the D* machines which measured the efficiency of several text editors, broken down by select, cut, paste, etc. Xerox first tested and measured alternatives before deciding on the best one.
Did you know that many of those folks went fron Parc to Apple and continued their research?
At the first WWDC for the iPhone (2007?), I went a design lab to review our first app. The designer suggest I put navigation at the top, out of reach. I asked him "What about Fitt's Law?" His reply was "who's that?"
I don’t doubt this, but Apple has a huge number of designers. A developer evangelist is quite different from someone reporting to Alan Dye reviewing fundamental changes.
> I’m skeptical you’ll find particularly easy to achieve I agree; this is incredibly hard to achieve. It involves integrating several moving parts, leveraging: TPUs, crypto, and negotiating with OEMs like Apple. I believe the payoff is worth it.
Do you have the core technology proven out yet?
> I’m curious if you remember the example. Also - Tog worked at Apple for 14 years
I couldn't find it, although he has another post on Fitt's Law. The phrase he used was "pulling defeat from the jaws of victory" - maybe it's on Archive.org
> it’s kludge but it has nothing to do with them not knowing fitts law.
Yeah, my characterization is a bit unfair
> Did you know that many of those folks went front Parc to Apple and continued their research?
I did have a chance to meet Jef Raskin a few times. He was between Apple stints, working on the Canon Cat. He's the one who turn me onto Card, Moran, Newell 1983 -- and thus Fitt's Law.
I don't doubt there is a lot of thought that goes into refining the UI. However, there's the quandary of breaking the current idiom, which limits change. However, for low vision folks, there is less of a switching cost. Same holds for newer devices, like glasses.
> Do you have the core technology proven out yet?
Tis incomplete. Some parts of the interaction model. Am a bit weak on the ML part. May license GPT-n. Looking to form a team. Just convinced my blind friend to join. He kinda pioneered AR in the 90's.
Here's how to turn it on: https://support.apple.com/en-us/HT201443
Privacy as well: a blind user can not notice that someone is looking over their shoulder.
So yes there is a built-in feature called “screen curtain” which turns the display off. By default it’s a triple 3-fingers tap when VoiceOver is active to toggle.
* Braille-keyboard emulation with regular keyboard tie-in
* Different responses to different touch and gestures, oriented towards the blind.
Is this iPhone-specific or is that available on Android phones as well? proper-Linux phones?
That's VoiceOver on iOS. It's a screen reader that's also available on the Mac, iPad, and Apple Watch. Android has a similar screenreader called TalkBack.
I work with visually impaired people on accessible apps, and the large majority of them prefer Apple's devices because they have more advanced accessibility features.
VoiceOver also works with another accessibility tool called Magnifier, allowing it to be used as a general "what am I looking at" tool.
https://www.youtube.com/watch?v=8CAafjodkyE
They can also generate alt text for photos which do not have that information already. Here's a video of the person in the original article describing this feature:
https://support.apple.com/guide/iphone/use-voiceover-in-apps...
Nowadays, the apps I'm developing support things like accessibility labels (voiceover), high-contrast mode, and scaling, in addition to the localization that I've always had.
I also suggest using tools like Sim Daltonism[0], to evaluate colorblind accessibility.
Presumably because interactimg with the keyboard is smooth and quick.
A keyboard is also private and works in noisy environments. Some people (including me) would prefer not to speak when avoidable, jusr as some would prefer not to type when avoidable. It may be easier (or higher throughput) to use audio feedback from the computer while providing touch inputs than if both feedback and input are audio.
Personally, while I've spent lots of time training typing, the learning curve on speech to text is too high and the apparenr reward too meager for me to go much beyond the bare minimum (I can cancel many accidental summonings of speech interfaces)
I just broke my screen a few days ago, and b/c of the lock-down here (im in a tiny city) everything was closed. So i was forced to use audio inputs as much as possible, and on the IOS i was horrified that i couldnt simply say "Siri, close this modal" or "Siri, send new whatsapp text to Jane"... shocked.
As nice as touch screens are, remember that physical buttons are more helpful for blind people. She knows that text messages are 2 clicks down in the menu, calls are one click, contacts are 3 clicks, etc. rather than having to swipe around and find the app
There in lies another issue with iphones for the blind, you can't remove all the other gumpf you don't need. If there were just 3 big screen filling buttons with phone, texts and contacts, that would be easier to use than smaller icons.
These days if you’re a Windows developer Microsoft has some great a11y tools like Accessibility Insights that will do a lot of automated testing for you as well.
While I don’t rely on AT (even though I am an a keyboard navigation enthusiast) it’s an area I’m passionate about. I like to encourage others to not think of a11y as an afterthought.
App homepage: https://i2s.symisc.net
https://apps.apple.com/us/app/talkie-ocr-image-to-speech/id1...
If there's one open source project that changed blind people's lives, that's it. It made screen readers go from about $1000 to practically free, at least if you're an individual, not a corporation.
Alternatively, learn accessibility APIs for <platform>, and then start fixing bugs in open source apps. The meetings/messaging space could definitely use some work, for example. Stuff like Signal/Telegram, accessibility wise, is much worse than WhatsApp, same with Zoom vs. Jitsi.
In the end I was so used to test apps in this mode,that I put a shortcut in my phone so I could used it with headphones while the phone was in my pocket in the subway, or while I'm driving so I don't take the eyes of the road.
So now, either the other end has to hang up. Or there is a long timeout, like 10 minutes or something.
https://support.apple.com/en-us/HT201370
Imagine a high tech version of Hector Salamanca's bell in "Breaking Bad": https://www.youtube.com/watch?v=pWso-qRaIlM
I believe there are various levels of such control, depending on how much mobility the user has.
I wish Apple would have a mode which allowed you to do this with voice during a call...
https://twitter.com/vassudanagunta/status/139801778104036148...
So pretty much the same for everyone else...
Is this an undisclosed ad?