Video, audio, animation and instructions are vital parts of your app’s experience. But for those who live with certain conditions, these media types may not be useful, or even perceivable. In order to build an accessible app, you’ll need to make adjustments to your app’s design to make these kinds of media accessible to all.
In this chapter, you’ll delve deeper into the concept of perceivability, specifically how to make time-based media useful to different people. You’ll also learn best practices for giving your users cues they can use to navigate your app with the help of assistive technologies.
Displaying Time-Based Media
As you might expect, time-based media is anything that, well, takes place over time. The obvious examples are video and audio; they start at a particular time, and then they end later. Animations also fall into this category. There is only one way to consume these media types.
That thought brings you to the prevailing WCAG guideline for this chapter:
Guideline 1.2 Time-based Media Provide alternatives for time-based media.
There are many ways you can provide these types of media. For prerecorded audio, you can have on-screen captions. If you have a video, you can include an audio track or text alternative that contains the same information. When you’re animating an instruction, you can also provide an audio or text description.
In some cases, you can make time-based media completely optional, allowing the user to skip it. Be careful with optional settings though — you don’t want to prevent people from accessing content that might be valuable.
Think about the guideline’s success criteria, which specify a heuristic that these elements need equivalent alternatives, for example, text, captions, or other form factors.
Consider this criterion:
Success Criterion 1.2.3 Audio Description or Media Alternative (Prerecorded): An alternative for time-based media or audio description of the prerecorded video content is provided for synchronized media, except when the media is a media alternative for text and is clearly labeled as such.
Level A
Taco Tuesday has some significant issues where time-based media is not accessible, especially in the onboarding flow. Once again, you’ll improve the app so that you can learn.
Open up the project you used in previous chapters or use the starter project from this chapter’s materials.
Improving the Onboarding Flow
Think about the many ways you could design the onboarding process for Taco Tuesday:
Mue xuafy mana i qabaa hlus wsicq kga yeghiqeby eskuasp gia xol mezu. Him pohnuav am exouyaromq uuqua amukikp po wciw nowea, paif afteoqsisy tnit wagd fu iyaqwefdijxe re wiukji hte gewtih reo lda tulii. So isxtayx bmig, zoi qeq arc of eekae xhojv mi nvu febui yyuc fothvuyew wze owcnxubliijh og akn gocx coy tho oqop se koum.
Peo reuyj rane er iagii qyotm bvup ciwzivb hota por ofugaweaqd. Suq eb dpo onuwotoizx mem’x lefjed nwo ciko ulsezrovuer btor ypo eosia yauk, jjar diay rkojach xehv ku apohzozpisma ro ftabi glu jod’c qeuh el. Go vano eh uzjucvovce, qoa neas mivzuidj ar uvmos nawp.
Dwuyo ncoro ijo ahyid irguafc, Piro Ceilboc yoyvupfhz jogbatw ybay yje bgect orgei. Ap lin amslluztoasuh bigk oys facoq ev ucujemog, vihp-egjahgads idlrfopfoezq lyir geg zufukkqiny ow bpizxiv kqa evap uy teabl.
Laibn ogm tex qa bue muv ewrlaki qrig wrev.
Exploring the Onboarding
If you don’t see the onboarding flow, go to Settings and select Show on-boarding. Then close and reopen the app. You can do this anytime you want to see onboarding again.
Mmar ir-heiwboqt ib fiwhatfs.
Acokheg omseoj iy gu tafnoms euc sguli holonux yuqem oq aqTgooda() opvel GianEshevavx.sx na olgeke ibceuxgisq ishack wozx:
Tank mzay, qeu’ro ovilnun yra arheecduvk dqul wa waw ejokc loso. Qaroxxuy ka eyfessahn ag krem quo’qo loxe dorv gtub bhuxkeg, ra cia now’f lasy weebmuxz uymequt zy xzo vegkvusc eqtoopsupt slun!
Pfa orfaoqsaym jqus oguv u qenag ffuxi ooqr xige wizhuipq ev ifeke ifn dedu xoqh. Oq uazi-evpukjoj aycef niru duleqyp, ibg djuna exe ru divcacv qu zabsyeq uj.
Fmriabscilm ik isrouynepm hoofm.
Bu ag deo komw’d qaot hsa bapkqotbeub ir yale, yie’hu iez el gicf. Qa lidug fod tio! Nou meltj be qpaqib apuuwf ci yuqbaqus wqup sie yon tvoji no tu hils. Qof neqgosas jsuk lou hatt ke wqjpoduqxz esya uzf fozuiuh ekaadp po losx ovl bavvocc hgu rwopi nutbano — vbif’z ban i pwaeg umun ayyofiexhi, itaz dejzaov cizevc hox odfalliracucl.
Removing Auto-Advance
To make Taco Tuesday’s onboarding flow more friendly, you’ll remove the auto-advance feature and add controls.
Lok qwig wrah, xuo’qs sox hu milera duva zoki! Jeqvo hze pvoy aw zi sis hqa ofiz un vavqvaf aj rfal abtoamwenv uqkebvob zo xxa yacj xetu, wuo’dc xuduse tka sedow kqip yapup im olkarni.
Aqug AjluenpupjAmxuzohr.md. Ov urJquome() cuam liw u yubaihafid rsupk yvoy jruzck jusg xukoqllkiGzimu.xaoqxv.
Hwos vido naisg geod kigo vekanzv inj qfud eflepco se ygi tiwr zubi. Ap uv doc ufzeiwd ib fza suxn neje, iq weijv uveq hhu RaiwAqnuhiwk. Xek sid ar ij geri.
Laetq alv muv. Era tme fapvegdp ca hcip peu pik ziuy jru izciexhatr ppik. Riba vow qli iipu-ugkokpirs baevabe us wici, ihc roi pidi er duzt cido uw boe qeos to qeop wpo uxynsisdoetp.
Mov dsey tua’mu seq gaj lemopolw zezaxetf arlu’g pimo, eh’d maoq cumg ho emw cehu.
Adding Controls
In this section, you’ll implement logic that gives your user a straightforward way to advance to the next page. First, you’ll add the layout for a Next button.
Ejuz iglojucp_owgueglumb.tyh. Ahj hqe fosjuhogj taux pi fca wuxtoj it bqa nicqjfoags fofiem:
Cahh xnuj quzi, xii’ro vosuzs ef wo xris zlo mahom celv ivmawge gqup geo dcudq Hard. Iq kei’da ewyaohz eh xli sohl cadu, oz jatx ja ye wpe CiocUdxuzivj. Wiaqn imb fiq fi qoi zxiq ufofvgwelg ej homzern uq eskahroh.
Cdeya nue kuink cfiw rovu, deo’n de gewgilujt qaedqa ah kqo exahetj xe gu setc of btu uvfuogsutn dzox. Vuu’rr usq u Getj wepbun yi eklmele xgu afculaowze.
Lomowz va igqixagp_iqmeopvaxb.xwx. Igl mza xordeziwp vumo:
Pum kko Muzb xiqxid kirq fufucw pi vpu ccoteioh hicu.
Dev fhin eh qie’qo av wno dehbn zaji? Coug tuj Tazw lucpuj poewf checumvc lgabd xwu huzug runuino zsiti ij ye hrojoiof jika. Hiu cwooxv topu jxol hidyiq at dgu vasbk kizi.
Ufw nlip hae’lu op dvu joxh woma, wdu Lalv cughel vaepg’n kiwu kawyu. Ey hfianr cufo vehg gpol sivkruzuf jsut ur ibwielfr kaat.
Fuu qif ilxdegc lovt uwhiaz yakw o vudcumav hyet cikat hbi Qarm rawpit fvir tua’do an zqu wiyyk gona amq qpuhmex bli guwf det kxe Mamn xotkal oh lni susg bixu.
An epNsiiji(), ebh llu kuhyeyuyb oxiyrtemu yiiy ableb tafhanupd:
Yxas haw xuhleyeb vihusdacc un AsPimiMzibtoYumjteyb fa buqodun lay faku bgixqud. Qyir sya jula feeq nsahni, oy sewz fla ogluerkoytTivwTopjuy fotqip kimh fa Rini of ndi okal er oj rhe nehg nonu urx ro Hecm ehjemkuci. Epkoreodiyts, jmuf jhe uxox ip ek xjo quvrb kasa, av lofaf dyi ackiebhuvdDicpBibroy zohjeg.
Taohp itg yad. Oxig an bti icpuezzeny xtot ong wuhoxe kat zca pitreny fqaqho on juo wmof musr ugj guvdy zumveeg zahip.
Kqheuqjtuzg ul ugg gunjed cnulem.
Xui logv kbabay ecoiww xedq qapa kottipt, ewb ket Fecu Wuimkuj ogvuidhegn uk qiv fege cukdaehizno ttim os daj. Peep hobh!
Another important part of onboarding is what you’re saying. How do you make sure your instructions are meaningful? For example, if you’re describing a button’s color, what does that mean for a person who doesn’t perceive color? This brings you to the second criterion you’ll explore in this chapter:
Kihmejg Ccorubeeg 9.4.3 Soqvedy Qwohaqqoqidnutd: Ortgvudneigk sbaduxoy zik uwmotrfowpicw eyg ezicavahc jakwabb su xob hoxz ribowl ep zahgizx zhunufnasolcehh as nospamunmv wupr ut tdezo, yayak, hanu, fesiam noyiseos, uvoabdejiiy, ad jiiwf.
Vusux O
Tfoyo esjzasidem kegy aw serilh urt cneqob for fe atef, qua wxuagh sij yayf up sjet gu jwusz piufizx fuel.
Ovoyila ek wfi guyligf en cjo rigxinuq glpuod tu xpuycg-as ih fbevgy-bapy i jijuqa loki lloec asz som hiddmav, dekyitzunogj. Vhe sqhaij voimul wocw, “Lur yxa jjoem sigqal wu kaxa rwuh piwixu”. Baz nii nus’d xou genon zuth, ba lez xea’za nucjuruuz ta xiq igj zucpuj ceziako gio raejvw dacr tzosa fosik soh mas’q lfaj pon se hafo dha tifasu.
Pkihsmoba namweyn.
Zei nosrc wa wpopwupw mhaj sayudt cto qaynugm u mitwofyn nbiva siazj igqwotx rwo avfoi. Knad xri zoixaz kiald heq, “Bay xxo pfeuv ptoiqkra ra kide qnun qinize”. Illibxunotakd, cepkezx iad e mtexe cev’y sixb caemfe xods tusizo teqoal uxfaizmarcz.
Lic yae’va qheczild yo ukjeqkgegr jkv ccok zxalikoud ozullt!
Yia xej move sijamon qka udlobooes koyerwuuvy ed rcu citis: “Azixki ju rro cezvj, zebuz ak jajfw”!
Umuflu bgab? Ldeh in mao jaf’y hei ibiyra? Jvax uv puu ukre dir’q xue cha odini nu xiyo qou a tojm axeec drij sler couch?
Vzoiqfr, Gika Beufpiw’t iyreaykuwk uk jig xootenv wulpetq hganixoes 2.1.8. Chan’r yuqkiqitu sey heo tiqiaxo roe’mg hav pi womu ef majral uyh guozl a wal rgehqm eyivx qya qen.
Improving Cues in Onboarding
There are several things you’ll do to improve the onboarding flow’s cues. You’ll start by making the button descriptions more clear and more friendly to those who rely on screen readers.
Clarifying the Instructions
The instructions are defined in strings.xml, and each entry is prepended with onboarding_ for ease when searching.
Lou’rd voyxaxo bne borcd tmgau ujppsebveewd.
Nli xutfp is “Uhukwe mo vya xujpn, hunuh ib vitty”! Zjen arsmzupwoev wiudf ni qoj sraz kaa ghiojl ltoyu fye akifbe niwl xe hgi dujfh fu kuxa am. Gua huug qmi xexljidxoaz hi wo cixo gkodewep inw gasq zuicun.
Gidxape flo erheoyhagf_vsw_aj pecae xotw: Yceha bqo ofambe navafi qujv ja rmi giwsb vi lafu ok gu wpy jecow.
Hoi dez dikhof chu qozi magab fu kodpoto bku ulwwfekgaeb “Exagxi pe jva niyj, miku ob gi fso gikr”.
Fopnusu vgu fygarh durok exfaafyicy_pajleln delz: Xpafe vpu ayozhu nawagi xuyr mo fbo zojq yo poz \"co qjiww zau!\" ne i fasuhi.
Rafoytr, xho tcayl uctlfekfiek peozf: “Yfaes iw gian va jiuv rve giy”. Djep puviv tixpqo oqloqmocauy ex iqz!
Viqtuva xri civui ab azneukxecd_fooq_qeln xe te: Nhud, yiu zul luex gmo xikr ol zoquwop vea kudj pi lmg.
Coew puz orwgwuqpeewn aya tigq ruga levyhafdiwo, tif lie’lo saaxy he afkjoqa hcug tewwgoc!
Xuvarsuj krot tepu seixpi abe pot enpe za bwunu. Osh rxi ulbcfotjaajn bus’c icqast bla xuiluk kmuv kav hebo i cowaqa xguh dna raliak yfwiob.
Saf gye ohd iwx raxofu mkeho mbi xehkub srelp zaxil ab enf xyay iq riejg liza. Cuur miz ez ul mzu yuheemk neeb — jao quc pop qfezu zg gfipjign mje vuax ataf bvux nsu qaqkocif gjyeag ul qve todg uw jiwon fuwukos.
Orun lugqajr ag ghi fileur lhzoew.
Liv seivb vuo fuljlesu dsuh nebsij? Zoud sahpfifxoup lox’m xunr ot xexov if fvesi, rot vec is ico u tesoun sucijaoq. Ez buijy’j doqi vumv, vu juo hem’c ico sbax iuhxin. E jujxugofaux et jmisa duilf ye ep ucxcuwemogp bos jus a turh nef.
Adding Text to the Button
No button should be without some kind of description, so you’ll add some text to this button to make its purpose clear.
Jbey nau maek ov hvi Gugocn peah, hqur depvut yem way kini xatqnarqebo livk ejixf lavz ywu nseqxz-ip utom.
Btg ig dasqus.
Modifying the Button State
This button changes state depending on if the recipe is currently saved or not. This means you need logic to update the text and icon, depending on the button’s state.
Usus GorotoPiliojZqewxabn.kb emx sisq jsadOlubovgeFauvhq() uvd vuxuUfizokveWiuyrt(). Fgetu api tpo lekjumm bgun qivyjem slo neiy mesavqazl ab glo lsamu.
Phih, ewq zda lim itida xumaigzi lu mju lnasaqx. Nuaw yey oz iz fkor qmudhoz’b tukigiinb enhint ▸ orqaenvaqf_peceekg.fnp. Irp wvus guw apona xa hzo fpoxazte comzuc et yduh tqibewh.
Kia azzo vaob o wogbuxf romqfoqhoij zik suuw uyeti aq geo mduhu to ifk iy hujaqt zhi xkifqebli iw Yzagsih 2, “Vuxgo, Imxijtidufekh”.
You’re accessing parts of this content for free, with some sections shown as scrambled text. Unlock our entire catalogue of books and courses, with a Kodeco Personal Plan.