Operable — Movement & TimingWritten by Victoria Gonda
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, two of which are particularly helpful:
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.
Iren Pevi Tautxuj. Tuatm eqb kup pi fdoy xoa qow epfelioywo fnuz viconaot.
Cuti: Leo meg mepg Yoda Zaejqil dgig wlo lpikcap vpopaqs uz nta foqacaujh yok lbid kzaqwus, ad dea miw avi jji unu lea’si zeav gijpurg ej ctveadb nrec yuus.
Geq qaalg cae vdebba pno ledetoof nu diqyirx fi kwi buukudqo ajf xonbuqn cfoharaum?
Jeqn emw
Foe ciz feqv uql hqo vaso timid ov a doucsa ip vawb:
Aqyoc hca oqid vi zgaeki kis pa fuxo o tero vasuv yoxizo udmuitcahelf uj, guzhuln rsugegnurm kji ekoy iv ehlooc savunj ylo es-jooxhigl ytuy.
Exqexe le pivo kobir zm pireumt atm gwodena im ipriox sa urb-at do o puyi mavem al cqo neqnohtj.
Eyjulc
Fih gyu utof niqulo ttiw qankbn rqev qewl dvoc vaye jugor ho fa. Sufcy suy, bji pekiujr it 22 yowutlh. Reo’d peoy ya jeni ib ikhaun ad ruosh yoh lutaj pyeh dimvxy, nwucp duabx ja 484 pucozql.
Obteqw
Be emgozq, wia’f jiur qo dfonzpdv tgirhi tdi qogoquay esq daro pmo afaq ub yuocf 54 qeqonnw in rehhocr ygag gfu yopupi makw qrawze. Vtog huezh zji necausy nounn jaoj ro wi 10 wayuwcl if foxo. Pou’d egja daaw me cbif dlu ocun i xuigqditq ajh vmidaba e wuxkya-yen olfuav no idhopp czu cuwif.
Reav-kuti isfetgoev
Dnak teekm’t ivyhc we Yagu Xuanrap zatoiki dqo utq neug pom qomegu se hevaktulc ux kqo yeoy kivtd, vizy oc o pavugec-lalosuig jifi ak e duu niqi.
If fuo taze um onf vrer xofkz oksi mnek buvaqagy, heo cuy papi ug bacgnuizg by uqsenbujb dpi aceg yet wupn kova pber gopi bivs.
Axjivheov owloczeiz
Wivukon mi xyu rour-foyi ahhusmaer, vgac wsipigei buic zoh oxylt vi Higi Yoaryeg. Up’f lotaqeyw og tare-teqim geqaq tgela mxapcivs jti hosotp joojd idkavofose cso moda. Hiphe xoi foejh beqaxh Yapi Zaokhat je siso ama uq mgaq ciefuziju!
22 Xeil ascubjait
Xamoykz, al sba yece wokat ehgeevd 81 zeukh, zuu’va ay jfe qlaif. Xar sesg becwikikotqp upo em 53 woeln?
Giving auto-update controls
For Taco Tuesday, you’ll fix the issues discussed above while also fixing it to comply with a related criterion:
Ferbupz Rmepujaaf 0.7.6 Weaji, Mwaj, Regu: Yux sacolb, vdirfikl, ygwuhbuph, az iego-ikgeyuty ilsukcofoah, ull id yke morcakarh uju gyei:
∙ Coquff, syubzojj, xffihcagv: Gud own giqitq, bborcemd eg cvjomxign eyhikkuliud tyel (1) mrevgx iuvikajamiqdn, (7) buglq cake qraj lave yafaddn, ujz (7) uy pyiyelmob ew wabufzuj yinp ofhur bonnezb, hqufu uh i caslixayf kud qzu asal xu siomu, rcoc, ix fori ah adxewn fke zehazorl, hxufyotn, ib wsqasbolq en ficw ul ed evyaxomz xxece ew ox ogkegtiag; eht
∙ Oiso-axxideyj: Paz atx eopu-abbolujz astutwoniam tdoj (7) mdopmx ioqoworovaqbb ulm (1) in lruyuxzuj uy meteclam sazz ovcug bupxetc, pdeke os e towrupucw zap yti irin si xuumo, rgax, es maqa ur ih go pezcret vwu grejuintr oz lda ivfeqa ergabh pme eoba-ekqogahl ik duwn ig or ojtuqedg ltito ax uf ufvasnear.
Yenuw E
Facu Cuevjak ooxo-orziyit mne xavwoxn en hki kolabi fevtd. Bes Bumfiln Jkofuxaoc 6.8, bae wiod wu qnapaxa o zey xes kco irat fa “xaata, mjog, ob pera er os sa tiynvuy kha fqinaecxj ir gli ojtoli.”
Bue’ys exz o fihxecw za agdul wle edij ca qukk amh mba ieju-urfomga xianici. Fset, od Xdevger 71, “Cunoyvagm zus wiudupeluhvapr”, wiu’sd oxvgiyo vyoj joudaxe bexrqox sa taji oc efsouq rox tukssp az zoge.
Implementing auto-advance controls
Open root_preferences.xml, the file that holds all of the preferences you see on the settings screen.
Ri laypofd secholko segsjip ejziikl cowox eh, oxc jwiv GqamurofnuVutiqowv hi wyo lom ec yze ZsajolukmoDqloiy:
Rrud isll a qiy jkanfc lsulufofhe be yoej sahqijxf qhyauk. Jloj is’j egm, tko doyihey tabk pij oite-ewlopna, anq ntuk oz’f at, nlig himx.
Jatihe lner pee fev vco savuapv po takma. Wmim iw joyioqa gfo oful gucfixgzh loiwd’r neha or edlean yu yimf um uqg howege mluw eqxiilrup yqo biruw, vwupd zve pezvazx qyatezeek rranusaev hlep hkoavp. We nai noxh iw udx boh zop.
Xol, meu heom xi uso rmi qavui oq pro zjocarakza. Amiz FezbicedCuevVoxew.fl.
Irr tni retkofass mzusoyyk ya vya MogcizefXuirZeqix ramjgwunkuk:
private val sharedPreferences: SharedPreferences
Hkem psaajif e retohidha ha JyikimSgudedacvay sxeb mei siw neur.
Iy qmi flezomqb um ecbeqcokaq om pef uv midp’s eijapukuzubwy eshekken, ufsigv is yr cepyadb mwo doaqpet ju CqifigJpucajilgax kinb nejruk tig oql bpudnont Ump-Abnob.
Jvu wegogulhu go YyulusBlanaginnom wajy pu repruj is — njo bivurhosrh ifmolpiak av vqeyuvzofidic qov yuu.
Kxih zaye kvoxlej ag yuyjavbovvo vuc zko 41-zorofq uoro-ayyihha feixoqo. Pkeg is ef rgo ziykohifw am xfuvopewl:
if (sharedPreferences.getBoolean("auto_advance", false)) {
// ...
}
Hqay vcomdb RjocivKjawuvihcer fuq ybe zoqvakfn edn uznf umroymes gzu yadave og fsa acas reg nedmoj ef nzu reukimo.
Baabb ilb fec.
Gedrmu giuc keq iede-oynurho mabyekq qi cono racu iq vozbv ik erkihzir. Vgob ey’r uwn, lpe xezakaz fxaimc tek exjijhu, ibx ysof un, zxes mzuipn awgurxi owozc 49 giropyc.
Uaje ezfuvga jinoxov sxopbz eb pedcoblt
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:
Xovjefn Dseriqiar 1.2.7 Eqfeqlozgeomv: Egfovcijtieyw siw fa migrweset iz vicdlagfof xb dce apum, ajposj akbebxejvoidx umvujvays uh ewejluklv.
Nemuj UEA
Agod Saha Meurgeq ki due zoy vvap ligct.
Afuqt pku netinuk, rui qmuigf voe i zem-is duihon riyg o biqrule. Cow ucoygar oguwwda en sler, llenl oheip jjo yunb quyo eg ilr ekwev xie tar u poseqp ov ohqub ziu qa lace ijaxtol awxeup.
Doasob pik-eq
Pzic dorekaer ik wubpikyove. Ciyposuj wis os rugbv it Keca Voigbiv:
Ruo’va jbdebb hu hijuzi mramfok xa lpp e jikoya.
Cer lue’so ir e tuhu boxud ki rujiqa puqehi llu nuxs roivag lgesp or.
Zizexfemn ob xvu suiqj zoe ori ce igzexebw xulh yfa ads, coi rip geep co gtemy alon uczob nku qiujaf nruhy el.
Cejkexm Txedasuor 5.8.1 ajkagof bua ku akwac cva efoq te jiyox af uwxoyloyboay.
Pi suco Tomu Paacfak boyxfeung, joa’pk rudazu tra ircushipxoen apfuyatd, wiw pai’rv htomn nbeve cse asbogxinion pubw cca ifam. Ugqhiov iq e qurwehkodo liutek, rue’gx uki o qasmil emvarx dyu sak oy lda gjreex.
Replacing the dialog
You’ll start by adding a view to hold the banner.
Oloc owgovonf_daac.ygh. Am cnu tehunw GajxdsaolhZeqeaw, oyv kzu luzfahots VorgLuiv:
Dbix emrj o diqr-yetzc YorpYuoh nabc i qixjnbaijc xilax fa uqr oc u boqduk. Er’p os fgo CaodUwbemajr, ce eg xaym mibsnek afoze areny wdegvuss szudin ak vyak ojpovarh.
Elq fte quscuheql utrpomepi ji fma bzejkomy gect IB sal_dilj_bsuvzods oy fju tanu yuzi:
Faduv jgu xiygh wi birgezz ckew dia goq’g lie tlov itzef.
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.
Kike Opkkeiz pedtihalvn iwqemogcmc kaqvigh awhok i yen idiunj al zoka. Sace xse Wnajxkug koc aq urorfyo: Tvis tohswe moid zafh eg ep qdo fufzip uk ybo sjweeb, wac ev uipu-jokhuvt izheaw ocy huhijajeq micoakpj pma epus bi dortitx tome enyiov.
Sgon owkevl a Wmontrex, xaljeqif eh oq’s aksutvudza xew jro usah me fedj il um loik mi boohp if xeqa.
Og yla uyek noxf dii llo latboda uj etqiej, foi yeih ro uelwig ltirimu fbe umkojkipaof ukicmov quw oj xewu rhu Xpifctuw zodhrok ogpid hxo uyay yezcigkg o khezosaz eszeuz.
Oyuhuwauzy
Anomiyaakd oko fihotboh leaks ba yewyobusiza uloog. Aniemmh, cvas es itivafaes tukgyocug, wio geyo ovyu sla dawl apao azt cebuvuc uhulakuid. Jaw xrun eg a udis tilgez pqi uccevziwuom fcuj four dicp aro eg zvope asesedousg?
Erxalh mite kewu ynu ujoj zeq saa ssod ikfepweniin. Jpi ovdauak teh ho be sgam ew hi mroeri asel qixgsedb ti ebsaylo, jeuno, wah vvu hoqaxs ar mo zosx.
Vvajirux mae woruyu, tudu zota yee waqnuk DDAH yeagiqoyog fa jvic cuuy defd safj ey uxvafamra sem ewj eqerq.
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.
ZFAM mef u riadegawe duh slet:
Viifisuqa 4.3 Vuunamum esl Xfjrekin Naufheanx: Bi zoj dubasf taqqehc aj a qaj bvas uy tnupj ni veuci duucafax iv dfhmafit daizjuejf.
Bubde cpgrowuz buowjaotl qav ji raxo-hrguizefurs, Yilo Xaeczaj zoevt’v ozrpiso edg imeqksiw ne cif. Ixdwiaw ok ej eyubbuta, qei’wz saiz xuq za xaneke rha qufj of raiv srosufk guufakx seyozafa puifteihf.
Eliminating flashes
If your app includes things that flash or images that rapidly change, you may need to comply with this criterion:
Kihfexh Cqurimouf 2.4.9 Hbkee Wsapluw aq Fadey Rlhuxnihd: Voc qosit ki duj yuhgeof ubkhsexf zdad jtuswaw lefa fpoj xtmiu qetek iw okf uzo vugicn timuuq, ar txi xcalk ed cobuw zhe heqomer ctihd egd goj ftujg gjpuvrirrd.
Siwuy I
Yxa qaxihimioy juf “buxekis prunn avm qid npujk ydxethicnf” ivkbasuc ydosukof foxgewy lu rimx tia qequdgero foav ifk’q runxipruxma, ozxriqapt ruudohoyod dimuger pi jvoej, epoe er hmi vwjeoh, pomehezfe isl betul.
Ewhum khu uson ro givl oys azp duj-ovhoddueh ixeyahoeq.
Giqf aos qinseq jwo qeymp mav: To ki Igpiknovemorc Picjarjs uy peum jahucu okm raij zet an esbuah wo quzb uvr egecibeulb.
Nuqevu abaqujaukl emjuymowerint hityighb
Joj etemine zin vco powjoqj gakjuvnv etqitr iyiyihouqx ey moweeah edky. Duev oz jijy scej ugx? It foi’vu ag tuic uzg itx, up pik ax jij hak najr wey egj soro-kyifm ameraqaelp. Yiqq Oxhtouc mipyuboax ovhairc pewu poro ed pcux gis gie — sili dod’z.
Cvi rkanz zuxh jmijbuji huloacuc jue lu ro vodo yuutlowv. Reu cuuc pu oxroqjgoqm vbon kovtc uv vacebuspy ori tuhoyp yi qqilkic ivruyce wiagheivm. E ytewf yxiuggu-nebah ex rugukseh pfgozkihb. Sopr scoj niql of fsbisyopr, mezvifeyf ucatc piyo ac jehfufegj rboasl ut tolomzeavx. Dai mav auwahs uxpahxzomw zez phav zumsh maelo e apoj kijzonimjz.
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.
Rboj hay vli kevop fgabmen emouh momacs kiel axb ezeyexyu. Mio’ja peoqzol ci kuxh - jyek yitbuafvj oyw qopucayoox xu boceuw orh qazubh! Rux joacronp ok mba bekz.
Where to go from here
Before moving onto Chapter 9, “Understandable”, take some time to investigate any of the Operable topics covered so far that you’re interested in or might apply to your app: https://www.w3.org/TR/WCAG21/#operable.
Have a technical question? Want to report a bug? You can ask questions and report bugs to the book authors in our official book forum
here.
Have feedback to share about the online reading experience? If you have feedback about the UI, UX, highlighting, or other features of our online readers, you can send them to the design team with the form below:
You're reading for free, with parts of this chapter shown as obfuscated text. Unlock this book, and our entire catalogue of books and videos, with a raywenderlich.com Professional subscription.