Deyimsel tasarımı geri getirelim
(essays.johnloeber.com)- Kullanıcı tarafından anında anlaşılabilen tasarım deyimleri, öğrenme yükünü azaltır ve tutarlı etkileşimleri mümkün kılar
- Geçmişte masaüstü yazılım çağında, işletim sistemi ve kılavuzlar sayesinde menü yapıları ve kısayollar gibi arayüzler standartlaşmıştı
- Buna karşılık tarayıcı tabanlı yazılım çağında, framework'lerin ve özel implementasyonların yaygınlaşmasıyla arayüzlerdeki tutarlılık çöktü
- Apple ve Substack, sınırlı özelleştirme ve birleşik tasarım sistemleriyle modern deyimlerin başarılı örneklerini gösteriyor
- Ürün tasarımcıları mevcut deyimleri izlemeli, açıklık ve tutarlılığı önceliklendirerek web genelinde standartlaşmış bir kullanıcı deneyimine yönelmelidir
Tasarım deyimleri
- Onay kutusu, kullanıcının ayrı bir öğrenme süreci olmadan hemen anlayabildiği tipik bir tasarım deyimi olarak sunuluyor
- Oturumu açık tutup tutmama sorusu farklı giriş biçimleriyle sorulabilir, ancak pratikte her zaman onay kutusu kullanılır
- Bu, hem kullanıcılar hem de geliştiriciler için tanıdık bir standart etkileşim kalıbı olarak işler
Homojen arayüzler
- Arayüz, kullanıcının sistemle etkileşime girdiği araçtır ve ne kadar az düşünmeyi gerektirirse o kadar iyi kabul edilir
- Örneğin kopyalama işlevi için Command+C kısayolu her yerde aynı şekilde çalışmalıdır
- Ancak günümüzün web yazılımı ortamında arayüz tutarlılığı ortadan kalktı
- Tarih seçimi, kart numarası girişi gibi temel işlevler bile her sitede farklı uygulanıyor
- Kısayollar ve etkileşim biçimleri uygulamadan uygulamaya değiştiği için kullanıcı her seferinde “nerede neye tıklamalıyım?” sorusunu yeniden öğrenmek zorunda kalıyor
Masaüstü yazılım çağı
- Windows 95~7 dönemi masaüstü yazılımları, yüksek arayüz tutarlılığını koruyordu
- “File, Edit, View” menü yapısı tüm programlarda aynı şekilde bulunuyordu
- Menü öğelerindeki altı çizili harfler klavye kısayollarını ifade ediyor, ALT+F, N gibi kombinasyonlarla kullanılabiliyordu
- Alttaki durum çubuğu (status bar) mevcut durumu (sayfa, kelime sayısı, mod vb.) açıkça gösteriyordu
- Metin tabanlı menüler merkezdeydi; ikonlar yalnızca anlamları net olduğunda kullanılıyordu
- Bu deyimler yalnızca Microsoft Word'de değil, tüm Windows ekosisteminde tutarlıydı
- Windows XP'nin oturumu kapatma ekranında bile tüm düğmeler görsel olarak düğme olduklarını açıkça belli ediyor ve kısayollar gösteriliyordu
- Bu tutarlılık, işletim sistemi ile GUI kütüphanelerinin kısıtları sayesinde mümkündü; Microsoft da yüzlerce sayfalık tasarım kılavuzları dağıtarak geliştiricileri bunlara uymaya yönlendiriyordu
Tarayıcı yazılımı çağı
- Günümüzün web uygulaması çağı, heterojen arayüzlerin dönemi olarak tasvir ediliyor
- Figma ve Linear gibi başarılı web uygulamalarında bile ortak ikonlar veya kısayollar yok
- Her uygulama kendi içinde iyi tasarlanmış olsa da birbirinden farklı etkileşim kalıplarına sahip
- Aynı şirket içinde bile Gmail, GSuite ve Google Docs deneyimleri birbirinden farklı
- Sonuç olarak kullanıcı, üretken akış (flow) yerine kontrolün nerede olduğunu aramakla zaman harcıyor
-
Mobil geçişin etkisi
- Dokunmatik ekranların ortaya çıkışıyla, fare ve klavye merkezli tasarım kalıpları yeniden icat edildi
- Mobil ve masaüstünü aynı anda destekleme gerekliliği, ara formda kusurlu UI'ların yayılmasına yol açtı
- Örnek: mobil için tasarlanan hamburger menünün masaüstünde de aynen kullanılması
- Modüler bileşen yeniden kullanım kültürü, hatalı kalıpları kopyalayarak kalite düşüşüne neden oldu
- 10 yılı aşkın birikimin sonucu olarak UI/UX kalitesinde kuşaksal bir aşınma meydana geldi
-
HTML'in ötesinde deyim eksikliği
- İlk web döneminde mavi altı çizili bağlantılar gibi net deyimler vardı; bugün ise stiller siteden siteye değişiyor
- HTML/CSS standartları katı olsa da pratikte çoğu sistem React·TypeScript tabanlı build sistemleri kullanıyor
- Sonuç olarak standart HTML öğeleri yerine özel implementasyonlar çoğalıyor ve bu durum erişilebilirlik sorunlarına da yol açıyor
- Örnek:
<a>yerineonclickeklenmiş bir<span>kullanılması, screen reader işlevlerini bozuyor - Figma gibi, WebAssembly tabanlı olup HTML'i tamamen geride bırakan uygulamalar da var
- Tarayıcının geri butonu, kısayollar gibi temel işlevleri göz ardı ediliyor ve yeni bir insan-bilgisayar etkileşimi paradigması yeniden kuruluyor
- Frontend geliştirme hız ve olanaklar etrafında ilerledikçe, tutarlı deyimlerin yerleşmesi zorlaşıyor
- Çok sayıda framework ve etkileşim biçimi bulunduğundan tek bir standardın yerleşmesi yapısal olarak zor
Deyimsel tasarımın başarılı örnekleri
- Apple, günümüzde güçlü tasarım deyimlerini koruyan başlıca örneklerden biri olarak gösteriliyor
- Fontlar, düğmeler, renkler ve genel tasarım sistemi birleşik; bu da iOS genelinde tutarlı bir etkileşim deneyimi sunuyor
- Bu tutarlılık, “it just works” türü bir güven duygusu oluşturuyor
- Substack de sınırlı özelleştirme ve önceden belirlenmiş estetik varsayılanlar sayesinde istikrarlı bir kullanıcı deneyimi sunuyor
- Apple ve Substack'in tasarım ilkeleri, başarıları sayesinde sektör standardına yayılıyor ve sonunda yeni deyimler haline geliyor
Ürün tasarımcılarının izlemesi gereken ilkeler
- Ürün geliştiriciler için, mümkün olduğunca mevcut tasarım deyimlerini takip etmek kullanılabilirliği ve uyumluluğu artırmanın yolu olarak sunuluyor
- HTML/CSS'nin temel deyimlerine uyun: bağlantılar altı çizili, renkli, işaretçi imleçli ve
<a>etiketiyle uygulanmalı - Temel HTML öğelerini JavaScript ile yeniden implemente etmeyin; örneğin React Button yerine
<button>kullanın - Tarayıcı deyimlerine uyun: geri butonu çalışmalı, URL kopyalandığında aynı arayüze erişilebilmeli, CTRL+tıklama yeni sekmede açmalı
- Genel deyimlerden sapılacaksa, en azından kurum içinde tutarlı kurallar korunmalı
- Önce metin, minimum ikon; ikonlar yalnızca evrensel olarak anlaşılabildiğinde kullanılmalı
- Görsel unsurlarda açıklık, estetik güzelliğin önüne geçmeli
- Karar vermek zor olduğunda iyi web sitesi örneklerine ve geçmiş arayüz tasarımı kitaplarına başvurulmalı
- HTML/CSS'nin temel deyimlerine uyun: bağlantılar altı çizili, renkli, işaretçi imleçli ve
- Nihai olarak, web üzerindeki tüm tarih seçicilerin veya kart giriş formlarının aynı şekilde çalıştığı bir gelecek hedefleniyor; on yıllar süren tekrar ve iyileştirme sonunda en iyi deyimlerde yakınsayan bir web ortamı amaçlanıyor
1 yorum
Hacker News görüşleri
Bazı uygulamalarda Enter gönderme, Ctrl+Enter satır sonu ekleme anlamına geliyor (ör. Slack); başka yerlerde ise tam tersi geçerli (ör. GitHub)
Bu tutarsızlık, kullanıcı açısından oldukça kafa karıştırıcı. “İdiyomatik tasarımı geri getirelim” deniyor ama asıl sorun, ortada ortak bir idiomun pek olmaması
Şimdi bu tuşlar tek bir tuşta birleşti; genel olarak çok satırlı giriş alanlarında Enter satır sonu, Ctrl+Enter gönderme oluyor.
Buna karşılık sohbet uygulamalarında kısa mesaj girişi daha yaygın olduğu için bunun tersi tercih ediliyor. İyi uygulamalar bunu ayarlardan değiştirmenize izin veriyor
Hangi kısayolun satır sonu olduğu gösteriliyor ama yine de kafa karıştırıcı
Niyet anlaşılır ama kullanılabilirlik berbat
Günümüz yazılımları artık eskisi gibi özenli tasarımcılar tarafından yapılmıyor.
Bunun yerine aceleyle terfi ettirilmiş PM’ler ya da ürün tarafı yön veriyor; hatta gelir için dark pattern kullanımının teşvik edildiği bir ortam var
UX tutarlılığı ile bilgi mimarisinin (IA) önemini vurgulamak gerekiyor. Tasarımcıların da problem çözücü olduğunu unutmamak gerek
Örneğin kredi kartı formu hazırlarken kopyala/yapıştır izni verilip verilmeyeceği, eski tarayıcı desteği, erişilebilirlik ve güvenlik dengesi gibi sayısız değişken var.
Bu arada Steve Yegge’nin platform yazısı da bu karmaşıklığı iyi anlatıyor
Sistem çerçeveleri, idiyomatik UI üretmenin temeliydi.
Win32, AppKit ve UIKit en ince ayrıntılara kadar ilgileniyor, böylece geliştiriciler doğal olarak tutarlı bir UX izliyordu.
Web’de ise böyle bir temel yok; her şeyi baştan uygulamak gerekiyor ve sonuçta yarım yamalak tamamlanmış UI’lar ortaya çıkıyor
Web en başından beri belge merkezliydi, bu yüzden standart bir yaklaşım yoktu; daha sonra Bootstrap gibi şeylerle geçici standartlar oluştu
Oysa tarih seçici ve kart girişi gibi şeylerde temel HTML kontrolleri kullanılmalı.
Böylece tarayıcı, işletim sistemi düzeyindeki güvenlik ve kolaylıkları sunabilir (ör. Safari’de Apple Wallet, Android’de Google Pay entegrasyonu)
Ama web ve mobil tamamen farklı kutulanmış ortamlar olduğu için bu tutarlılık bozuldu.
Örneğin masaüstündeki sağ tıklamayı mobilde uzun basma ile birleştirmek için fırsat vardı ama bu tutarlı biçimde uygulanmadı
Uygulama UI’ı yapmak için belge UI’ının üstüne katman eklemek gerekiyor ve bu da çakışma yaratıyor.
Tarayıcılar bunu hafifletti ama kökten bir iyileşme değil
Tarih seçici gerçekten bir UX kâbusu.
Kullanıcı tarihini elle girmek isteyince buna izin vermeyip zorla tıklatmaya çalışan çok yer var.
Sadece hatalı girişleri yakalamak yeterliyken gereksiz yere kullanımı zorlaştırıyorlar
Analog saat tipi seçiciler daha sezgisel; keşke bunlar standart olsa
Uluslararası kullanıcılar için YYYY-MM-DD biçimi daha güvenli
Sizi 50 yıl geriye kaydırmaya zorluyor ve sadece yaşınızı daha çok hissettiriyor
Son dönemde UX kalitesi düşüşü çok belirgin; özellikle banka sitelerinde.
Kaydırma çubuklarının gizlenmesi, boşa harcanan boşluklar, düz düğmeler, kafa karıştırıcı ikonlar derken eski masaüstü UI’larından çok daha kullanışsız bir hale geldi
GCP ve Google araçları gereksiz yere karmaşıklaştı; çerçevesiz giriş alanları gibi tercihlerle UX’i bozdu.
Neyse ki bugünlerde bu tarz artık eski moda görülüyor
Eski Mac’lerden gelen kavramlardan biri şuydu: bir düğme metninin sonunda üç nokta (…) varsa, bu ek giriş gerektiği anlamına gelirdi.
Buna karşılık üç nokta olmayan düğmeler tıklanır tıklanmaz işlemi tamamlar
“İkonlardan çok kelimeleri tercih et” sözüne katılıyorum.
Çoğu insan için kelime tanıma hızı, ikon tanımaktan daha yüksektir
Metin açıklaması olmayınca, ne işe yaradığını anlamak için adeta Rus ruleti oynar gibi tıklamak gerekiyor
Kısa süre önce CSS diye yeni bir teknoloji keşfettim; yerleşimi bildirime dayalı şekilde tanımlamaya ve DOM tabanlı olarak hiyerarşik stiller uygulamaya yarıyor.
İstemci ve sunucu yükünü azaltabiliyor, stil sayfalarını paylaşmayı ya da kullanıcıya özel temalar oluşturmayı da kolaylaştırıyor.
Buna “no-framework” UI paradigması demek istiyorum
Örnek görsel
Üstelik “istemci yükünü en aza indirme” de sadece bir efsane. Pratikte daha yavaş
Kaybettiğimiz ortak işlevlerden bazıları:
Undo/Redo, yardım (F1), mouseover ipuçları, kısayol özelleştirme, ana menü, dosya/dizin, ESC ile kapatma, sürükle-bırak vb.
Bir zamanlar yenilikçi olan bu özellikler artık mobil ve web’de neredeyse yok olmuş durumda
Sorunların çoğu, görsel tasarımcıların ürün tasarımına geçmesinden kaynaklanıyor.
Tasarım rollerindeki kafa karışıklığı hâlâ çözülmedi; hatta gerçekte “tasarımcı” gerekmeyen projelere bile fazlasıyla insan sokuluyor