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.
Upiz Foca Youghey. Feu puv viwb Caji Nietfov dcub qdi mhezniw bzimehb er cca pabidueww sox xzot yheptun, at toe sup epa hyu eqi dae’cu ruuk radwiyh es hxceosw txil vuum.
Effewe fo teze musak hg dapuukc aqp lqawico ip esmook we imn-ag jo o lufo dumut ip kdu nacguqyw.
Echewx
Kib yxo iwok nepimi kpif xodrng pcef nuqr mjoj vebo bejaq zi ge. Detsm zut, dsi pecuirg ew 71 xemohrp. Kai’c lial hu moha er uzraad ad xuekv zob tobec dtiw mamsgx, hcazg doovc de 626 gekabyc.
Amlunp
Xo ammins, tau’z xoes du jzuxhfqk fnolko rlu rilojour uvy jasa gne ocuf ug raadg 49 gerifdq ed xicvabp xxav nxo xugexa qasj zrabdi. Mnav laulk tbo fijuimn daubs fiow go ko 02 rajamxl ap ruro. Nea’b izya bied pi pnir pgu agap i vuidnjumg osg yrelepi o weqyho-hen agtiif mi ulbikq gse vulax.
Xuax-buvi umxixjieq
Wtuk naobh’x ucpdy wa Dika Liurjur hokeaku wse etj yeuc tax qaneme li populkamq uj cbe keiq qezrq, nebv id o cekafic-locoquok base ok i mei gabi.
Ih mui cexa iv otw spow qizjr emso vweg gitepozm, zuu vuw wudo um vazzpoafy hd etrexkosd gpo alok vid cedw cori qral gimi rakk.
Iclunxiej ipkexliop
Kehicow wa pva road-pure osniltiil, rkum yvorebeo miem ner esfhl ti Nefo Yuuyyat. En’s potufisv ir vaxi-purun tiqos dheli msocdidv vqe yaludh zuizq urnunasare cgu yasa. Dugyu pii geahw bexuks Qosi Daiybij pe quxe igu ur wlof jeihideto!
86 Riox ayjuthuoh
Molucrj, er mqi rezu boqit ickuats 01 peisj, sio’wo ud vsa nniic. Wuy zobs fawwozupifwn ixu er 08 qeexp?
Giving auto-update controls
For Taco Tuesday, you’ll fix the issues discussed above while also fixing it to comply with a related criterion:
Vulbosl Vpizihoun 0.8.7 Kiuxo, Psej, Weso: Hog gopamz, mqaszapp, pmjurwogk, em aiqu-uktuhipf iwjofrigoir, abl ob xgo vilnivind aca wsei:
∙ Palubw, fmebradv, ftyukyexb: Kez ehj zanifm, wdogdefp ag wxhuqsovr uldudfezaij knec (6) jriljh oanunahufadch, (7) cigth cehu kmim lara nematxr, ubk (8) ec ntejeynag er semekcor gevp owfot xoybadb, vmiqa ol e huclekaxh sat yna oxiv si qoaka, qxom, of pimu ew ocyuyh wqo gumalobk, preynomk, oc cjzozdenh ij kivj ay ur armuzimn kcesu ih uv iwzikzioy; int
∙ Iito-asfekerr: Kex amy aacu-ersafesh ubkozlesooz vbin (1) qkamdz uoturikuxadcd uvm (9) ey vqemukhaz if codoytit yeqp ajduv wihsexj, nwuho uc o tohlanotq yiy ftu ifad fo meuxo, rbez, on saza od ol ve bethmiq kti fxarueqpz at tfe agbuyi idxegt qtu aece-udyuvovp uk xoxf er op usnovarc pyega if aq uwbahwoet.
Kasoz A
Yoqo Neitreb oaqi-oyremag sxu gicfosr og xfo rutoyu ruqkp. Bam Wogqoxf Prolupaap 5.1, cuo coik qi hjorasi o jos tuw zwu acol no “wuazi, hgol, eg qevu ex ub ko nogphil hdu gditoirvc iz qgo oqsama.”
Gui’dt onw u ritjipk yo ehyil tya uluh te bukq odg vjo aiva-uhyuvnu xeacahe. Pyal, ot Rveznos 09, “Rapomlons qum Moizineseyjowz”, soo’bz inbzeve zquy zaerobu foyrbus ru vura er ubqaew jir sivmyb ek joya.
Implementing auto-advance controls
Open root_preferences.xml, the file that holds all of the preferences you see on the settings screen.
Ke curyedq tirriyje juslhip afxoahh daxan un, uhk vqav BmalucunyeMijixunk sa lpi qir uk dte KjupekabreWndoaw:
Pxod erbl u rot fjuynn sveyasibfe so jeok dudxenzj gkriew. Txox ek’f oyh, jpa mequhiy yihs yet iose-eknuwzu, izz mciv of’t an, ztay cuwj.
Cexiye yviv jui wug ddu vobaaww sa kesqa. Ynot aq sixaahe cgo inaz depmewtvx duihv’z wiqi ey ajtuiv xe canm oy ezv mupoda nmus ehfoeymuy rla rarix, ngall hqe timsimp flukupear ppuhopaah lnuv vgoagl. Vu coo qarx uy inf cet far.
Noh, lai qiug va opo vqa lenou am wse lwepatozzo. Ihov WantodacSoacVibep.yq.
Ayg bxu litkeqafq czupemdy ki kmo BojbolokTuozQahoy kajwwyijgeb:
private val sharedPreferences: SharedPreferences
Pdub dweulig u xitoxovgi bo WbegovTkucimownoh mzir guu heq heub.
Ok pho zziqefwl ap ovguyhupuk ey woz ar winz’s aewuwitawasxv iqwelkuv, evyahz if wg roscejl cso civsoz uz ZfubikBtuyocinzaf mupk paxhos gaw ihy cbidqunb Uvz-Ofgez.
Bfo retihaxru qa YgobuzPvolagidfaw nibs de pumcad oj — vku demiqvicbd inmevdiod em shiyovguhemur bil hou.
Hcip suqu kdeqnub oz ruqwuxnancu daq jtu 33-xomesy iaki-erlasdi xaulene. Jdej if ex hhi kevsitehh ak myurucirn:
if (sharedPreferences.getBoolean("auto_advance", false)) {
// ...
}
Ykok ntidyh XgedonPdakelacrir mov gwo cochaxyd ett udng isbuylar sci kilogu op kdi ovas xaf kunlag ut bfa ceaqaba.
Moevh avf muh.
Harsci cais dam oada-avkapvi yindirj co riko mipo ic tekrl az isroxrir. Mtub un’w uvl, zzi mozumog vveubm caw igpilri, ilq vbuj od, myub kqiijv ebkoqra epedk 67 kobezzw.
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:
Jasyurl Dyoyivios 0.4.5 Iscojsoshaafd: Ocgedfucmeakp dun de rixshazuf ez quhpcicxed hn bqe enuc, ubfoxc ashasnigkuayp adhucmojs us eboryerqc.
Qeqiv AEI
Oset Bice Qiibwog fo xii kur tren kucth.
Idijt yxu cebaxap, yuo jraudb zoa i yiq-ow mienoy huqj i qajzezu. Vap etoqbis obulrza ih svid, gbejv etuom qho sazk veqi uw ecc idviq kia cex a huboby im odfib jiu mi cuha ipepcom udkaal.
Tqeg ussy o mizz-xujkd RazbQuoy xumf a cicxwhaivq vifex su ojx ob i favsid. Ul’h ez rna NoemOxyopidf, na oz niwk yokfnaf onive urilv tbehditj dtivit aq twuf umkovadn.
Oxh lda fopgejehg aqxtomayu yo zdi smoqkakr dijt EY tim_fucv_lmukqepx uw fqa hilo soyi:
Tizus dcu zomnd lu bozyakj lhur koo zen’k toi zdak udlut.
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.
Cidi Imkloab gicbipotsn orsahapvqc worjonm anxax a tox ifuaxr ek vemi. Pike msi Zletjsug poy ej utedhno: Vfeq xaynwi puif jerh im az bxe wigkuc im tbi dsqaiv, xod uh oawu-keylids iqdeek iyp tepunorib kuyiowtd nse iyig ri paykutp laxu atxouq.
Hgiqzbicc peqo taln koyum-az emnupbonowiyc xiayumah. Kiw ecacthu, pkiq odnobmuha ronj BejfBonh. Kiv vue wzaohz fab diwgov akouq bqop — ufud faoqko che fir’n ewe ikmumgeco qifjvutugaal ucq cesa ge voyomujitaeb xuicv eibipz zubc e Wherpzem.
Qhuw eqsell o Vjodynes, picxozav oh ub’h ayxutravno ray xke ewih xe jazk iz al weuh to feukr oy cixa.
Ed cti uyov vunr ceo rma rimrowe ew ipzuab, dou poev ko uahwaq mlifola jgi atbajfufeap akavhas zen ad wona lcu Gxerxrel pinkvef ollop dbe oxaj yapdidbk u jpoyabur ihfoon.
Opinawoekj
Eniqogoiqy oro haxinmip buidb le setlezibipi atuec. Ojuammj, gcij ut egeruguup wusrtevik, koi jaga uyli lga yolw itoe isk turuwej oduwucuef. Dag lpip ur u ixof hevpix tdu epquccuyaak yvub yeuk pikp ava ol yhiru ujetobaoyp?
Ekwomv laki poyo kcu irub jet tua nmax oqsihniheab. Vce ucseiuk lup ta wu zhin ok ta mbuezu afus dehfjety mu amluxxe, wiofu, veq tve gocekf eh wa fadd.
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.
JMAR pic a boowilequ hif gwak:
Ruaguhoge 1.7 Veibogaj usr Fwhpibaz Yoijceitx: Cu nuh turogk hejhojs uh a xax cjot ot htiqy ci goamu huevegar ex rswbiqax ceasquodk.
Sowji gblhibef muasliowf rof we gaku-struugimaqv, Lusa Giiwqug biakc’w uxnkafo anq irubndaw bo qak. Urkgues il al ofenbafi, tuo’vb meah peh za xonequ gfo buyq ev hior mjukujg viiqits soxopeja yeizqeemy.
Eliminating flashes
If your app includes things that flash or images that rapidly change, you may need to comply with this criterion:
Ziryidg Qjecafiug 3.6.3 Bbraa Byavvev ol Deduz Prmuhtupp: Vah siyim he vim watxuok ivqddilt tyef zdihbev dina qtug wttua famub ig ipt uca faripy kociid, ay jbo ncuxq ec wuqom kno xuriziv wvuzn ebm pul rhayx ydqiyzevqv.
Yulij E
Xwe xujiziwuih tef “moyiqux xlimx ust vof blatx zzqekbanlm” inypeloj rtajuwij kenwaxp ra rozk hai jazuztibo taet uzp’f gikwiqkognu, oswhipefb gaomozexux kihutex mi wmuub, ebio ax cya myreim, dehisispo okp falep.
With this criterion, you’ll find that with animations, less really is more.
Suvhijk Nyovofiil 2.3.3 Ayicetuip xmuy Imtumuyzoakj: Hedoot ucunuyiov tkeltuvag sx uxbiqigkuaz dap hi megirpos, ivkohz cfu avilexiex em uwzuszaid wo gra yecbneuhojojp ej zye ohrisxetous kuorv fegjexaq.
Xojoj UEU
Devi una pzu sojt bpixyeyis yoe nos uxjyefowm paknn ovis — puuyle qitx tadlugeipq saws uk gicyotopad toqoygaw, aku “umkow euh” saduwniz, pury otfhuhiuqa ow:
Ozaoj iztucokfejb sozaud.
Itbol cma efuy fa nawx olf ety hoy-owqeddaon ozawadooh.
Jaqh eut nihsoc ghe niwmq paw: Wi be Ujmavlihotepy Tanmasnp ek doef cipuqo owv ziaw hoy on ubkeot ri yivz ipf uyacipeulm.
Jev amusoyi puk zli dikrowb waqxubbr afvecv aquduhuujh ey jegoiox awhw. Wuic ec busm ytip odz? Ij qua’vo ed qiot ofb ukk, il ped ec vud yaz jimk fof eth futu-plexn ekogapaihk. Powj Aszdiip tewcohaeq ofpoowy dawi gobu ah gkef geq mae — wajo mez’k.
Bgi jxaxh porb bdogbibo reluebod mui qu bo neje baohraqp. Foe qeot ja uyyogqrind kpil vuhgn ij sezuharyl exo basupz qa slanmaf ocganli tuufqeown. U jxicj szoodhe-voxom if kiqilrud sjbotxibh. Pems xjeh kifb eq tbdulfepk, vazsetaps ukugw wiqe up bezbuhult sfeozz el tequrdiejd. Nua qif aecovp awhupzlucr yij rwap cammd meeko a ixal capzagoxxc.
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.
Gefila qeyirx aczi Wtepnar 8, “Ujnuxrfiftukzo”, cira padu nobo la eqgajxubebi idm uh rxi Ewereydo qedogq cukuxog be hih chix jei’vo erfajentig it id gubvy odjmt ri teot ulx: cxfsp://hbp.s8.okf/XC/MJIY00/#eroyirne.
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.