Patarimai

interneto projektų apžvalga, sprendimai, technologijos

Patarimai

Projektuojant tinklapių vartotojo interfeisą, dažniai tenka apmąstyti, kur geriausia įterpti navigacijos ar valdymo elementus. Konkrečiu atveju pabandysiu papasakoti apie elementų įterpimą tekstinio turinio atžvilgiu, pvz.: naujienos straipsnio, produkto aprašymo arba tiesiog blogo įrašo.
Ankstesniame straipsnyje apie Fitt‘o taisyklę pasakojau, kad kuo veiksmas yra paprastesnis ir jam sugaištama mažiau lauko, tuo labiau vartotojai jį yra linkę atlikti.

Tyrimas

Nesenai atlikau mini-tyrimą (apklausą), kurios esmė buvo išsiaiškinti, kur vartotojai laiko pelės kursorių, kai skaito tekstą. Šis tyrimas remiasi tuo, jog vartotojai skaitydami tekstą, nevalingai įgauna įprotį laikyti kursoriu tam tikroje vietoje ar varinėti jį palei skaitomą tekstą (Remiantis popieriuje atspausdinto teksto modeliu).
Apklausos klausimas skambėjo taip: „Kai skaitai turinį interneto naršyklėje, kurioje teksto pusėje paprastai laikai pelės kursorių?“, o štai rezultatai yra tokie:
survey_results
Rezultatuose matoma, jog daugiau nei pusė vartotojų atsakė, jog kursorių paprastai laiko dešinėje pusėje – tai yra logiška, nes dešinėje pusėje yra pateikiamas scrollbar‘as puslapio pozicijos valdymui, be to dauguma žmonių yra dešiniarankiai.
Ant paties teksto kursorių laiko apie trečdalis žmonių, kaip ir minėjau aukščiau, tai siejasi su realaus pasaulio, knygos skaitymo modeliu, kai pirštu vedame per skaitomą tekstą. Tuo tarpu, tų kurie skaitomą tekstą pasižymi yra palyginti mažai, nors tokia praktika padeda sukoncentruoti dėmesį į skaitomą teksto dalį. Galbūt to priežastis yra tai, kad pagal nutylėjimą pažymėtas tekstas įgyja invertuotas fono ir teksto spalvas ir taip yra sudaromas „akį pjaunantis“ aukštas kontrastingumas, kurį tiesiog nemalonu skaityti.
Kairėje pusėje laikančių kursorių yra apie 10%, o tai sutampa su kairiarankių santykiu (8-15% pasaulio populiacijos yra kairiarankiai)

Praktika

Remiantis tokiais rezultatais ir bendromis informacinio dizaino taisyklėmis galima sudaryti kelis dėsnius, kuriuos įmanoma pritaikyti projektuojant vartotojo interfeisą:

  • Palikti tarpą, laisvos vietos puslapio kraštuose, kad vartotojas turėtų kur „laikyti“ kursorių, kai skaito tekstą ir nevalingai nepaspaustų kokių nors aktyvių elementų – Geriausiai tinka taikyti 960px puslapių šabloną.

Clipboard06

  • Kita vertus, jeigu dešinėje pusėje yra išdėliotos reklaminės pozicijos (banneriai) – nevalingi/valingi paspaudimai tik į nauda tinklapio savininkams, tačiau vartotojui – tai yra nepatogumas.

Clipboard08

  • Pateikti vartotojui navigacinius komponentus, bei kvietimus imtis veiksmų (call for action) dešinėje tinklapio pusėje, kad vartotojui būtų patogu juos paspausti ir jis baigęs skaityti tekstą nepaliktų tinklapio, o turėtų savo veiksmų tęstinumą.
    Pvz.: patogus sprendimas yra įgyvendintas tinklapyje www.thenextweb.com: ten baigus skaityti straipsnį, apačioje, dešinėje su animacija išvažiuoja blokelis, kviečiantis paskaityti ankstesnį straipsnį, tokia pačia tema (aš asmeniškai ant jo dažai užkimbu ir paspaudžiu ant nuorodos į kitą straipsnį)

Clipboard02

  • Sukurti teksto pažymėjimo stilių, kad jis nebūtų toks priešiškas vartotojui. Tai galima padaryti su CSS pseudo-klase :selection, o jeigu dar panaudojus javascript, būtų galima padaryti, jog skaitomo paragrafo stilius pasižymėtu automatiškai pagal dešinėje esančio kursoriaus  poziciją (Žinoma tokia funkcija kai kuriuos vartotojus gali erzinti, todėl turėtų būti galimybė ją išjungti)
  • Padaryti funkcija, kuri invertuotų puslapio struktūrą horizontaliai. Taip vartotojas visada galėtų pasirinkti kokia struktūra jam labiausiai patinka – pvz.: „sidebar“ blokas dešinėje ar kairėje.

Tai tik keli iš praktiniai patarimai paremti vartotojų veiksmų dėsningumu. Jeigu žinote daugiau variantų kur galima pritaikyti šiuos dėsningumus – pakomentuokite :)

Fitt’o taisyklė

Autorius: Petras 2010 12 15, TrečiadienisKategorijos: Patarimai, Vartotojo interfeisas

Fitt’o taisyklė tai – žmogaus / kompiuterio sąsajos modelis, kuris apibrėžia, kiek maždaug vartotojui trunka laiko, nusigauti nuo pradinio taško ekrane iki tam tikro tikslo naudojantis manipuliatoriumi (mūsų atveju: lietimui jautriais paviršiais arba pele).

Fitt’o taisyklė yra apibrėžiama matematine formule:

e7e6cee6e7664d150f8db606c7f6fc02

T – vidutinis laikas nukakti nuo pradinio taško iki tikslo.
a – aplinkos užsikrovimo greitis, matuojant nuo tada, kai vartotojas inicijuoja aplinką iki tada, kai jis gali pradėti daryti veiksmą (mūsų atveju, tai yra puslapio užsikrovimo greitis.)
b – reiškia būdingą prietaiso greitį (mūsų atveju šis parametras gali būti proporcingas vartotojo nustatytam pelės jautrumui – sensitivity)
D – atstumas nuo pradinio taško iki tikslo (Galima matuoti jį pikseliais, pasitelkiant Pitagoro teoremą :) )
W – yra tikslo plotis, matuojamas išilgai pelės kursoriaus judėjimo krypties (Taip past matuojamas pikseliais)

Iš lygties aiškiai matosi tokia tendencija: Kuo tikslas yra mažesnis ir kuo toliau – tuo į jį sunkiau nukakti ir atvirkščiai.
Dabar prisiminkime vieną iš UX matavimo vienetų, tai – laikas skirtas užduočiai įvykdyti. Kuo trumpesnis laikas įvykdyti užduočiai, tuo labiau vartotojas yra motyvuotas ją įvykdyti ir tuo labiau jis yra linkęs vykdyti tą užduotį.

Kur šią taisyklę galima pritaikyti?

Šios taisyklės esmė yra paprasta – kuo labiau Mygtukas yra vartotojui po ranka, tuo labiau jis yra linkę jį paspausti. Pateiksiu realių pavyzdžių, kur tai galėtų būti naudinga:

  • Prekių “Dėjimo į krepšelį” mygtukus pateikti prekių puslapio viršuje – kad atsidarius puslapį, mygtukas iš karto būtų po pelės kursoriumi.
  • Naujienlaiškių prenumeratos formas įterpti į tinklapio meniu.
  • Straipsnių vertinimo elementus pateikti arti straipsnių turinio.

Išvardinau tik kelis pavyzdžius vaizdui susidaryti, tačiau tai tik maža dalis, kur galima pritaikyti šią taisyklę. Mano manymu, šią taisyklę galima pritaikyti ne tik manipuliatoriaus judėjimui modeliuoti, bet ir vizualios informacijos grupavimui – pvz.: tinklapio optimalių bannerių pozicijų išdėstymui.

Jei norite pasiskaityti plačiau, galite aplankyti straipsnį Wikipedijoje: http://en.wikipedia.org/wiki/Fitts%27s_law

Nuorodos #2

Autorius: andrius 2009 09 27, SekmadienisKategorijos: Patarimai, Technologijos

jquery-logoKasdien tenka perskaityti ne vieną straipsnį, susijusį su vartotojo sąsajos kūrimu, bei programavimu. Ieškant naudingos informacijos, užtinkam tikrų perliukų, taigi, tęsdamas tradiciją, dalinuosi su skaitytojais, vėliausiai atrastomis įdomiomis nuorodomis. Šį kartą nuorodų nebus taip daug, o jos išskirtinai apie JavaScript ir jQuery:

JavaScript Regex generatorius – pagelbės kuriant reguliariąsias išraiškas, pavyzdžiui skirtas formų generavimui.

Top 20 jQuery Tips and trics, 8 awesome jQuery tips ir 7 tips for better jQuery code – išrenku pačius įdomiausius ir naudingiausius patarimus:

  1. jQuery data() metodas, skirtas duomenims bet kokiam DOM elementui priskirti;
  2. live()  - būdas priskirti įvykių apdorojimui skirtas funkcijas net prieš DOM elementų sukūrimą;
  3. $(‘a[rel=external]‘).attr(‘target’,‘_blank’) – taip geriausia apdoroti naujame lange atidaromas nuorodas išlaikant dokumentą validžiu;
  4. if ($(“element selector”).length) {..} – būdas patikrinti, ar elementas egzistuoja. Nors šitaip tikrindavau jau seniai, tačiau dabar galutinai buvo patvirtinta, kad šis būdas geriausias;
  5. O taip pat prie šio sąrašo labai tinka frontend.lt prašytas būdas geriau užkrauti JavaScript  - naudoti Google Ajax API.

Šiam kartui tiek, geros savaitės pradžios!

Žymos: ,

Krovimo paveikslėliai

Autorius: Petras 2009 09 1, AntradienisKategorijos: Įrankiai, Patarimai, Vartotojo interfeisas

preloaderŠiuo metu, nemažai tinklapių yra įgyvendintas dinaminis tinklapio užkrovimas, pvz.: Neperkraunant puslapio, galima naršyti po prekių katalogus. Paprastai toks funkcionalumas vartotojui yra daug patogesnis, nei viso puslapio perkrovinėjimas, tačiau jeigu tokiu būdu reikia užkrauti didelį kiekį informacijos ir serveris veikia lėtai, vartotojas gali būti suklaidintas ir nueiti į kitą puslapį. Kad to išvengti, patariame naudoti krovimosi paveikslėlius “Preloader’ius”, kurie yra rodomi vartotojui, kol yra kraunamas turinys. Pvz.:

44409

Tokius dailius paveikslėlius galite pasidaryti patys, su preloaders.net sistemėle. Joje lengvai susikursite norimą paveikslėlį, nurodydami jo išvaizdą, spalvą, dydį, bei animacijos greitį. Taip pat visi šioje sistemoje sukuriami paveikslėliai gali būti su permatomu fonu, todėl tiks bet kokiame tinklapio dizaine.

browsers-iconsKai sukuriame tinklapį, visada privalome jį pratestuoti su įvairiomis interneto naršyklėmis. Dauguma iš mūsų peržiūri gautą rezultatą tik su naujausia FireFox versija ir Su Internet Explorer 6. Dažniausiai to pakanka, tačiau pasitaiko kokių nors klaidų, kurios galimos ir kitose naršyklėse, nors ir FF ir IE6 viskas būna gerai.

Šiam tikslui Yahoo yra apibrėžusi interneto naršyklių palaikymo klasifikaciją, apie kurią trumpai papasakosiu.

Iš viso yra 3 naršyklių palaikymo klasės (lygiai):

C klasė – žemo lygio ir kokybės palaikymas. Iš esmės tai tik gryno HTML kodo pateikiamas naršyklei, be stilių ar JavaScript įgyvendintų funkcijų. Realizuojant šis klasės palaikymo lygį dažnai pasitaiko įvairių defektų.

X klasė - tai absoliučiai visų naršyklių palaikymas. Realizuojant tokį palaikymo lygmenį yra palaikomos retos arba sustabdyto palaikymo ir vystymo naršyklės – tai reiškia kad tinklapis yra atvaizduojamas teisingai net ir ant pačių rečiausių naršyklių. Toks palaikymas yra įgyvendinamas labai retai, nes dažniausiai neįmanoma nuspėti visų egzistuojančių naršyklių niuansų.

A klasė – Pati svarbiausia klasė, nes tai palaikymo lygmuo skirtas pačioms populiariausioms naršyklėms.  Šis lygmuo, pagal Yahoo statistiką yra įgyvendintas 96% tinklapių. Būtent šio lygmens mes ir rekomenduojame laikytis.

Kad būtų lengviau “sugaudyti”  kokias naršykles privalo palaikyti A-klasės palaikymas, čia pateikta naršyklių matrica, kuri parodo visas A klasės naršykles:

a-grade_browsers

Patarimas: JavaScript bibliotekų užkrovimas

Autorius: andrius 2009 06 20, ŠeštadienisKategorijos: Patarimai

frameworks5trisDarbui su JavaScrip palengvinti yra naudojamos įvairios bibliotekos. Paruošėme receptą, kaip supaprastinti jų užkrovimą – naudotis paslauga Google AJAX Libraries API, kuri padeda patogiai naudoti tokias JavaScript bibliotekas, kaip:  jQuery, jQuery UIPrototypeDojoScriptaculousSWFObject, MooTools, Yahoo! User Interface Library, Ext Core  ir kitas. Pilnas sąrašas pateikiamas dokumentacijoje.

Kodo pavyzdys jQuery 1.3.2 bibliotekos užkrovimui, tačiau su minimaliomis modifikacijomis pritaikomas ir kitoms:

  1. <script src="http://www.google.com/jsapi"></script>
  2. <script type="text/javascript">
  3.     google.load("jquery", "1.3.2");
  4. </script>

Šis būdas yra geras tuo, kad:

  1. Bibliotekos versiją įterpti ir atnaujinti yra lengviau ir greičiau – nereikia siųstis naujausios versijos į savo kompiuterį, išpakuoti, sukelti į serverį, atnaujinti kelius iki bibliotekos bylų svetainės kode. Vienintelis pakeitimas – versijos numerio atnaujinimas HTML kode.
  2. Taip yra greičiau – naršyklės riboja lygiagrečių JavaScript failų siuntimų skaičių iš vieno serverio, šiuo atveju kodas yra siunčiamas iš Google serverių.
  3. Taupote resursus – bibliotekos saugomos Google serveriuose, naudojamas srautas.