İnternetin gelişmesi için akıllanması şart
Sosyal medya çıktı çıkalı herkes her gün yüzlerce kez klavye tuşlarına basıyor, faresiyle gezinip diğer internet kullanıcıları için yeni birşeyler yüklüyor veya bir konuda fikrini belirtiyor, yorum yapıyor.
Veri girişleri form ile server tarafına iletiliyor. O halde formlarda veri doğrulaması önemli.
Akıllı formlar dediğimiz daha veri girerken kullanıcıyı yönlendiren ve yanlış bilgi girmesini engelleyen yapılar internetin akıllı ve kolay kullanılır hale gelmesini sağlayacaktır.
Web uygulaması geliştirenler, web sitesi yapanlar bunlara dikkat ederlerse hep beraber daha akıllı siteler oluşturacağız. Peki nelere dikkat etmemiz gerekiyor.
Form alanı etiketlerinin anlaşılır olması
Veri girilecek bir alanın etiketi oraya ne yazılacağını bir çırpıda ifade etmelidir. Herkesin anlayacağı terimler kullanmak ve farklı anlamlara gelebilecek terimlerden kaçınmak gerekir. "Adı Soyadı" denilince Türkçe konuşan herkes ne istendiğini anlar. "TC Kimlik Numarası" da herkesin bildiği birşeydir. Ama sadece TC hiç anlaşılır birşey değildir.
Bu gibi formlarda sanki bir gelenek haline gelmiş olan Adres Satırı 1, Adres Satırı 2 yazmak da formu anlaşılmaz kılar. Neden adresi iki satır halinde yazayım? Adresi neresinden ayırayım? Yazılımcı bunu istediği şekilde kaç satırda yazacaksa yazamaz mı?

Birçok örneği olan bu tür kulanımlardan birkaç tanesini burada görebilirsiniz.

Standart verilerin kullanıcıdan istenmemesi
Özellikle ABD veya Almanya menşeli yazılımların adaptasyonu yapılmadan tercüme edilmesi durumlarında "Eyalet" veya "Şehir" kavramları anlaşılan tercüme edenlerin de kafasını karıştırmakta ki garip durumlar ortaya çıkmaktadır.
Aşağıdaki örnekte "ilçe/şehir" alanına ilçe veya şehirlerden biri mi yazılacaktır yoksa Bahçelievler/İstanbul şeklinde ikisi mi yazılacaktır?

Bu şekilde yazıldığında database'de nasıl ayırd edilecektir?
Oysa bu form Türkiye'deki kullanıcılara hitap ettiğine göre Türkiye'de il ve ilçe yapılanmasına uygun formlar oluşturulması daha yerinde olur. Hatta tüm iller sisteme girilip seçmek suretiyle kullanıcıya kolaylık sağlanmalı ve yanlış veri girişleri de engellenmelidir.
Yukarıdaki örneklerde de görüldüğü gibi en çok sorulan alanlardan biri de posta kodudur. Genellikle de çoğu kimse posta kodunu bilmemekte, çoğu zaman rastgele bir kod girmektedir. Bu da yine ingilizceden tercüme edilen sistemlerde çokça karşılaşılan bir durumdur.
Çünkü özellikle ABD'de posta kodu çok aktif kullanılmaktadır. Ülkemizde ise maalesef ne PTT ne de kargolar bu kodu aktif kullanmamakta, zorunlu da tutmamaktadır. PTT acaba bir API geliştirerek adres bilgisi isteyen tüm web uygulamalrının adres bilgisinden yola çıkarak posta kodunu otomatik bulmasını sağlasa çok kullanışlı olmaz mı? Böylece insanlar hem posta kodlarını öğrenmiş olurlar hem de bu kodlar gerçekten adres bulmada kullanılır.
Düşünsenize herhangi bir şekilde üye olduğunuz bir sitede, bir alışveriş sitesinde veya bir kamu kurumu sitesinde sadece cadde sokak ismini ve numaranızı girdiğinizde posta kodunuz çıksa güzel olmaz mı? Google maps uygulamasında bütün bu veriler nasıl varsa buradan bir coğrafi bilgi sistemi database oluşturulabilir.
Daha da güzel bütün cadde ve sokak isimlerinin sorgulanıp girdiği bir veritabanından doğrulanıp otomatik tamamlama ile karşınıza gelmesidir. Cadde ve sokak isimleri kişiye göre değişen şeyler değildir.
Tabii siyasilerimiz, yöneticilerimiz, beldiyelerimiz siyasi endişelerle sık sık sokak ismi değiştirmezlerse. Hele şu anlamsız bulduğum numaralı sokak isimlerini hiç tartışmayalım. Kim 17482.sokakta oturmak ister veya bu numarayı günde 3 kere cümle içinde kullanabilir? Tek nefeste 17482. sokağın başında buluşalım deyin bakalım. Mestan sokak herkes tarafından kullanılabilir.
Veri giriş alanı boyutunun veri tiplerine uygun olması
Veri girilecek input kutucuğunun boyu ve yüksekliği veri uzunluğu ile ilişkili olmamasına rağmen kullanıcılar için görsel olarak bir sınırlama gibi algılanmaktadır.
Formların veri alanlarının genişliklerinin aynı olması görsel olarak güzel görünmesini sağlar. Ancak farklı sütunlara ayrılmış formlar olabilir. Ad, Soyad, Telefon gibi alanlar tek satır olarak planlanacaktır. Ama açıklama, diğer düşünceleriniz, önerileriniz gibi etiketleri olan alanların ortalama ne kadar veri isteniyorsa ona uygun bir yükseklikte olması gerekir. Tek bir satır olarak ayrılmış "açıklama" alanı sanki bu kadar ile sınırlandırılmış gibi algılanır.
Çoğu kimse yazıkları görünmez olunca bunun silindiğini düşünebilir.
Ayrıca kullanıcının yazdıklarını görmesi, cümlenin sonunu getirirken başına bakması gerekebilir.
İpuçları ve Uyarılar
Form doldururken her bir alanın hemen üzerinde veya yanında çıkacak küçük ipuçları kullanıcılara yardımcı olacaktır. Yalnız bu uyarıların form akışını engellememsi, kullanıcının dikkatini dağıtmayacak şekilde tasarlanması gerekir.
Kullanıcı davranışının tahmin edilmesi ve her bir davranışa verilecek tepki
Bir formu doldururken kullanıcı nasıl davranabilir? Bütün ihtimalleri düşünüp her ihtimal karşısında verilecek tepkiyi belirlemek uygulamamızı oldukça akıllı hale getirecektir. Bir form alanını doldururken kullanıcı neler yapabilir?
- Boş bırakabilir
- Yanlış doldurabilir
- Eksik doldurabilir
- Doğru doldurabilir
Bu durumların her biri için programcının uygulamadan bir tepki vermesi gerekir ki uygulamadan beklenen sonuca gidilebilsin. İnternet uygulamaları masaüstü uygulamaları gibi değildir. Kimi zaman sadece bir bağlantı sorunundan dolayı uygulama tam yüklenmemiş olabilir. Ekranda hiçbir değişiklik olmadığında veri eksik mi olmuştur, bağlantı sorunu mu ortaya çıkmıştır, zorunlu bir alan boş mu bırakılmıştır bunlar net bir şekilde ve farkedilecek bir formatta kullanıcıya bildirilmelidir.
Uyarılar ve hata mesajlarının anlaşılır olması, mümkünse hatanın hemen yanında ortaya çıkması ve yapılması gereken bir sonraki adım için açıklayıcı metinler konulmalıdır. "Bir sorun oluştu. Lütfen tekrar deneyin" demek hiçbir şeyi izah etmemektir.
Hataların hata olan yerde işaretlenmesi
Bir veri giriş formunda hata veya eksik varsa hatalı kısmın bizzat işaretlenmesi, farklı bir renkte gösterilmesi ve ipuçları ve uyarılarla hatanın veya eksiğin ne olduğunun belirlenmesi faydalı olacaktır.
Doğru yazılan alanın işaretlenmesi
Veri alanı için tanımlanan formata uygun yazılınca alanın yeşil renkle işaretlenmesi veya hemen yanında yeşil bir tick ikonu çıkması da kullanıcılar için faydalı bir tasarım olacaktır. Şimdi çeşitli script uygulamaları ile bu tür şeyler çok kolay yapılabilmektedir.
Hatalı verilerin de daha girilirken gösterilmesi ve yönlendirmelerle doğru girişinin sağlanması işleri kolaylaştıracaktır.
Her bir alan için veri formatının çok iyi tasarlanması
Her bir veri alanı için kabul edilebilecek veri formatı belirlenmeli ve bunun dışında veri girişine izin verilmemelidir. Telefon numarası istediğimiz bir alana yazı girilmesi baştan engellenebilir.
Adı Soyadı alanının en az iki kelimeden oluşması gerekir. Sadece adı yazıldığında program uyarmalıdır.
Standart veriler (şehir, meslek, okul vs.) daha önce de belirttiğimiz gib otomatik tamamlama ve seçtirmek suretiyle hatalı girişler engellenebilir ve kolay veri girişi sağlanır.
Seçenek sunulması
Evet/Hayır, doğru/yanlış veya birkaç seçenekten ibaret cevaplarda bu seçeneklerin önceden belirlenip sunulması kullanıcıların hoşuna gidecektir.
Şehir gibi, üniversite adı gibi, meslek gibi standartlaşmış ve herkesten bir alan seçmesi beklenen verilerin seçmek suretiyle istenmesi hem kolaylık hem standart veri oluşmasını sağlar.
Bunun bir adım sonrası, seçenekler arasında bulunmayan yeni bir seçeneğe izin vermek ve yeni girilen seçeneklerden birçok kişinin yazdığını standart seçenekler haline getirmektir.
Form alanına kod girilmesinin engellenmesi
Güvenlik açığı oluşturabilecek şekilde veri alanına komut girişi engellenmelidir.
Ayrıca bazı form alanları maalesef Türkçe olmayan karakterlerden oluşmalı ve boşluk karakteri içermemelidir. Bu gibi zorunluluk durumlarında hata vermektense hatanın düzeltilmesi ve bunun da bir uyarı ile kullanıcıya bildirilmesi daha güzel olacaktır. Örneğin kullanıcı adı belirlerken eğer boşluk akrakterine izin vermeyeceksek boşluk tuşuna daha basılırken geri silebiliriz ama bu durumu hemen altında bir uyarı ile kullanıcıya bildirmeliyiz ki şaşırmasın.
Güvenlik sebebiyle kod girişini engellediğimizde de bu durumu bir bilgilendirme notuyla bildirmeliyiz.