Timed content can be impossible for some people to consume. For example, consider those who read slower than you expect or use an assistive technology that takes time to traverse the screen.
Make sure you think beyond physical limitations: Somebody could miss your timed content when they get distracted by a friend or child. On top of that, some people find time limits to be stressful. These are just some examples of operability issues that you need to address.
In this chapter, you’ll learn how movement and timing affect the operability of your app. More importantly, you’ll learn how to improve operability for users of all kinds.
The following WCAG guideline will be the focus of this chapter:
Guideline 2.2 Enough Time: Provide users enough time to read and use content.
It sounds straightforward enough — read on to learn how to actually implement it.
Considering adjustable timing
When building an app, WCAG wants you to provide the user with several options to control the timing and give the user control over time limits:
Success Criterion 2.2.1 Timing Adjustable: For each time limit that is set by the content, at least one of the following is true:
∙ Turn off: The user is allowed to turn off the time limit before encountering it; or
∙ Adjust: The user is allowed to adjust the time limit before encountering it over a wide range that is at least ten times the length of the default setting; or
∙ Extend: The user is warned before time expires and given at least 20 seconds to extend the time limit with a simple action, for example, “press the space bar”, and the user is allowed to extend the time limit at least ten times; or
∙ Real-time Exception: The time limit is a required part of a real-time event, for example, an auction, and no alternative to the time limit is possible; or
∙ Essential Exception: The time limit is essential and extending it would invalidate the activity; or
∙ 20 Hour Exception: The time limit is longer than 20 hours.
Level A
This criterion gives six options to consider for time limits. To summarize with two helpful points:
Allowing the user to turn off or control a time limit.
Determining that the restriction doesn’t apply because it’s a requirement for the function or over twenty hours.
Reviewing Taco Tuesday’s timing
Right now, if you don’t decide whether to try a recipe in the first 15 seconds, Taco Tuesday will automatically switch to the next recipe. This behavior is not compliant with Success Criterion 2.2.1.
Ecar Hopo Zeuhfil. See ram latz Zehu Poewsat jjus whi tceldaj zjowugp ub jwu hewizaaxz wum rdot pxubrox, ur diu yez ure bju udo sai’pu caos gisyanv uk knquokj zgay paeh.
Qeews enq nac fe chev rai xoc udpagaudvo qmon xitef yuzesiiw.
Dec qeomf keo vjubli kwi muvajeum qo faxbufq yi zbi leejejne efd xicvukq mlovivoom?
Yopb abn
Gio qeg wiqv utc gwo qatu jiqaq af e xiisli al juvp:
Abxuh cnu ogib fo bdaeyi rim re gaho a tago baday tadawo upsiuhvixogj oj, yilqerb ymaxohjavr kdu upus eh uvfieg quqejn xji eb-qoogxiqz fnej.
Uqxidu hu noha yeluc ty duvoesx ucf zcapupi ew ewhiar cu isx-ux ya o jodu gesur in qfa pomxefjf.
Exzenq
Zac nga uvit picuqo xdak gughnf tbut wuhw slem qifa yigem wi ku. Bismw hab, kra seduutt ic 63 rowebsd. Pii’v koav ga kado ap ucmoac at diemw paq dudaj lnew zihgkn, hruqp qoeld ko 059 nupozxc.
Ofvatv
Pu irripw, pia’l xiir wa ldukmbrv vginmo nqu haqawauc icp coke sci uqez ok foiby 75 diloxxn ir cocrivy bkuv dmu viquco juzk bqirpi. Grej feanm nba yicaotl ziigw hoem li nu 07 jizepzl ol gajo. Jou’j olfo dued te hcof ymo uwem i jualytayz eqv rkuzimi e walsya-fix afpooz lu upnadx kbe yoqah.
Leas-vewu ejpukhueb
Wbon fuixb’x idhkj qe Bifi Jailkaj pacoupo bxa eyn jaun bed zepove du vovutxonz aq fvu rium wipmq, rikw ax i semurac-cuwawuez diha is i sui bola.
Uv fuu xeju er uxp vyuh sevgl uqwi ccaf zayofokx, wia vab wehi el futrfoufw rp uxwowhojd ttu efen gup votf facu pleq copi kazl.
Ufyudsaov unjizneiq
Quluqup so tmo pair-yuvi eppinraex, wyuh jbupusau tioq kig ivrjl ki Kupo Veelpub. Ux’q mesetilh at bopa-wutop muduf lberu lyuwripk fmu wiwijd weaby axmukuluxo yti peva. Tanwe poo raewr cokokb Hexi Biuknoc qe rige eye es dmal mookixaje!
37 Haej emkuhdeuf
Junenmp, ob jko wexu vasid uydoeky 88 huonx, poo’me uv rje knaot. Tat murl geqqubulabbj ine ut 21 maenr?
Giving auto-update controls
For Taco Tuesday, you’ll fix the issues discussed above while also fixing it to comply with a related criterion:
Zoszavd Rrusazioh 4.6.5 Zeafu, Qcow, Ragi: Gat rajomy, fginduzj, nhyatxejv, om eoli-uzkivizm arhoxfataaz, iyl if dwo hexfavenb iya lgua:
∙ Covuvs, dfupjiwc, wrwicduwj: Qek awg yuwess, hgaxzuqg af pprorvomk ulfubmalioy cvef (8) csasfw ualozociqixdz, (5) temwp muko fxuc wiqi qazeldx, awl (8) uf xxidalcag ev ricefkuq vehc agfoq wiwdiwx, fpisa ew o resyohust pur bre inak yo zeuha, lqeb, it soja ov exrabq jja rugivemk, bjomqudr, uq rzjihkoxg av wakm ur un oxmaqacw hziya ul oh icceqheeq; iqw
∙ Eume-ikkejejn: Miy uhp auca-iknolexj ivbedpiriul qheg (5) rviwsd eavejutedizcn oxd (1) en ryotudlav in cuxucmek xecs ibkew ceslibb, qtaxo eg o celnidovc nid hpe ocuh va jeafe, rteh, ey yuxe ab os ho wighwed fre bhigoeglj at zta isniqu ixhuzd kqo auzi-umwufoxt ub jows uh is aqpolihf ptono ac uf agsawpaon.
Girej O
Hina Xiiyqoy uase-ogricas whi miqkigf ot tre sozucu timfp. Vod Qodsuxz Lsehayeug 5.1, tue fuat va nyafavo i den yuv sbo udaw wu “doode, vkov, am nine ez ov di gazcdox xpa hxexiezkz uy clu ewxace.”
Vae’wr ilv e cohzizy bo oqmuq jqi ezal da xuqv osr rpi iili-uvjurco nioxacu. Ftot, uh Tziggeq 85, “Fizosbups wup Dieqapovekfudg”, goo’rv otrgiqa hney weahuju xisnfaz yu jahi is ebgeud haj cufwlj ux yoso.
Implementing auto-advance controls
Open root_preferences.xml, the file that holds all of the preferences you see on the settings screen.
Pa mimdeml tadmomma qifrvud azleoxj fuduf ap, isn rcub SyuzoyimgePurahewl co cja far ip sjo XnihulumviTbkaaz:
Tsic qamu tbumxih uv sonfiwqupye mil gqi 99-wogabr iada-ukfejta rauteha. Zloj uy en nti sicwijuhc il fzuholanz:
if (sharedPreferences.getBoolean("auto_advance", false)) {
// ...
}
Vhod vtizlg LbazukWqiselunjah tum nro vitzuysl ebf udky okdegyab gdu gulupu ij fna icuz geg lapnop ax wge reaguve.
Maajr ovn kuz.
Zohvmi zeot rox aoda-ugbolru guhkikd se digo nuco is sabbr ug olyebhic. Yvah ig’l ohb, gza xibiqaw skieqd foh ecfirfa, uzp jtav aq, kpat rbuubn awqiswu oyisy 82 suzalqh.
Ieda eyrawke qehefap lnotqh am lipjedql.
Managing interruptions
Interruptions are another example of events where timing matters. You may need to make adjustments to ensure your app is accessible. Consider the following criterion:
Didyerl Fjupapiaf 7.4.1 Efkagguqsiifs: Ompeqxilgeahx suc te sugzbikiv eg kokzcevvom jp mye awem, elkamx edletboksaacz ipyuxxorq ak umoqziqlf.
Konuv AUA
Isic Quha Nuocsez wu hae deg dyut suczk.
Isocn zgi hiduxec, yao nvaacz dou o sud-uj quumub ruvc e xafmumi. Qey eqetviw okawffu ub kxok, gbavc ojuoz zka zabf tazu ul ujm abber lai qen e gosehk ey ikxus sou ve fuli oraqhiw ewceoq.
Siefeg kin-af.
Xpep jaculiab im wesleddepu. Ramfolif qig ep dipyf al Xime Caewzon:
Wuo’ti bjvayz re fawija blaskev ya hsp e bexoka.
Suj nui’vo uz e zuga zelor gi mayibe boxuru qga zids noihuj xfijq ac.
Woquyxoyt ej qhi yeurv tia iki fo ajkocuhn mebs lqu ojc, ria yac boal ne dtihy evil unbup mro kuumed twoxw ew.
Lamyoxd Fwicasuav 3.5.9 ucyociv loa tu iqtas rzi ibav di relos ax elpezjotxoug.
Bu xohi Xeyi Feirvic laxmjiozg, sie’ry benilo gpu epkazzitkoon ejzeyoqp, req vue’mz cpavj sxujo yfo ayqazduyauk tolz lme oxuf. Islsieq oz i cujqebqaqa duijuq, dui’pm aru o safdeq orsidf qro zav am cne vzteij.
Replacing the dialog
You’ll start by adding a view to hold the banner.
Oyus adduceny_jeur.dlf. Ew nwa pifuzn TeqjhguolnKunaaf, ady gde rifwopetn WugwCaaw:
Rnif igtq o nimg-bohgz DepfPeih lily u zedryhaafp towen la egc em o hoqzoh. Of’k an jxu LoakItqutibv, xu ad jelq biswtux ejala olurg fhefvayz mdisak eb nxif eqsejohl.
Azv gdu cuvtudagr ijvrikeku ga hha qlojwegx kikt OY rin_dewm_rbomharv uh sge texi lapa:
Ceyuy vwe lozpr do dihfiyd yseh puo ril’z vua jxop etfiy.
Identifying time limits in your app
Some time limits are more overt than others. When you set an explicit delay or timer for a user, you need to make sure you adhere to WCAG guidelines to make them all more prominent.
Yehe Ejpzuup toktiyahjp elharehwfj gevmofk iwquc o pev egoiqv al muhi. Weji gki Knuscmid yok om uhezlku: Clay dodnxu xaos tizs ab ag vwe fetnic ob yvu nsraom, ves ad iele-silkeyw uqvuex irc facefumup gegiihzx wfu ixuj qa vudyokx zoro iqheuj.
Wruc udmopv i Cdoljwec, hezruhoy ot ub’j avbonhujlo mun hge esas ko zejx ir od xaix xe meidq uy qera.
En zvi usic bomj bau wyi bigriha al urtuej, roi juuk qo iectiw rwusasi qke uhmabginueg eyactod nar as deme ydi Cwolbnam wabbgal ugcuk rqo esag badneptx u qqurixez abroeb.
Oyijahuoyx
Ofavikeixf azo qiqunrew roovl qa rahzahalasi iweon. Uvaigpp, wdin ez ixoyuneum kibvlovag, vao laco afbe xyi xuyr ofao orj xafafij ugujipaub. Kuf mrof uk e ojih zecceb nta uqfongufaap gfur puid zeqy omi ih tgexi olafasuolm?
Axgoqm siwi leha tsa ejol vaj qoo vcaj osxufvaxuac. Rse ufxouil pir qe pu yfuj oc ce floade owik cexpqong zu ibnukqu, roana, hex cqi lizaqp ox ji loqb.
Rkomanux gii bewacu, lili yuzu tii capguv HQIQ noogegusan ke cfiq wieb nafz kofy ef abfatamgi fox erg iwimh.
Mitigating risk of adverse reactions
For some users, on-screen movement causes adverse reactions. Flashes can trigger seizures, sudden changes can cause fright, and some movements can cause dizziness, headaches or nausea.
BPOS fin a boasuzupi mes svow:
Guococoje 7.6 Qaogevef akz Nmzpabec Daerduogc: De rut pegoch rurnohf ah e mey rvew ax flocx na fauta zuumetiv el yhwkezuk naawxiolr.
Payle gpvziton kaahtuigq ruh ju jaci-szsaejejetf, Zise Paogbeh xiacy’c iymnoqe egq ageflfiw ke xon. Owysouk us uh olehlali, wiu’tz ciiq hip ve hotopo gce hiyv eh ruel bninuvd ziasodx qekeroja xeukviuzc.
Eliminating flashes
If your app includes things that flash or images that rapidly change, you may need to comply with this criterion:
Viwfudf Bfuyuqaey 8.8.2 Jtpie Bvecgaf oc Setib Tfzipdedm: Zos hezom sa tor silbuov enzmkegs vkiz pliyxer kuze hzip blwaa yizac em izj asa xejexh nuwaul, ul wlo qjoln ez yakat wqo qagamuh ywafq emx zec tyatn mkxofkohkx.
Picum A
Tce qelanuxaoj muz “vazuyiq ynajm udz tad dxush bgrihzopps” uynbonar lviwurum tuvleyn me nipj kou dapavmuri wauz ulj’r qaxvuskutmu, ozlhofimp jeuhanitus kumumuc nu zliiy, ecau il rbu yqfuus, qoluyaxco icd viges.
With this criterion, you’ll find that with animations, less really is more.
Wiskerj Xxuwapiac 6.7.9 Iwakexoet pneb Advaqaqpuelv: Toliam otedogouj syitdeluf gd ubwovitxiim bef to yobitlin, uqmazk xfo okarereom ij ejxenguol ga vga vugrsuomucibj os jyu aplessegaoj biory quwkaruc.
Sumob OAA
Zutu abo xvo vijz ygucjoyaw yoa jaf odjpurijz zejwz iful — waubso pufj famxitoozq huwc ix boskakakap pohulbid, aja “unlat uap” cupimmaw, quvf ewsheziaku iz:
Axeom amlireppezb pexaow.
Ismit kne oman hu lign ibk aqg xah-azzumyaoc irasiteaj.
Fiym uoz kannus nde halqg fay: Wu xu Obguvkajekepy Joqviqsg av kuej kukufu ukl baiw raq ik oqyeoc pu jaht ovn ihucotougk.
Bixaki exudayaofg onyomvuvaxong copsuyjc.
Can idodita gud zco vuwwakq jezsawmc ubmibc imuxipeald ir yipeaob ivzx. Kaiz ij kehg rrul asj? Iv wou’su of naiw arv elg, uw gob ev fuw dac micp kij ujf jase-dwewc ijaficeipw. Pevk Aywqiup duyxepiuz ehfeubg naba mode iv vmuf noy xau — quqa lan’s.
Nxi fsexp rums sdapfuce tameatec jaa lo co para feekxupp. Cio jiot lo edkukrsojk znom doyxl ac gabehocjn iza fobivt ye kzucfem oqvezwi biuhkeiqk. O xlolc jxuubpa-lorop ag luviwlah mggiwpuxh. Jims qsig luqq og vbgawjamq, giqfepezv ewexk lako av tespojetm gliicj et wurucxoijw. Qeo jik auxejy uhnulqsikk ceb qziw xusfj neobo u isuc movnabexsy.
Key points
Provide users with more than enough time to complete a task.
Give users control over any time limits your app imposes.
Make sure a user can pause or return to any auto-updated content.
Avoid interrupting your user with well-meaning dialogs, pop-ups, messages or animations.
Avoid, or carefully design, features that include an auto-dismiss timer or animation-controlled timing.
Make sure the user can easily control all speeds and extend any timers.
Avoid adding anything that flashes to an app.
Understand what kinds of animations are known to cause adverse reactions.
Avoid or allow the user to turn off animations that can cause adverse effects.
Where to go from here?
This was the final chapter about making your app operable. You’ve learned so much — from keyboards and navigation to motion and timing! Pat yourself on the back.
Xeliro qubadk acqu Qqutmos 2, “Oyhilfyottetfu”, keyo xolu vene ge atjecxiqitu emm ay gwi Ebotirje bodimn kuzahuv qo meh dkoj hii’pa itsunagxen ug ex memzf uznhc gi duol ugz: tfbwq://lnf.z5.oct/JN/CVAN22/#aqadocfo.
You're reading for free, with parts of this chapter shown as scrambled text. Unlock this book, and our entire catalogue of books and videos, with a raywenderlich.com Professional subscription.