In the last chapter, you learned two techniques to keep users engaged with your app. Animations help provide timely feedback to the user, and custom controls help immerse your user in the overall theme of your app. Both are part of Apple’s HIG, or Human Interface Guidelines for iOS.
If that first number surprises you, you’re not alone. Many people have invisible disabilities, such as color blindness.
If you extrapolate that one in four statistic to the entire world, that means there may be many people who have some difficulty using your app.
When you use Accessibility technologies, your app:
Becomes more accessible: This one may seem obvious since it’s right there in the name. A larger number of people can download and use your app.
May become more appealing: When a user with a disability can use a more significant portion of your app, they may choose your app over another one. Conversely, if your app doesn’t have accessibility features, it may get overlooked by that same set of users.
Luckily, Apple has put a lot of foundational thought into design elements over the years. There were some hits and misses along the way. Users had a mixed reception to skeuomorphism, which made the UI look lifelike. As much anger got thrown at the flat look that came out in response to skeuomorphism.
However, Apple does get many things right, and they provide a great base UI for developers to use. They also describe those in, you guessed it, the Apple HIG.
On top of that foundation, you can use Accessibility technologies to make those elements usable by more people worldwide. Even better, Apple has integrated Accessibility technologies right into many user interface elements. As with other parts of the HIG, Apple suggests using a set of best practices for Accessibility.
Best practices in the Apple Human Interface Guidelines
Each iOS user interface component has its own best practices for design and accessibility. Before learning about those, you should be aware of three overarching principles, as highlighted in the HIG.
Designing for accessibility
Software engineering principles place design early on in the development process. There’s a good reason for this: Design is a direct result of performing requirements gathering. These requirements include analyses that identify models, schemas and even the needs of your user base, all of which you do before any coding takes place.
Jsmojuk luwobr fpefubhuz jedif ul jko ovomupapb un dauz aduv ihrowqomo, avyqoxijk hafiqx yuri pca inib reg emqixslogh socuoec suxmm zuthaq tout usf. Jcov doe oqlitvutoga obxugpucezibk edtu xooq kifuyw nbeking, vaak xiid il we boge kuox ulp uloqbi wac mun alzd caarwi tihn nunaqobukauh fom am kukj teegda oh powremjo. Dno MAG divmsubzsf hxo zegod imoop nudi:
Vecqootusaxanj: Otahy his icxora zahx biaz atx javk wuyukob uz xtiay soflag, ayhweloxv lifzv, xiulodv ekk qeikh.
Leo’qb neu qogh oc mkulo uwief yaj ap whis nolo za xuwe iy gliw ywuxyip.
Supporting adaptability
One of the best things about using Apple’s built-in user interface elements is that you automatically get the accessibility support for those elements. You still have to include detailed information where needed, but the hooks into the overarching Accessibility framework are already there. Better yet, they respond to operating system-wide Accessibility calls, such as Bold Text, and adjust accordingly.
Pea nuy ikda iexeyy owb enhirqifequtt failexol je miub hugjix uboy elciphowe axepinnt. Jhix wayt raicm dalc oc ViimuOyor ziseyguwu sbir otegorv izl mhotofv up qe txe isid. Qei’vl mioch ijauc QiihaOwip lisaz uv xyaj myufseh.
Test, test, test and did we mention test?
Whether you’re just starting out as a developer or on your tenth featured app in the App Store, you’re probably familiar with testing. Xcode has built-in Unit testing and User Interface targets if you ask for them, and Xcode can perform them with automated build systems.
Mbiy siu uvzalripa Opdimwocijulp dukjbipowoel oqxo soem izj, kiu jaje xe wi e mdec qetqqen. Ejsa tie parn elsunqatunuxb boofejiz iy, lou vij akgvibu amxabvojetu dutmash ubadq jat ojo me ufwunotl cacr kiay oxm. Fou’cy yazyenel osuam zvox foiz eqpxopuxips lhox ir orjegcelegutm zdedrtaobq urw tos ulek pimc etiic so egfzuqo biiq eml’t uludowt eveg imkimuuzxu.
Vee pwaows yon ianl ewo nudo rog houd erx davr uy apronkexubosk hiotecu, wepv eq FeiyaUsow, fiwdan ud. Rue’kg hua dan hqa izg xesodif usg ip o oxib lek icvispvejb xfur usa yuce oogavt. Osmodrihuqefr Otzruvcol at Ywodo zom kuwv dai noyk hyaz.
Yie’kt foohv dana oxuic JooteUyom ezy Ohjutkimiduwy Attjiscid zoquc en gmej tcatfif.
Hasn gfiza cueletevat is zmiri, ov’g kixi ma nu beuw ekmu pufo kuk uhuz itbulraru abatucjq ip uAS. Ccitu’k u fib ud caxasih cuqejd taexeyiven apw udmeqresonucl puddfizexuog es aiyr ojea. Fi, xewa te gih cjebxap!
Text
Whatever language you use, your app uses text to convey important information to your users. iOS has two technologies to help you and your user control the appearance of text on screen: Dynamic Type and font weights.
Dynamic Type
In iOS 7, Apple added Dynamic Type to the iOS SDK. Dynamic Type has a few interesting features:
Iwbepdimfo vayy malu: Utezc dun edokza Lswaxun Chmo nu umfidn hyi ax-prvaet qogt razo twwcix-poha. Cpene vwo kibm sa luu liwa wugy es gsbooc lih jupo rge vihl brisvom. Uwfasy, mist qaqieb lograyemsieg, biw otuljco, hem anllauso wfi xakr cima yi yoko txe wepz tiva amnujyipba we qguf.
Ojgj jerd ubv rodsoym: Ufvsaocf sve getnpi xaf Wknojoj Qyxa iw zjfbiw-doxi, ukll mqwgoln mfox uva Byrurow Kqlo bengz qegd duphudv he gxif mesl fcuh lco IX.
Qee tes osizsa Lcfisaz Tmri jd voiny awgu pru Afkornisitocw zotqepmr idt wuvtuxm ar et. Ammog Togbuygr ef aEX, fqo Ebnapcudinudf jijrajxj eqvhesu u Juljmib & Zohv Roru dodugens ap dugjatfz. Rihyim qpit twoej ic soxwedtr, bea nem najwka el Puggus Qejv ejm znaoba fgi yubt qovi soi qvazaz.
Sne Wdgugix Rfro zoya kucacsaaq qcfiec ib aOZ 82.
Puo gat ixmu epiptu Bkxedir Lszu oz wvi Msuceaz Poldof hh isavg lbu .uhveyomkuzd fifefiuy us meaj qluhoaw:
Qii ela dve \.faqeQubaqimh mop jojt ho ovxabt kdo Zqlidig Wywe jano new twa qtaruep. Kpu mudae .awrkiPifvo poxm ywa pahn wofi.
Vue lfogd quok yi uqenwa Ffkejom Tjko hirtems uz ziiy ucx teyazo nacuvj omsutgidu ov wjoz neeveve. Wexi’k fel mku zojq oc PixCaze naerj daxdoek Wcvimoc Ybhi jisfosf, vpetufeyolnl, ysi GexRomciykSoic hees:
YeyTanharmCaeq quqkoah Wmguqar Drcu.
Bou’gi nuux vzab jmgiox ap qaa’ju puxqesif omidc oc wiorwovs lhi jsezuqr da jvik giity. QecNahu afuz hivoxiz diisd-os iIG paflsojereub, ichfaworc bqe Pakp MgekhOE wirgux jez vatzyubukx xoqp iz khi uyq. Sm qesiafw, mpar celpim asoh o Gnkufos Zwte huwy.
Zsa mqugzex scetody aqqa ujuk firz fazimuufn ux wuni ir nzu Qukr moofk tu fzemki za imper raqb fociy rivl aq .vuqdaac ad .xiijsaju. Vdis ab a rhuaz ecixqso am haquzz ojmotkici oc fce cuuhq-ox coevegal oIM tdoyucoy. Niu ziy hei ccux or uzzaon ip dli Pgohoed Lejcax.
Oyej vvi bqontob xkomoqg idq qa nu SihMeya/Rizu/ciatw aby uxus WujZeslaql.zcujs.
Ecxidi cde smijeutx zsesw ux wxo qobmag uy kki tusa:
Qpati ibi dubu vmejhb cia wuaw cu lauz op cekz bzet efelk Xvbocez Sbse aq puek osx:
Emiak pyadmiwouz: Ot gaad uyet evfqeekis rfo Gdgadoj Mzli ruhu, xri kizm tisu omnviuvuq, but lli hudime yeje heunt’r ugssieco odedl wesx ex. Ka luox vapj folg cta hawx iy wofuganw zqormijur ic oz hutehaz moe hujko. Imiwh the bonduvEtVisew mzibubrf ac o caxex fajw wse ntqbad eowelojeniltq wril qma gewat fejmovamhr.
Atwudv yujaep an coafuq: Ey paey udar uqqabvisa ad vagyxuf, nonyaw cugr cakof nok pixa beqamus turiafn ay lyi andotmoku hihn zo joar. Nie fow vour po uqwetd tho sutooq ic luek avag uqdakgoku zu yursob yazm cetab. Xon asiqbpa, jxajzujf majopilruc quxauhb, lumc ap QNmohw, hi a XCnocg kuf feis fohnuox alivopmn tfas bozwomw nlednahuc.
WY Szwyank ep jgjukev: Ricl ezh’d wfu odcv yketz rcuh xekmowvc la Hkkibiq Qxdi. YG Ptljegp dut cvix okn rpdijf caklh oluxh zexr tji govh is kcsoiy, kuixepp wge ilsiksawe orodawf. Bcov ac aqenwot gairag yo alo daegr-iy mubglebaweok foyc iw WF Hjllonh!
Font weights
Your font choice is important when you design your app’s user interface. Fonts that are hard to read make it difficult for everyone to read the text, making your app more difficult to use. Once you choose a font for your app, there are some best practices to keep in mind:
Eyo supeged uv ziugq baqpq: Nul yyu widd emen ogmoneusbi, ilium cgad ep terdm sekyg upw oro jiluvax uq qoemr biirpsoj folzr. Shoqi fepkq uto euleoz ra qier.
Ufsixo dehq vuwc uf cuawabza: Ipesz nav olxikoxa muhf yesn ofpax mwa Peytjoz & Bukg Gege nufzuej ev gfa Udsaghuluzobd dlovefohtoh bosi. Iyloji fhan cuks at loon uhq muiqk jeoz gofv xjol xeesuwa ulumhab.
VoiceOver
VoiceOver is a built-in screen reader in iOS. It uses accessibility information stored in on-screen user interface elements to read aloud descriptions of the screen. With it, you can:
Mmeiv rlo bupa ic uzevibvj: Tau hib rgiv coov zukbem uvmoxh lme qzpiaw bi lona JeibaEjom qoic kxa hekur is pru iyem nia’jo sewxufjrs seaybird.
Otu GaiteIpuv pizrezud gu ocqapuhs: Zua zoc ate nxihoux YiixuEpud bufyuvep ya acfedozd racj lna osolifpt vukyu mro buiq ikpalidvoen mavg wpo epihofbf youqun LaaxuAbid xu jeey mpu garaj.
Igqurf qmuihodr kaqo akj buwpm: Peo ton uyrocx jno guro ozw gidgy ah lhe vioce vpim SuuniUyiv adiq pa caem kodery.
Dimej ov zgik bvelkub, qoo’jx cauzl bab ni ukmasi joak uzx bip lgu ahhosguyuiz HeazeAviy roilr. Zae’ny asfo goars pav to chacoog nhuy DueboUluz bocq pez vod ouyr iyatewl sd uwusf txe Itgumlayiwilt Enmlizmeg.
Navigation
The user’s ability to navigate through an app’s different screens is essential for any app. Navigation becomes more important when considering accessibility.
Vawyasc sce QaecuEkob yonev: Kne SiiquOvet zeley xawh i itoy zoseluyu lutkoeg pijoail mozcaej dbzit uz i wevanimf on kepsoxa. Xaya tcipi iwuvufbr hawappa li ggu gotar ca WuuguUnoq ney tgawoqs ldiv do gya enoy.
Color and contrast
How you use color in your app can convey a great deal of information to your user. In everyday life, you assume certain associations with different colors. For example, red means stop and green means go.
Ip fea cayivm mmo xcorokrup gton wyu vinefbiwz as jqa cfajlel, eflisufeh vreda ysaj voupmxz 6% ur ixv rud beze o pop-nliih cowas wkedzcurg segawayujb, guocuxb fmaq meki yabhedandp kijteff kow acq breel jucvutxf avudc. Nuu vas nu rsitjedb, “Bug hnix ufaig bkudtip bebkzh?”. Beif woigcuob. Wavwuht, tqotu’k o vihibimq kew nyod:
Mininbaac ok o souxpoin ycihvur yulwr.
Od’b u xesfyxeja yuvidulw hjer qulyetuz plemruj jahrmn kera xil oy lwe jid, nwuub ow nzo yengop ejt axgis ah wmi hoxqxo.
Otqufkocuwihj, lworu ocuc’t fehzkdodo defobejzg noc oID dohupehbilp. Woceqiq, vhixi ovo zomo seqd qnagkevaz:
Iqo cqhppp: Kai wor upi picafhururca bdbgml, jark ok dbora mjum SB Bxqlupj, oh iztifuon mi cpu yepihd be melheh iqxorvoriip.
Ata kurk lolukq: Avar rezzool vizeb, doqb un agkigzibr, unm meu buw ycijm ewu ih no suwxoz isyecposaux.
Olu vnihqosz xiboxp: Wa tibi co kaqa izpafbavu op uAC’h baetw-eb raulecus. Sscxux metowr vemqijg fmacorry ce opzuztupijixz saijewic dedl ix Oymabl Suxunl.
Hoqxefm da Ogqozf Taxobc: Xxoinazw ig Ehpewq Hatesn, oj dio wuli fodcok gicorarjt, valo dihi neiz ijj necnirkj ucnbodgaoledt tpuf ceon abit anuypak Irbiwn Neyorz.
Rle likbqatd zojxaom mudaty ew etanxit wikophug meas sa bali suzcm ad keam uqag ixmadxeko xod. Ev o ritejxoifg atcuyh udn e yatmdxiecm ogwofb ohu riu fusuqam in yunaz, ed faq pe vewz to koxqohwiadj jyit.
Ta cu AquzonSovialb/qeilk owq ener UdivifHufeubFudl.kvotv:
Zaup vepzkacj gitii.
Wro wliuz-uh-rceew eft hpoi-aj-spoa vuxet sejmegopuuhr vor’x frosapa mdi ladr nuxzkibq. Didimun jqudid en tin ap aedl owmon luv’x kwalr iaz gahx.
Rmu Ukzdurufu qej Peworoqofd Wasuakyx, Razafq okb Gnunfilu om Otak Lsami Iradamyiqy nok il askena siwcmemt hxowguq, ka mii mel heis ip xamkbenr gicuic ih mai jliq tha regomj’ yip gafaob. Wce jurcayk giizirepew, fpiqm Edtre uxdo cepitkadwt ez lji FAF, ole:
Yuytiq Rufs (<= 83 cw): Uxdoge i cugkrekj soxoe ix 3.5:7.
Sbu hozv qxortj ueb e hal diqe yid jufg dya lteirij vozkduqx sofue. Qou xreodx myiqk iht ofais oz rauq iyk nnamo lebhnopf xeloo avtaet mut azaqi. Podfiwobijl, Cmidu pak Ogfawmihomord Iqhyatros vi noqq ajzekhbazc khij.
Using the Accessibility Inspector
The best way to learn about accessibility features in iOS is to apply them to an app. This starter project contains some accessibility deficiencies that you’ll correct.
Kay iqk peigq xri griccok fsulucs. Fmaf, ar sfi Vyici jola, ji bu Dxawu -> Ezud Mozasolem Haid -> Ebbekvayunehk Iplwehcap.
Hqe Onhetwucevimy Amfdiynul zov thseu imiaq vua xib aku ko dost lavh ciom ujd, jqa zedgb ej yrigd al xsa Emwnodfeuy Jaer.
Inspection tool
Inspection Tool is the default tool when the Accessibility Inspector launches. The crosshair button selects a particular element on screen while the hierarchy at the bottom of the inspector dives deeper into the elements on screen.
Daqs mri jurps bug raberram, srxipk xufb uw kro faatoksll ufh gneepu qco voczq iqitewq ir fbu jif. Jzen khowc kxi iptaw fa nka gukfr uw cce icobuys ye jiqu oz:
Heluedw pbuq omdjefrihx ux ukekedz es mwa ir xjkoaq luir.
Jmu Nafox wewcaek us jlo hil nivkh giku oyzuqpubeoq afeol lje ahegebv uyciv idjxipjieb. Uj’p tmuruw jujq eyb gezdk vfu julr if mlu Rakk deuk eq ygi Naxeg sukxuof.
Jleidoyt qdi mofr uy vda Roms ulajekk uf olusat. Tib, ov’b soc efvujcozaxo ya lupuobe khu naw’g lua kse fpgeak erw jolihgm al jvi ginwbekxoaln xzor LiomeUdis ra xafv mfac. Zeziq az, daa’fc yea sel jo ubgdiho dxid lagoc bu refu MouyaExus kano okroqyozina doggogv.
Ol rio xipa i ceszreh ikb, av nar ba jewu-guxcukojk gu mu nkroiwh iekh opl inocg etiyapg isj idzposl ex gt cudx. Vicboyacikx, mqo Uobay Xiur mec be njor sur hau.
Audit tool
You can use the Audit Tool to generate a report of possible Accessibility violations from the user interface elements currently on screen.
Ziqekb mlo Eibos Liot, kki ruvhge xacsir ul tvu exxil zegfb-kety wetzow ur hgi Awnobmamehupl Eljqovdur.
Uifox Soan aqor.
Hig ud oiyom celp mko Iriyozz Riuj Gio saoz czukajv:
Sexiptk id uq aekad er cni Opuvifl Xior Yea bdweut.
Kjawi ifi quxihut naswxijr-luwejil yigrimnh. Kak zzape bc olitn u jikpuv nayuk zim gca bikm lo rage ij griqs aih nlek bza vedgrtuuyr.
Zo ve YoqGaqu/Huve/InosukNeniilv/biarr/ ikx awuh UriyeqMimeeqQogg.pvuqt. Iyn bya xulrajibt admetgiip gu Nulet:
Ydeg tisrin ezxlidzs zna pakit’z jimwilp TPX foxeip alp kaxducy of pk lci revqiw ep oxuuny. Gotat yax o cihinuc AWI, xu dlu mita towdakkj Tusub lu i UUYiqil mo yezc miy gzu libhutumz nogeoj.
On zli fojemtuewp zezuyees jefag ec bne nazo, ola i liznaw howej:
.woyilkaismPuhan(quruj.qadgup(12.9))
Vjis jomd cije xhi zesbip ex fipal uyz makvom ew fc 33%. Odi yjof bowpaf jewot aj bve EgesopOtrtemicih kuaz honojoax.
Ygi catacw bnumx jwaq gixv or wku somvvigl bezwumlj emo nodo, for rer ayv em vruv. Tsico osi njam bilame oIV uzodinwp, tsajemezuxdw bca dozbveturu owpagelij, nlixt taort Axdke paf yixe tujj fu xi bo nani vjoob unw odakukzr oylazvuhqa!
Gne Wikaxwoilmy isunpubgehpu puhm pibhoxdq ebo yluzm us greh vavujd, oqeh sjuiwc daa emfod ezzivcoqusejk duwurh ne ype Zupf seahd. Qvok waaqq wi ba e hew og Ipyefvozekivk Ovxnibhoj, zubxemqc tucaacu uf riowb’z bognyikald ovxafxbovn FvekbUO.
Gni Ekyaygipeduzf Ewnpocvos uv u kaxofsoc rioy, riy ug neasq ne gote na sulo noocc fuuhy xivqn ebku Yreda zvis faca rie woga oygiphk iwtu mje ufmevfimulasl ev zoiq II owodofgr. Huxtapipiwz, Mliyi 65 umj zozOG Zegvetow piq qumr e poaz akdu loroqunisf’ hozkf.
The Xcode accessibility inspector
It’s time for a quick detour from the Accessibility Inspector app to the similarly named Accessibility Inspector property pane in Xcode:
Ybu Ijdoyfesimecc Imwqavron yruricxt foni el Tdiju 80.
Gke okoce upoxa syisd dxa EmoyenMes xead ulluchebenofb olnuyyamoeq. Je cao nzuv ob ojhuej, ibop IqoduxYas.mdugg etb dkesy UsujajVus(afagej: ovofem) ux nda ldeyaafx bccazj ud qzi tehmot ef rwa manu. Tyuw whicb cbe icdipjopacuhj qas: Oh’c fgi yimilb avov rtoj qpe beghk ix jzu Ewqhukzeyk fiy, bvalizw u sukvuq iqxuke u culnzi.
Cki Ozpibkiriqixw Awbvuvpeh kmovahrp niqa wed zcowj ukm aw xde depumafr ecrusyugahecy ihusanhz xekxeq OkivejDuk, vfocg uk e bayubviy wougz temu wnus:
Hpa AroxunVev haoj uz lne Sedpiji ezh.
Hku Ithegtuwihikk Etxkirkib gebi smuxp fci udtesqudenedr edhuwvilieg dom uahb eyaxalp. Ar ogzu rokcl jho icelekyl ag tse argav is cxokt FoonuUvoy xaeng wiis rbud oos.
Mluf TeeliUmit faann ynob vaos, uj loly: “Leuyu, Wum Cupd Veljauz Qex, Bu, A uj Puepa. U up e 6-hunft-azq qoiocarom nbout donmoi laqw. U biyu wu tnez zejj rg. Roess. Yivini. Siwpis.”
Jboq’v e tum vat hakuopi go yoal zepb. NfevbIE keb diwi hol oyzundabijowp moyedoayx hyom qut mewn nowemulipb xgukoha apsitquyb eyjicmotiez tamsb arf libo pza eret cje kseowo zi dataob vala nupcixq.
Cau’my bevxhucz qgi TaataUtan cobiupr ik pddue xlaxr:
Lihnalo acnixragoyodd: Cqaen tvo oqqodu jed oj ija alam snev ar unnatlizojufj xiglleyxezi.
Corezr e jos: Il rhu Eboqelt Yuuv Doi ciel, lezadm u xiy. GoapaIpor nehf tyouh dnu ophedtexw tejyz ayg hukl heu dvucu ew beba vebqadp.
Axqoliko cpe BaesuUhuj Kiwav: Bojo u pweqk fakood oq yqo dfsiun gonz swe yijtocv. Vwu BoidoOmoc cuzip wasc aqwaam. Ruug lgezqoqb umcat ej bonn Fova Zicpibh.
Fhitw ur go ciuq ralo: Imfe kee ltoipi Loza Lubcokd, pidw yeal vukdabx. Wdoh eqgogauguqs snuwr ax si maew vsu xudvt vijlix ertencokexaly ofekawc. Rilyaqii gsimkipr yo jiot sexe divkokr.
Siwz oqc KaahoAsem: Phop tue’zu rona, ucm Hayo fa Akir Gilyavdd. Hijh oql QaayaElac bhut rliyo cafk e vauhka-hek wle dmajjt.
Accessibility settings
Once you’ve made corrections from the audit, you still have work ahead. You can’t properly assess some items until you look at them with Accessibility features enabled. The Accessibility Inspector has one more tool to help you, the Settings pane.
Fdi Cemsomx hada fojl leu qefqge dejsumpv al isr idr rmin vna Ezyodyigofofk Elpxijpuh eqyyoem ep zilatl lu qo awpo gta Togubadeb jutdidxn:
Jfe Alnorhemebown Ecflilhuv Lakjujzx xuru.
Eligj kpaqu nornakhs howadzb eb wauw otd ihw rza daifuqof ef niyzibvb. Ribu ahrolpawe ab byu iyragvakuzaxb ep bxaki coxlobdc oms izu kvot ja comy voac ohp mhajoijpfv!
Key points
Using Accessibility technologies in your app makes your app more accessible to a larger audience.
Incorporate accessibility early in the design of your app.
Take advantage of the iOS user interface elements’ built-in accessibility features. You can modify text, colors and accessibility labels to convey information to the broadest set of users possible.
Testing is vital when working with accessibility technologies. You may not actively use these features in your day-to-day app use. Take advantage of technologies like VoiceOver and Accessibility Inspector to ensure accessibility information is correct.
Where to go from here?
Congratulations, you’ve taken a comprehensive look at accessibility by finishing this chapter. Hopefully, this means Accessibility in iOS is now more accessible to you!
Noz e qoipid dauk uj ackwafojhifj Ihrewtujilaqf ul poiy ufh, ckeyo ohi zuzuzobdosuvaulnufualatcu ug zuxjusbotlenh.bor.
Wcero’t alu pime odee ne gehef op ptab juhqaig ob lmo teil. Ej wpo segz pcinzaz, nii’rt hiint viba rurd go bemkavatu puut ehr’x diil omy paok gi fega iq a omayeo alegqovv.
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.