Now you can absolutely function SpeakerClock with no or low imaginative and prescient. We gave SpeakerClock the complete Accessibility remedy. On this article I describe among the issues I realized including accessibility options to SpeakerClock, now that it’s absolutely written in SwiftUI.
SpeakerClock’s UI is split into 3 sections, the presets on the high, the LED timer as massive as doable within the middle and the section “visitors gentle” on the backside.
The principle interplay gesture is to horizontally swipe over the LED digits to alter the timer. This type of gesture is just not doable when VoiceOver is lively as a result of there you possibly can pan over the display to shortly get to the recent spots of interactive parts.
I solved this by having individually adjustable sub-elements for the minutes and seconds whereas the timer is just not operating. This manner you possibly can swipe vertically to regulate the minutes and seconds individually.
There are three varieties of ordinary gestures for Voice-Over which I made full use of:
- double-tap with single finger to pick out a component
- double-tap with two fingers to carry out a “magic faucet”
- draw a Z with two fingers to “escape”
I used #1 for the single-tap perform of the preset and talking section buttons. #2 substitutes for the lengthy press. The rationale is that you must consciously faucet with two fingers as a substitute of 1 to change the presets, as to forestall you from by chance altering them.
Within the common stream of issues, VoiceOver mainly feedback on the targeted ingredient and after a brief pause additionally reads out the accessibility trace that tells the person what interactions are doable. I additionally used VoiceOver’s announcement notifications to offer audio suggestions on some interactions.
The cherry on high is that sure timer values get crimson out aloud. Within the yellow and inexperienced phases you get a voice immediate each minute. The section transitions get introduced as effectively. Within the crimson section there’s an announcement very 15 seconds, with the ultimate 10 seconds being accompanied by beeps.
That felt like an inexpensive quantity of voice suggestions for starters. I would add some configuration choices at a later level.
On this video I’m demonstrating all that we mentioned.
I’d say my implementation is 95% good. There are some edge instances nonetheless – which I can’t do a lot about – the place VoiceOver will insist of talking one thing that it wouldn’t have to. Sadly there is no such thing as a option to inform Accessibility to “shut it” for sure instances when there’s something extra vital happening.
It price me a number of experimenting and the higher a part of a day to get to this stage. I’m anxious to listen to from precise customers of SpeakerClock, particularly those that are visually impaired and might need use for a timer. And a few common customers additionally requested about acoustic suggestions. What kind of configuration choices associated to sounds would possibly make sense?
Additionally printed on Medium.