Diyarbakır Yazılım LogoDİYARBAKIR
>Ana Sayfa>Projeler>Atölye>Yazılar
>Ana Sayfa>Projeler>Atölye>Yazılar
durum: inşa ediliyor
Etkileşimli Arayüz Tasarımı: Kullanıcı Deneyimi Odaklı Geliştirme
  1. Anasayfa
  2. Yazılar
  3. Etkileşimli Arayüz Tasarımı: Kullanıcı Deneyimi Odaklı Geliştirme

Etkileşimli Arayüz Tasarımı: Kullanıcı Deneyimi Odaklı Geliştirme

Diyarbakır Yazılım
Diyarbakır Yazılım
16.08.2026
#Yazılım#Teknoloji#Topluluk

Etkileşimli bir arayüz yalnızca güzel görünen butonlardan, geçiş efektlerinden veya hareketli kartlardan oluşmaz. Kullanıcı bir eylem yaptığında sistemin ne olduğunu anlaması, doğru tepkiyi vermesi ve sonraki adımı açık biçimde göstermesi gerekir. Frontend projelerinde yıllar içinde en sık gördüğüm sorunlardan biri, ekiplerin ekranı tamamlanmış sayıp hover, loading, error, empty ve success durumlarını geliştirme sürecinin sonuna bırakmasıdır. Oysa kullanıcı deneyiminin büyük bölümü tam olarak bu ara durumlarda şekillenir. Bu rehberde Etkileşimli Arayüz Tasarımı konusunu kullanıcı araştırmasından microinteraction tasarımına, accessibility yaklaşımından frontend performansına ve ürün analitiğine kadar uygulamaya dönük bir çerçevede ele alacağız.

Etkileşimli Arayüz Tasarımı Nedir?

Etkileşimli arayüz tasarımı, kullanıcı ile dijital ürün arasındaki eylem ve tepki ilişkisini planlama sürecidir. Kullanıcı bir butona bastığında yalnızca teknik bir fonksiyon çalışmaz, aynı zamanda sistemin kullanıcıya ne olduğunu anlatması gereken yeni bir durum oluşur. İyi tasarlanmış bir etkileşim hangi alanın tıklanabilir olduğunu, işlemin alınıp alınmadığını ve sonraki adımın ne olduğunu anlaşılır biçimde gösterir. Bu yaklaşım görsel tasarımdan daha geniştir çünkü zamanlama, davranış, hata yönetimi, erişilebilirlik ve geri bildirim gibi konuları da içerir. Frontend geliştirme açısından bakıldığında etkileşim tasarımı, tasarım dosyasındaki ekranları yaşayan ve kullanıcı eylemlerine cevap veren bir sisteme dönüştürme işidir.

Interaction Design (IxD) Nedir?

Interaction Design, kullanıcının ürünle yaptığı eylemlerin ve ürünün bu eylemlere verdiği cevapların tasarlanmasıdır. Bir dropdown menünün nasıl açıldığı, form hatasının ne zaman gösterildiği veya kullanıcının silme işlemini geri alıp alamadığı bu alanın konusudur. IxD yalnızca animasyonla ilgilenmez, karar verme, feedback, control ve hata önleme gibi davranış kurallarını da kapsar. İyi bir Interaction Design kullanıcının sistemi tahmin etmek zorunda kalmasını azaltır. Kullanıcı bir elementi gördüğünde ne yapabileceğini, eylem sonrasında ne olacağını ve yanlış bir durumda nasıl geri dönebileceğini anlayabiliyorsa etkileşim tasarımı görevini büyük ölçüde yerine getiriyor demektir.

Kullanıcı Arayüzü (UI) Nedir?

Kullanıcı arayüzü, kullanıcı ile yazılım arasında görünen ve etkileşime girilen görsel katmandır. Butonlar, input alanları, menüler, tablolar, kartlar, renkler, ikonlar ve tipografi bu katmanın parçalarıdır. UI tasarımı bilgiyi nasıl göstereceğinizi ve kullanıcı eylemlerini hangi görsel araçlarla mümkün hale getireceğinizi belirler. Ancak iyi görünen bir UI otomatik olarak iyi bir kullanıcı deneyimi oluşturmaz. Bir buton estetik olabilir fakat tıklanınca hiçbir feedback vermiyorsa veya kritik işlem küçük ve belirsiz bir ikon arkasında saklanıyorsa görsel kalite davranış problemini çözmez.

Kullanıcı Deneyimi (UX) Nedir?

Kullanıcı deneyimi, kişinin bir ürünle etkileşim sırasında yaşadığı toplam deneyimi ifade eder. Kullanıcı hedefini kolay tamamlıyor mu, sistem davranışını anlayabiliyor mu ve hata yaşadığında ne yapacağını biliyor mu gibi sorular UX kapsamında değerlendirilir. Görsel tasarım bu deneyimin parçalarından biridir fakat tek parçası değildir. Bilgi mimarisi, performans, erişilebilirlik, form davranışları, hata mesajları ve navigasyon da deneyimi doğrudan etkiler. İyi UX kullanıcının ürünü öğrenmek için gereksiz zihinsel enerji harcamasını azaltır ve asıl görevine odaklanmasını sağlar.

UI, UX ve Interaction Design Arasındaki Fark

UI, UX ve Interaction Design birbirine yakın görünse de farklı sorulara cevap verir. UI daha çok arayüzün nasıl göründüğünü ve görsel elemanların nasıl düzenlendiğini ele alır. Interaction Design kullanıcının bu elemanlarla nasıl etkileşime girdiğini ve sistemin ne tepki verdiğini planlar. UX ise bütün bu süreç sonunda kullanıcının hedefini ne kadar rahat, hızlı ve güvenli biçimde tamamladığıyla ilgilenir. Başarılı frontend geliştirme bu üç alanı birbirinden koparmak yerine birlikte değerlendirir, çünkü görsel olarak doğru bir buton yanlış davranabilir, davranışı doğru bir akış da kötü bilgi mimarisi nedeniyle kullanıcıya zor gelebilir.

Etkileşimli Arayüz ile Statik Arayüz Arasındaki Fark

Statik arayüz bilgiyi gösterir fakat kullanıcı eylemlerine sınırlı tepki verir. Etkileşimli arayüz ise kullanıcı input'u, seçim, scroll, keyboard veya farklı eylemler sonucunda durum değiştirir ve bu değişimi görünür hale getirir. Bir ürün kartının yalnızca görünmesi statik davranışken sepete ekleme işlemi, loading feedback ve başarı bildirimi etkileşimli davranıştır. Etkileşim arttıkça state sayısı ve edge case sayısı da artar. Bu nedenle frontend geliştiricinin yalnızca final ekranı değil default, hover, focus, loading, error, success ve disabled gibi durumları da geliştirme modeline dahil etmesi gerekir.

Kullanıcı Deneyimi Odaklı Geliştirme Ne Demektir?

Kullanıcı deneyimi odaklı geliştirme, teknik feature listesini doğrudan ekrana dönüştürmek yerine kullanıcının hangi hedefe ulaşmaya çalıştığını başlangıç noktası kabul eder. Bir uygulamaya filtre özelliği eklemek tek başına kullanıcı problemi çözmez, önemli olan kullanıcının aradığı kaydı daha hızlı bulup bulamadığıdır. Bu yaklaşım frontend kararlarını kullanıcı görevleriyle ilişkilendirir. Component yapısı, loading davranışı, buton metni ve error state aynı hedef doğrultusunda değerlendirilir. Ekip özellik tamamlandı sorusu yerine kullanıcı görevini tamamlayabiliyor mu sorusunu sormaya başladığında geliştirme süreci daha anlamlı ürün çıktıları üretir.

Feature-First Yaklaşım

Feature-First yaklaşım geliştirme sürecini yapılacak özelliklerin listesi üzerinden yönetir. Örneğin filtre, modal, export, notification ve dark mode gibi maddeler ayrı teslimatlar haline gelir. Bu yöntem proje yönetimini kolaylaştırabilir fakat kullanıcı hedefiyle bağlantı kurulmadığında gereksiz özellikler üretilebilir. Bir filter component teknik olarak tamamlanmış olsa bile seçenekler anlaşılmıyorsa kullanıcı görevini hâlâ zor tamamlar. Feature geliştirilirken hangi problemi çözdüğü, hangi kullanıcı akışında yer aldığı ve başarı kriterinin ne olduğu açık biçimde tanımlanırsa feature odaklı çalışma daha sağlıklı hale gelir.

User-Goal-First Yaklaşım

User-Goal-First yaklaşım kullanıcının ulaşmak istediği sonucu merkezde tutar. Bir yönetici rapor indirmek istemiyor olabilir, asıl hedefi haftalık performansı ekip toplantısında paylaşmak olabilir. Bu fark anlaşıldığında PDF export dışında paylaşılabilir link veya otomatik rapor gibi daha iyi çözümler ortaya çıkabilir. Frontend tasarımında buton sırası, bilgi hiyerarşisi ve interaction pattern kullanıcı hedefinin sıklığına göre şekillenir. Kullanıcının ana işi tek bakışta görünür olduğunda ve ikincil seçenekler gerektiğinde açıldığında arayüz daha az zihinsel yük oluşturur.

Kullanıcı Bir Özellik Değil Görev Tamamlamak İster

Kullanıcı uygulamaya bir feature hayranlığı için gelmez, belirli bir işi tamamlamak ister. Bir müşteri fatura ekranına geldiğinde tablo componentinin kaç filtre desteklediğiyle değil doğru faturayı ne kadar hızlı bulabildiğiyle ilgilenir. Bu yüzden ürün ekibinin teknik özellik adlarını kullanıcı görevlerine çevirmesi gerekir. Arayüzde de aynı yaklaşım kullanılmalı ve butonlar mümkün olduğunca kullanıcının yapmak istediği işi ifade etmelidir. Görev tamamlama süresi ve hata oranı, feature sayısından daha anlamlı ürün başarı sinyalleri olabilir.

Tasarım Kararlarını Kullanıcı Hedeflerine Bağlamak

Bir tasarım kararı neden alındığını açıklayabiliyorsa ekip içinde daha kolay değerlendirilebilir. Primary CTA'nın daha görünür olması, kullanıcının en sık yaptığı görevi destekliyorsa anlamlıdır. Aynı şekilde advanced filtrelerin progressive disclosure altında tutulması nadir kullanılan seçeneklerin ana akışı bozmamasını sağlar. Tasarım tartışmasını yalnızca beğeni üzerinden yapmak yerine kullanıcı hedefi ve ölçüm verisi üzerinden yürütmek daha sağlıklı sonuç üretir. Her kritik component için bu alan hangi kullanıcı görevini kolaylaştırıyor sorusu sorulduğunda arayüzde gereksiz görsel ve davranış yükü zamanla azalır.

Etkileşim Tasarımının 5 Boyutu

Etkileşim tasarımını yalnızca ekran üzerindeki şekillerle açıklamak eksik kalır, çünkü kullanıcı deneyimi sözcükler, görsel temsiller, fiziksel etkileşim biçimi, zaman ve sistem davranışından birlikte oluşur. Bir butonun metni anlaşılır olabilir fakat loading sırasında hiçbir tepki vermiyorsa etkileşim yine eksik kalır. Benzer şekilde masaüstünde hover ile çalışan bir kontrol touch cihazda keşfedilemiyorsa fiziksel interaction boyutu gözden kaçmıştır. Bu beş boyutu component incelemelerinde ayrı ayrı değerlendirmek özellikle design system geliştiren ekipler için kullanışlıdır. Böylece component yalnızca default görünüm açısından değil farklı cihaz, input yöntemi ve zaman içindeki state değişimi açısından da tanımlanmış olur.

Words

Arayüzde kullanılan kelimeler kullanıcının sistemi nasıl anladığını doğrudan etkiler. Buton, label, error message ve yardım metinleri teknik sistem terimleri yerine kullanıcı görevini açık biçimde anlatmalıdır. Belirsiz ifadeler kullanıcıyı deneme yanılmaya iter ve hata ihtimalini artırır. Metin kısa olmalı fakat gerekli bilgiyi eksiltmemelidir. Microcopy tasarımı özellikle ödeme, silme, izin verme ve geri alınması zor işlemlerde kullanıcı güvenini belirleyen önemli interaction katmanlarından biridir.

Buton Metinleri

Buton metni kullanıcının tıkladığında ne olacağını tahmin etmesini sağlamalıdır. Tamam, Devam veya Onayla gibi genel ifadeler bazı bağlamlarda yeterli olsa da kritik işlemlerde daha açık metinler tercih edilmelidir. Hesabı Sil, Ödemeyi Tamamla veya Dosyayı Yükle gibi eylem odaklı ifadeler sonucu daha görünür hale getirir. Buton metni işlem tamamlandıktan sonra oluşacak sonucu da gerektiğinde yansıtmalıdır. Özellikle destructive actionlarda belirsiz metinler yerine net eylem adı kullanmak yanlış tıklama riskini azaltır.

Label'lar

Form label'ları input alanının ne istediğini sürekli görünür biçimde anlatır. Placeholder'ı label yerine kullanmak kullanıcı yazmaya başladığında bağlam bilgisinin kaybolmasına neden olabilir. Label kısa ve alanın veri beklentisini açıkça göstermelidir. Gerekli format varsa yardımcı metinle desteklenebilir. Accessibility açısından label ile form control arasında semantik bağlantı kurulması screen reader kullanıcılarının da alanı doğru anlamasını sağlar.

Error Messages

Error message kullanıcının yalnızca bir sorun olduğunu değil sorunu nasıl çözebileceğini de anlamasını sağlamalıdır. Geçersiz değer gibi genel metin yerine Telefon numarası 10 haneli olmalı gibi eyleme dönük açıklama daha faydalıdır. Teknik stack trace veya backend exception mesajı doğrudan kullanıcıya gösterilmemelidir. Mesaj problemli alanın yakınında ve uygun accessibility bildirimiyle sunulmalıdır. Kullanıcının girdiği veri hata sonrasında korunursa düzeltme yapmak daha kolay olur.

Visual Representations

Visual representations kullanıcıya bilgi, önem ve etkileşim ihtimali hakkında hızlı ipuçları verir. İkon, renk, tipografi ve spacing bir arada çalışarak görsel hiyerarşi oluşturur. Ancak yalnızca renge veya yalnızca ikona anlam yüklemek accessibility ve öğrenilebilirlik sorunları oluşturabilir. Görsel temsil mümkün olduğunca davranışla uyumlu olmalıdır. Primary action gerçekten daha önemliyse görünümünün de secondary seçeneklerden daha güçlü olması gerekir.

İkonlar

İkonlar sınırlı alanda anlam aktarmak için kullanışlıdır fakat her ikon kullanıcı tarafından aynı şekilde yorumlanmaz. Çok bilinen arama, kapatma veya oynatma ikonları label olmadan anlaşılabilirken daha özel eylemlerde metin desteği faydalıdır. Icon button erişilebilir isim taşımalıdır. Tıklanabilir ikonların hit area'sı görsel ikon boyutundan daha geniş tasarlanabilir. Aynı anlam için uygulama boyunca farklı ikon kullanmamak consistency açısından önemlidir.

Renk

Renk arayüzde önem, durum ve kategori ayrımı yaratabilir. Success için yeşil veya destructive action için kırmızı gibi pattern'ler kullanıcının hızlı anlam çıkarmasını kolaylaştırır. Ancak renk tek bilgi taşıyıcısı olmamalıdır çünkü renk görme farklılıkları kullanıcı deneyimini etkileyebilir. Icon, text veya pattern ile ek destek sağlanmalıdır. Contrast oranları metnin ve interactive elementlerin farklı ekran koşullarında okunabilir kalmasını sağlamalıdır.

Tipografi

Tipografi bilgi hiyerarşisini oluşturmanın en güçlü araçlarından biridir. Başlık, açıklama, yardımcı bilgi ve primary action farklı ağırlık ve boyutlarla ayrılabilir. Çok fazla font size ve weight çeşidi ekranı dağınık hale getirir. Design system içinde sınırlı typography token seti kullanmak tutarlılığı artırır. Okunabilir line height ve satır uzunluğu özellikle yoğun kurumsal ekranlarda kullanıcı yorgunluğunu azaltır.

Physical Objects and Space

Kullanıcı arayüzle yalnızca mouse üzerinden etkileşime girmez. Touch, keyboard, voice ve farklı yardımcı teknolojiler aynı componenti farklı biçimlerde kullanabilir. Etkileşim tasarımında input yöntemini baştan düşünmek hover bağımlılığı veya küçük touch target gibi problemleri azaltır. Aynı button mouse ile kolay tıklanabilirken dokunmatik ekranda çok küçük kalabilir. Responsive tasarım bu nedenle yalnızca layout kırılması değil interaction biçiminin cihaz koşuluna uyarlanmasıdır.

Mouse

Mouse hassas pointer kontrolü sağladığı için küçük hedeflere erişim touch cihazlara göre daha kolaydır. Hover state ve cursor gibi ek signifier'lar kullanılabilir. Ancak kritik bilgi yalnızca hover içinde saklanmamalıdır. Right click veya drag gibi özel etkileşimlerde kullanıcı beklentileri dikkate alınmalıdır. Mouse kullanıcılarının yanında keyboard ve touch kullanıcılarının aynı görevi tamamlayabileceği alternatif yollar korunmalıdır.

Touch

Touch etkileşiminde parmak pointer kadar hassas olmadığı için hedef alanların yeterli boyuta sahip olması gerekir. Hover bulunmadığından interaction keşfedilebilirliği farklı şekilde çözülmelidir. Swipe veya long press gibi gesture'lar tek erişim yöntemi olmamalıdır. Butonlar arasında yeterli boşluk yanlış dokunmaları azaltır. Mobile arayüz testini yalnızca responsive emulator ile değil gerçek cihazda yapmak interaction sorunlarını daha erken gösterir.

Keyboard

Keyboard interaction hem accessibility hem de hızlı profesyonel kullanım açısından önemlidir. Tab sırası görsel ve mantıksal akışla uyumlu olmalıdır. Focus state görünür olmadığı zaman kullanıcı nerede olduğunu anlayamaz. Modal ve menu gibi componentler için beklenen keyboard davranışları uygulanmalıdır. Escape ile kapatma, Enter ile onaylama ve ok tuşlarıyla seçim gibi pattern'ler component türüne göre değerlendirilmelidir.

Voice

Voice interaction ekran üzerindeki görsel hedeflerden farklı bir kullanım modeli oluşturur. Elementlerin anlaşılır ve erişilebilir isimlere sahip olması voice control kullanıcıları açısından önemlidir. Kullanıcı button üzerinde görünen metni söylediğinde aynı isim accessibility tree içinde de bulunabilmelidir. Yalnızca ikon kullanılan alanlarda uygun accessible name eklenmelidir. Voice kullanımını ayrıca destekleyen ürünlerde confirmation ve error feedback sesli interaction için de açık biçimde tasarlanmalıdır.

Time

Etkileşim yalnızca bir ekran görüntüsünde değil zaman içinde gerçekleşir. Kullanıcı eylemi, loading, transition, success ve error durumları bir sequence oluşturur. Animation ve transition bu değişimin anlaşılmasını kolaylaştırabilir fakat kullanıcıyı bekletmemelidir. Uzun süren işlemde durum bilgisinin görünür olması belirsizliği azaltır. Frontend geliştirici component state modelini zaman içindeki bu değişimleri içerecek şekilde tasarladığında interaction davranışı daha güvenilir hale gelir.

Animation

Animation arayüzde state değişimini veya element ilişkisini açıklamak için kullanılabilir. Bir drawer'ın hangi yönden geldiğini göstermek kullanıcının mekansal ilişkiyi anlamasına yardımcı olur. Ancak her elementin sürekli hareket etmesi dikkat dağıtır ve performans maliyeti oluşturabilir. Animation süresi işlemi yavaş hissettirmeyecek kadar kısa olmalıdır. Reduced motion tercihi olan kullanıcılar için hareket azaltılmalı veya daha sade geri bildirim kullanılmalıdır.

Transition

Transition iki UI state arasındaki değişimi daha anlaşılır hale getirir. Hover, open, selected veya expanded gibi durumlarda ani değişim yerine kısa ve kontrollü geçiş kullanılabilir. Transition property seçimi performans açısından önemlidir. Transform ve opacity gibi özellikler birçok durumda daha akıcı sonuç verir. Yine de geçiş kullanıcı eyleminin alınmasını geciktirmemeli ve yalnızca dekoratif bir bekleme oluşturmamalıdır.

Loading

Loading kullanıcının sistemin işlem yaptığını anlamasını sağlayan temel durumdur. İşlem çok kısa sürüyorsa loading UI göstermek gereksiz flicker yaratabilir. Süre uzadığında spinner, skeleton veya progress bar işlem yapısına göre seçilebilir. Kullanıcı uzun işlemde iptal seçeneğine ihtiyaç duyabilir. Loading sırasında aynı işlemin tekrar tetiklenmesi double submit riski taşıyorsa ilgili control geçici olarak güvenli biçimde sınırlandırılmalıdır.

Behavior

Behavior kullanıcının yaptığı eylem ile sistemin verdiği cevap arasındaki kuralları ifade eder. Aynı component farklı state'lerde tutarlı davranmalıdır. Kullanıcı Save butonuna bastığında her ekranda benzer feedback ve hata modeli görürse sistemi daha hızlı öğrenir. Davranış kuralları yalnızca tasarımcının ekranında değil component API ve frontend kod standardında da tanımlanmalıdır. Design system içinde interaction pattern'lerinin belgelenmesi bu nedenle görsel token'lar kadar değerlidir.

Kullanıcı Eylemleri

Kullanıcı eylemi click, key press, touch, drag veya form submit gibi input'lardan oluşabilir. Aynı görevin farklı input yöntemleriyle tamamlanabilmesi accessibility açısından önemlidir. Her eylem potansiyel state değişimi ve hata senaryosu oluşturur. Frontend tarafında event handler yazmadan önce eylemin tekrar tetiklenmesi, iptal edilmesi veya başarısız olması gibi durumlar düşünülmelidir. Bu yaklaşım yalnızca happy path üzerinde çalışan kırılgan UI davranışlarını azaltır.

Sistem Tepkileri

Sistem tepki verdiğini kullanıcıya mümkün olduğunca hızlı göstermelidir. Butonun pressed state'e geçmesi, loading göstergesi veya optimistic update bu geri bildirimin farklı biçimleridir. İşlem tamamlandığında sonuç açıkça belirtilmelidir. Başarısızlık durumunda kullanıcının ne yapabileceği anlatılmalıdır. Sessizce hiçbir şey olmaması, teknik olarak istek çalışıyor olsa bile kullanıcı tarafından arızalı arayüz olarak algılanır.

Kullanıcıyı Anlamadan Etkileşim Tasarımına Başlamayın

Etkileşim tasarımı yalnızca ekip içindeki varsayımlara dayanırsa kullanıcıların gerçek davranışından kolayca uzaklaşabilir. Kullanıcıların hangi görevi ne sıklıkta yaptığı, hangi terimleri kullandığı ve hangi noktada hata yaptığı araştırılmalıdır. Görüşme, gözlem, analytics ve usability testing farklı bilgi türleri sağlar. Bir persona veya journey haritası yalnızca sunum çıktısı değil, tasarım kararlarının referans noktası olmalıdır. Araştırma küçük ölçekte bile yapıldığında ekiplerin haftalar boyunca geliştireceği yanlış interaction modelini erken fark ettirebilir.

Kullanıcı Araştırması

Kullanıcı araştırması hedef kitlenin davranışlarını, ihtiyaçlarını ve sorunlarını anlamayı amaçlar. Tek yöntem bütün sorulara cevap vermez. Görüşme motivasyonu, gözlem gerçek davranışı ve analytics büyük ölçekli pattern'leri gösterebilir. Araştırma soruları çözümü doğrulatmak yerine problemi anlamaya odaklanmalıdır. Elde edilen bulgular doğrudan user flow, metin, navigation ve feedback kararlarına bağlandığında araştırma geliştirme sürecinin yaşayan bir parçası haline gelir.

Görüşme

Kullanıcı görüşmesi kişinin hedeflerini ve yaşadığı problemleri kendi kelimeleriyle anlamayı sağlar. Kullanıcıya çözüm önerisini satmak yerine geçmişte yaptığı gerçek davranışları sormak daha güvenilir bilgi verir. Ne isterdiniz sorusu yerine son kez bu işlemi yaptığınızda ne oldu sorusu daha somut cevap üretir. Görüşme notları temalara göre gruplanabilir. Tek kullanıcının görüşü genellenmemeli, tekrar eden pattern'ler farklı veri kaynaklarıyla doğrulanmalıdır.

Anket

Anket daha geniş kullanıcı kitlesinden yapılandırılmış bilgi toplamak için kullanışlıdır. Soru dili yönlendirici olmamalı ve kullanıcıya belirli cevabı düşündürmemelidir. Çok uzun anket completion oranını düşürebilir. Açık uçlu ve kapalı uçlu sorular kullanım amacına göre dengelenebilir. Anket sonucu davranışın nedenini tam açıklamayabileceği için gerektiğinde görüşme veya usability testiyle desteklenmelidir.

Gözlem

Gözlem kullanıcının ne söylediği ile gerçekte ne yaptığı arasındaki farkı görmeyi sağlar. Kullanıcı bir işlemin kolay olduğunu söyleyebilir fakat aynı görevde sürekli geri dönüp yardım arıyor olabilir. Moderator mümkün olduğunca kullanıcı davranışına müdahale etmemelidir. Nerede duraksadığı, hangi alanı fark etmediği ve hangi terimleri yanlış yorumladığı kaydedilebilir. Bu bulgular interaction design açısından doğrudan kullanılabilir iyileştirme noktaları üretir.

Persona

Persona araştırma bulgularından oluşturulan temsilî kullanıcı profilidir ve ürün ekibinin herkesi aynı kullanıcı gibi düşünmesini engeller. Persona gerçek veriyle desteklenmezse dekoratif belgeye dönüşebilir. Hedefler, davranışlar, deneyim seviyesi ve temel sorunlar persona içinde yer alabilir. Tasarım kararı alınırken hangi persona hangi görevi hangi koşulda yapıyor sorusu kullanılabilir. Çok fazla persona oluşturmak odak kaybına neden olduğu için davranış açısından anlamlı farklılık taşıyan sınırlı gruplar tercih edilmelidir.

Jobs to Be Done

Jobs to Be Done kullanıcıyı demografik özellikten çok tamamlamak istediği iş üzerinden anlamaya odaklanır. Kullanıcı bir raporlama aracını grafik görmek için değil yönetime doğru kararı hızlı sunmak için kullanabilir. Bu bakış feature tasarımını daha temel kullanıcı sonucuna bağlar. Bir interaction gerekli mi sorusu ilgili job'a katkısı üzerinden değerlendirilebilir. JTBD yaklaşımı özellikle aynı ürünün farklı kullanıcı tipleri tarafından farklı amaçlarla kullanıldığı kurumsal uygulamalarda yararlı bir çerçeve sunar.

User Journey

User Journey kullanıcının hedefe ulaşırken geçtiği aşamaları ve bu aşamalardaki duygu, sorun ve temas noktalarını görünür hale getirir. Yalnızca uygulama içindeki ekranlar değil önceki ve sonraki adımlar da değerlendirilebilir. Kullanıcı bir e posta bağlantısından başlayıp support görüşmesiyle işi tamamlıyorsa deneyim tek ekranla sınırlı değildir. Journey üzerinde yüksek sürtünme yaşanan noktalar interaction iyileştirmesi için önceliklendirilebilir. Analytics ve araştırma verisi journey'i varsayım belgesi olmaktan çıkarır.

Task Analysis

Task Analysis kullanıcının belirli hedefi tamamlamak için yaptığı adımları parçalara ayırır. Gereksiz adımlar, tekrar girişler ve karmaşık karar noktaları bu analizle görünür hale gelir. Bir iş akışı on adım içeriyorsa her adımın gerçekten gerekli olup olmadığı sorgulanabilir. Task analysis özellikle form, onboarding ve admin işlem akışlarında yararlıdır. Frontend tasarımı sonucunda kullanıcının tıklama sayısını körü körüne azaltmak yerine doğru kararları daha az zihinsel yükle vermesini sağlamak hedeflenmelidir.

Kullanıcının Ana Hedefini Belirlemek

Bir ekranın ana kullanıcı hedefi bilinmiyorsa visual hierarchy ve primary action kararları rastgele hale gelir. Dashboard kullanıcısı için ana hedef bir sorunu tespit etmek, e ticaret kullanıcısı için doğru ürünü bulmak olabilir. Hedef mümkün olduğunca kullanıcı diliyle ifade edilmelidir. Tasarımdaki her ana element bu hedefe katkısı açısından değerlendirilebilir. Ana hedef net olduğunda secondary content ve advanced seçeneklerin progressive disclosure altında tutulması daha kolay hale gelir.

Kullanıcı Akışı (User Flow) Nasıl Tasarlanır?

User flow kullanıcının bir hedefe ulaşırken geçtiği ekran, karar ve sistem durumlarını gösterir. İyi bir akış yalnızca happy path çizmez, error, cancel, back ve exit senaryolarını da kapsar. Frontend geliştirici açısından user flow component state ve route davranışlarını erken anlamayı sağlar. Özellikle authentication, payment ve multi-step form gibi akışlarda edge case'lerin tasarım öncesi görünür olması development sırasında sürprizleri azaltır. Flow mümkün olduğunca kullanıcı hedefinden başlayıp success state'e kadar takip edilmeli ve her önemli karar noktasında kullanıcının hangi bilgiye ihtiyaç duyduğu değerlendirilmelidir.

Başlangıç Noktası

Kullanıcı akışı her zaman uygulamanın ana sayfasından başlamaz. Kullanıcı deep link, notification, search result veya e posta bağlantısından belirli ekrana gelebilir. Flow tasarlanırken gerçek giriş noktaları listelenmelidir. Gerekli context bulunmadığında kullanıcı ne görecek sorusu ayrıca düşünülmelidir. Route'un yalnızca önceki ekrandan gelindiğinde çalışması kırılgan bir deneyim oluşturur.

Kullanıcı Kararları

Kullanıcının seçim yapması gereken noktalar flow üzerinde açık biçimde gösterilmelidir. Çok fazla karar art arda geliyorsa cognitive load yükselir. Gereksiz seçenekler kaldırılabilir veya advanced alanlara taşınabilir. Kullanıcının karar verebilmesi için gerekli bilgi karar noktasından önce sunulmalıdır. Yanlış seçimin geri alınabilir olması kullanıcı kontrolünü artırır.

Kritik Eylemler

Kritik eylemler geri alınması zor, finansal veya güvenlik açısından önemli işlemleri içerir. Silme, ödeme veya izin verme gibi adımlar flow içinde ayrıca vurgulanmalıdır. Confirmation her küçük işlemde kullanılmamalı, gerçekten yüksek etkili durumlara ayrılmalıdır. Kullanıcı sonuç hakkında açıkça bilgilendirilmelidir. Mümkün olduğunda Undo gibi geri dönüş seçenekleri confirmation dialog sayısını azaltabilir.

Success State

Success state kullanıcı hedefinin tamamlandığını açık biçimde göstermelidir. İşlem bittiğinde yalnızca modalı kapatmak bazen yeterli feedback sağlamaz. Kullanıcı ne olduğunu ve sonraki adımın ne olabileceğini bilmelidir. Oluşturulan kayda git, yeni işlem başlat veya listeye dön gibi doğal continuation seçenekleri sunulabilir. Success message kısa süreli toast olarak kaybolacaksa kritik bilginin başka yerde de görünür kalması gerekebilir.

Error Paths

Error path network, validation, permission veya server hatası oluştuğunda kullanıcının akışının nasıl devam edeceğini tanımlar. Tasarım yalnızca kırmızı mesaj göstermekle tamamlanmaz. Kullanıcının veri kaybedip kaybetmeyeceği, retry yapıp yapamayacağı ve geri dönebileceği nokta belirlenmelidir. Tek hata bütün multi-step formu başa döndürmemelidir. Error flow ne kadar erken tasarlanırsa frontend state yönetimi o kadar güvenilir hale gelir.

Exit Paths

Kullanıcı her akışı tamamlamak zorunda değildir ve bazen güvenli biçimde çıkmak ister. Cancel, back veya close davranışları veri kaybı riskine göre tasarlanmalıdır. Form değişikliği varsa kaydetmeden çıkma uyarısı gerekebilir. Akışı kapattıktan sonra kullanıcının hangi ekrana döneceği öngörülebilir olmalıdır. Exit path tanımlanmamış modal veya wizard kullanıcıyı mahsur kalmış hissine götürebilir.

Happy Path Dışındaki Senaryolar

Gerçek kullanıcılar yalnızca tasarım ekibinin beklediği sırayla hareket etmez. Browser back kullanabilir, bağlantıyı yeni sekmede açabilir veya network kesildiğinde tekrar deneyebilir. Permission değişebilir, veri başka kullanıcı tarafından silinebilir veya oturum süresi dolabilir. Bu durumlar flow içinde en azından kritik alanlarda düşünülmelidir. Dayanıklı frontend yalnızca ideal senaryoda değil beklenmeyen state kombinasyonlarında da kullanıcıya anlaşılır bir çıkış yolu sunar.

İyi Bir Etkileşimli Arayüzün Temel İlkeleri

İyi etkileşimli arayüz kullanıcıya mümkün eylemleri gösterir, yaptığı işlemi onaylar ve hata durumunda çıkış yolu sunar. Discoverability, visibility, affordance, feedback ve consistency gibi ilkeler bu davranışı sistematik biçimde değerlendirmeye yardımcı olur. Bu prensipler tek bir framework'e veya tasarım trendine bağlı değildir. Yeni bir component geliştirirken yalnızca nasıl görünüyor sorusu yerine kullanıcı bununla ne yapacağını anlıyor mu, eylem sonrasında sistem ne yaptığını gösteriyor mu ve yanlış durumda geri dönebiliyor mu soruları sorulmalıdır. Design system review süreçlerinde bu ilkeler component kabul kriterlerine dönüştürülebilir.

Discoverability

Discoverability kullanıcının hangi eylemlerin mümkün olduğunu kolayca keşfedebilmesini ifade eder. Kritik işlev gizli gesture, hover veya belirsiz ikon arkasında kaldığında kullanıcı özelliğin varlığını bilemeyebilir. Arayüz mümkün eylemleri anlaşılır visual cue, label ve layout ile göstermelidir. Her şeyi aynı anda görünür yapmak da overload yaratabilir, bu nedenle sık ve önemli eylemler önceliklendirilmelidir. Yeni kullanıcı testlerinde kullanıcıların yardım almadan ana görevi başlatıp başlatamadığı discoverability açısından güçlü sinyaldir.

Kullanıcı Hangi Eylemlerin Mümkün Olduğunu Anlayabiliyor mu?

Bir elementin tıklanabilir veya düzenlenebilir olduğu görünümünden anlaşılmalıdır. Kullanıcı text mi yoksa link mi olduğunu tahmin etmek zorunda kalmamalıdır. Inline edit gibi daha az tanıdık pattern'lerde edit icon veya açık label keşfedilebilirliği artırabilir. Kritik action görünür hierarchy içinde yer almalıdır. Usability testi sırasında kullanıcı doğru elementin üzerinde uzun süre arama yapıyorsa discoverability problemi olduğu düşünülebilir.

Gizli Etkileşimlerden Kaçınmak

Swipe, long press veya hover gibi gizli etkileşimler yardımcı özellik olarak kullanılabilir fakat temel görevin tek erişim yolu olmamalıdır. Kullanıcı gesture'ı bilmiyorsa özelliği keşfedemez. Alternatif button veya menu action sunmak daha güvenilir bir deneyim oluşturur. Gesture kullanımında ilk kullanım ipucu gerektiğinde gösterilebilir. Touch, keyboard ve assistive technology kullanıcılarının da aynı işi tamamlayabilmesi tasarımın temel kriteri olmalıdır.

Visibility

Visibility kullanıcının karar vermesi için gerekli bilgi ve aksiyonların doğru zamanda görünür olmasını sağlar. Her şeyi aynı anda göstermek iyi visibility anlamına gelmez. Önemli içerikler ve primary action önde tutulurken advanced seçenekler progressive disclosure ile açılabilir. Kullanıcının bulunduğu state de görünür olmalıdır. Seçili filter, aktif tab veya devam eden upload gizli kaldığında kullanıcı sistemin mevcut durumunu yanlış anlayabilir.

Kritik İşlevleri Görünür Kılmak

Kritik ve sık kullanılan eylemler ikincil menüler içinde saklanmamalıdır. Primary action yerleşimi user flow ve kullanım sıklığına göre belirlenmelidir. Ekrandaki bütün butonlar aynı görsel ağırlığa sahip olursa kullanıcı neye öncelik vereceğini anlamakta zorlanır. Kritik eylemin görünürlüğü erişilebilir isim ve keyboard erişimiyle de desteklenmelidir. Analytics üzerinde sık kullanılan bir işlev menü içinde sürekli aranmaya çalışılıyorsa navigation hierarchy yeniden değerlendirilebilir.

Progressive Disclosure

Progressive disclosure kullanıcının yalnızca o anda gerekli seçenekleri görmesini sağlar. Advanced ayarlar başlangıçta gizlenip ihtiyaç halinde açılabilir. Bu yöntem özellikle karmaşık form ve yönetim ekranlarında cognitive load'u azaltır. Gizlenen seçeneklerin nerede bulunabileceği yine keşfedilebilir olmalıdır. Kullanıcı sık kullanılan ayarı her seferinde çok sayıda adım sonunda buluyorsa disclosure seviyesi fazla derin olabilir.

Affordance

Affordance bir nesnenin nasıl kullanılabileceğine dair sunduğu ipucudur. Fiziksel dünyada kapı kolu çekmeyi veya çevirmeyi düşündürür, dijital arayüzde button görünümü tıklamayı düşündürür. Flat design içinde bütün elementleri aynı görsel stile getirmek tıklanabilir ve statik içerik arasındaki farkı azaltabilir. Bu nedenle shape, border, background ve spacing interaction ihtimalini desteklemelidir. Kullanıcı eylemi denemeden elementin işlevini anlayabiliyorsa affordance güçlüdür.

Buton Buton Gibi Görünmeli

Butonun tıklanabilir olduğu shape, contrast ve placement üzerinden anlaşılmalıdır. Sadece renkli text ile kritik işlemi göstermek kullanıcıyı link ve button arasında kararsız bırakabilir. Primary ve secondary button stilleri design system içinde tutarlı olmalıdır. Disabled button görünümü de eylemin neden kullanılamadığını gerektiğinde açıklamalıdır. Button component görsel olarak basit olsa bile focus, pressed ve loading state'leri tam tanımlandığında daha güvenilir interaction sunar.

Tıklanabilir Alanların Anlaşılması

Kartın tamamı tıklanabiliyorsa yalnızca başlığın link gibi görünmesi kullanıcıya eksik signal verebilir. Hover, cursor ve focus state tıklanabilir alanı açıkça gösterebilir. Mobile cihazda hover olmadığı için layout ve affordance tek başına yeterli olmalıdır. Nested button ve link yapıları semantik ve event çakışmasına yol açmamalıdır. Kullanıcı click target sınırını tahmin etmek zorunda kalıyorsa component interaction tasarımı yeniden ele alınmalıdır.

Signifiers

Signifiers kullanıcıya bir interaction'ın nerede ve nasıl yapılabileceğini gösteren işaretlerdir. Affordance kullanım ihtimalini anlatırken signifier bu ihtimali görünür hale getirir. Icon, label, cursor veya visual cue farklı signifier türleridir. Aynı eylem için farklı ekranlarda farklı işaret kullanmak öğrenilebilirliği azaltır. Design system içinde interaction signifier'larının ortaklaştırılması kullanıcıların yeni ekranları daha hızlı anlamasını sağlar.

Icon

Icon küçük alanda eylem hakkında görsel ipucu sağlayabilir. Ancak özel veya çok anlamlı ikonlarda label desteği kullanıcı hatasını azaltır. Aynı ikon farklı eylemler için kullanılmamalıdır. Icon button accessible name taşımalıdır. Hover tooltip yardımcı olabilir fakat interaction'ı yalnızca hover kullanıcıları için anlaşılır hale getirmemelidir.

Label

Label kullanıcının elementin işlevini açıkça anlamasını sağlar. Text destekli button veya menu item çoğu durumda yalnızca ikondan daha kolay öğrenilir. Kısa ama anlamlı ifadeler tercih edilmelidir. Terminoloji uygulama boyunca tutarlı kalmalıdır. Kullanıcıların araştırmada kullandığı kelimeleri arayüz label'larında kullanmak recognition açısından faydalıdır.

Cursor

Cursor desktop ortamında elementin interaction türü hakkında ek bilgi sağlayabilir. Pointer cursor tıklanabilir alanı destekleyen signal olabilir. Drag işlemlerinde farklı cursor davranışı kullanıcıya state değişimini gösterebilir. Ancak cursor tek signifier olmamalıdır çünkü touch cihazlarda bulunmaz. Görsel affordance ve semantic element doğru olduğunda cursor yalnızca ek destek görevi görür.

Visual Cue

Visual cue border, underline, shadow, highlight veya directional işaret gibi kullanıcı dikkatini yönlendiren görsel ipucudur. Kritik interaction için subtle ama anlaşılır cue kullanılabilir. Çok fazla görsel vurgu bir arada olduğunda hangi cue'nun önemli olduğu kaybolur. State değişiminde cue kullanıcıya yeni durumu gösterebilir. Visual cue renk dışında shape veya text ile de desteklenirse accessibility açısından daha dayanıklı olur.

Feedback

Feedback kullanıcının yaptığı eylemin sistem tarafından alındığını ve sonucunun ne olduğunu göstermesidir. Bir butona basıldıktan sonra hiçbir değişiklik olmaması kullanıcıyı tekrar tıklamaya itebilir. Immediate visual feedback, loading ve success state bu belirsizliği azaltır. Feedback işlemin önemine ve süresine göre seçilmelidir. Küçük bir toggle değişikliği için modal confirmation gereksizken uzun file upload için progress bilgisi ve cancel seçeneği gerekli olabilir.

Eylemin Alındığını Bildirmek

Kullanıcı click veya submit sonrasında sistemin input'u aldığını hızlıca görmelidir. Button pressed state, spinner veya optimistic update bu görevi yapabilir. Feedback gecikirse kullanıcı işlemi tekrar başlatabilir. Double submit özellikle ödeme ve form gönderiminde ciddi problem yaratır. Immediate feedback kullanıcıya teknik request bitmeden önce bile sistemin çalıştığı konusunda güven verir.

İşlem Durumunu Göstermek

İşlem belirli süre devam ediyorsa kullanıcı yalnızca başladı bilgisinden fazlasına ihtiyaç duyabilir. Determinate progress mümkünse yüzde veya adım bilgisi gösterilebilir. Süre belirsizse indeterminate indicator kullanılabilir. Uzun işlemlerde iptal seçeneği düşünülmelidir. Progress bilgisi yalnızca görsel değil screen reader kullanıcıları için de erişilebilir biçimde güncellenmelidir.

Sonucu Açıklamak

İşlem tamamlandıktan sonra kullanıcı ne olduğunu net olarak anlamalıdır. Kaydedildi mesajı kısa işlemler için yeterli olabilirken ödeme veya import gibi önemli süreçlerde daha ayrıntılı success state gerekir. Oluşturulan kaydın linki veya sonraki action sunulabilir. Toast çok hızlı kayboluyorsa kritik sonuç ayrıca sayfa içinde görünmelidir. Sonuç feedback'i kullanıcının aynı işi tekrar yapıp yapmaması konusunda belirsizlik bırakmamalıdır.

Consistency

Consistency kullanıcıların bir ekranda öğrendiği davranışı başka ekranda yeniden kullanabilmesini sağlar. Görsel, davranışsal ve terminoloji tutarlılığı birlikte değerlendirilmelidir. Aynı Save işlemi bir yerde sağ üstte, başka yerde gizli menüde ve üçüncü yerde farklı isimde olduğunda öğrenme yükü artar. Design system consistency'yi teknik olarak destekleyebilir. Ancak component kullanımı ve UX pattern dokümantasyonu olmazsa aynı component bile farklı bağlamlarda çelişkili davranabilir.

Görsel Tutarlılık

Aynı türde button, form field ve notification uygulama boyunca benzer görsel dili kullanmalıdır. Kullanıcı renk ve shape üzerinden component türünü tanımaya başlar. Farklı ekiplerin kendi button stilini üretmesi design debt oluşturur. Token tabanlı design system bu davranışı sınırlayabilir. Görsel consistency accessibility contrast ve focus standartlarını da merkezi hale getirir.

Davranışsal Tutarlılık

Benzer componentler benzer interaction kurallarıyla çalışmalıdır. Modal Escape ile kapanıyorsa aynı tür diğer modal'larda da beklenen davranış budur. Form submit sonrası loading ve error feedback modeli ortak olabilir. Kullanıcı aynı görünümdeki iki elementin farklı davranması durumunda sisteme güvenini kaybedebilir. Davranışsal standart component dokümantasyonunda state ve keyboard davranışıyla birlikte açıklanmalıdır.

Terminoloji Tutarlılığı

Aynı kavrama farklı ekranlarda müşteri, kullanıcı ve üye gibi farklı isimler verilmesi confusion yaratabilir. Domain terimleri ürün genelinde ortaklaştırılmalıdır. Button eylemleri de benzer fiil yapısını kullanmalıdır. Terminoloji glossary tasarım ve geliştirme ekipleri için ortak kaynak olabilir. Kullanıcı araştırmasında anlaşılmayan terimler tespit edilerek ürün diline yansıtılmalıdır.

User Control

User Control kullanıcının başlattığı işlemi yönetebilmesini ve gerektiğinde geri dönebilmesini ifade eder. Sistem kullanıcıyı zorunlu akışta mahsur bırakmamalıdır. Cancel, Back, Undo ve Redo gibi mekanizmalar hata korkusunu azaltır. Özellikle destructive veya uzun işlemlerde kontrol hissi önemlidir. Kullanıcı ne zaman geri dönemeyeceğini de işlem öncesinde açıkça bilmelidir.

Cancel

Cancel kullanıcıya devam etmek istemediği işlemden çıkma yolu sağlar. Uzun form veya upload sürecinde iptal seçeneği daha önemli hale gelir. İptal sırasında girilen veri kaybolacaksa gerekli uyarı gösterilebilir. Cancel eylemi primary action ile karıştırılmayacak görsel ağırlıkta sunulmalıdır. Modal içinde kapatma ikonu yanında text button da bazı kullanıcılar için daha anlaşılır olabilir.

Back

Back kullanıcıların web ve mobil ürünlerde en temel beklentilerinden biridir. SPA routing browser back davranışını bozmamalıdır. Kullanıcı bir filtre veya detay sayfasından döndüğünde mümkünse önceki context ve scroll pozisyonu korunmalıdır. Wizard içinde Back veri kaybına neden olmamalıdır. Custom navigation geliştirirken platformun native beklentileri mümkün olduğunca korunmalıdır.

Undo

Undo kullanıcı hatasını cezalandırmak yerine geri alınabilir hale getirir. E posta silme veya liste öğesi kaldırma gibi işlemlerde confirmation dialog yerine daha akıcı deneyim sağlayabilir. Undo için işlem kısa süre reversible state'te tutulabilir. Kritik ve teknik olarak geri döndürülemeyen işlemlerde bu pattern uygun değildir. Kullanıcıya ne kadar süre geri alma hakkı olduğu anlaşılır biçimde gösterilmelidir.

Redo

Redo özellikle editor ve yaratıcı araçlarda Undo sonrasında işlemi yeniden uygulama imkanı sağlar. Keyboard shortcut ve toolbar davranışı platform expectation ile uyumlu olmalıdır. History state memory ve veri modeli açısından planlanmalıdır. Redo her form veya basit uygulama için gerekli değildir. Kullanıcının sık tekrar eden düzenleme işi varsa güçlü kontrol ve güven hissi sağlar.

Error Prevention

Error prevention kullanıcı hata yaptıktan sonra mesaj göstermek yerine hatanın oluşmasını baştan azaltmayı hedefler. Input constraint, format helper ve destructive action confirmation bu yaklaşımın farklı örnekleridir. Hata önleme kullanıcıyı gereksiz yere sınırlandırmamalıdır. Kullanıcının yapamayacağı seçenek disabled bırakılıyorsa neden kullanılamadığını anlaması gerekir. En iyi error UX çoğu zaman kullanıcının hiç error message görmesine gerek bırakmayan tasarımdır.

Constraint Kullanımı

Constraint kullanıcıyı geçersiz seçeneklerden uzak tutar. Tarih seçicide geçmiş gün seçilemeyecekse bu günler disabled olabilir. Numeric input yalnızca uygun değer aralığını kabul edebilir. Ancak constraint görünür ve anlaşılır olmalıdır. Kullanıcı neden belirli değeri seçemediğini bilmiyorsa hata önlenirken yeni bir usability problemi oluşturulabilir.

Destructive Action Confirmation

Destructive action confirmation geri alınması zor işlemler öncesinde kullanıcının niyetini doğrular. Her küçük silme için modal göstermek interaction akışını gereksiz yavaşlatabilir. Yüksek etkili işlemlerde confirmation içeriği neyin silineceğini açıkça belirtmelidir. Primary destructive button belirgin fakat yanlış tıklamayı teşvik etmeyecek şekilde yerleştirilmelidir. Undo mümkünse bazı düşük riskli işlemlerde confirmation yerine daha rahat kullanıcı deneyimi sağlayabilir.

Error Recovery

Error recovery hata oluştuktan sonra kullanıcının hedefe geri dönebilmesini sağlar. Teknik problem bilgisi tek başına yeterli değildir. Kullanıcıya ne olduğu, ne yapabileceği ve verisinin korunup korunmadığı anlatılmalıdır. Retry, edit veya support seçenekleri hata tipine göre sunulabilir. İyi recovery flow kullanıcının bütün işlemi baştan yapmasını mümkün olduğunca engeller.

Açık Hata Mesajı

Hata mesajı kullanıcı dilinde ve spesifik olmalıdır. Bir şeyler ters gitti ifadesi yalnızca gerçekten daha fazla bilgi verilemeyen durumlarda kullanılmalıdır. Hangi alan veya işlem başarısız olduysa mesaj o bağlama yakın yerleştirilmelidir. Teknik kod gerektiğinde support için ayrıca gösterilebilir fakat ana açıklamanın yerine geçmemelidir. Error message screen reader tarafından uygun zamanda okunabilecek biçimde yapılandırılmalıdır.

Sorunun Çözümünü Göstermek

Kullanıcı hata mesajını okuduğunda sonraki adımı anlayabilmelidir. Dosya çok büyükse kabul edilen maksimum boyut belirtilmelidir. Network sorunu geçiciyse Retry butonu sunulabilir. Permission problemi varsa erişim isteme veya doğru role yönlendirme düşünülebilir. Yalnızca problemi anlatıp çözüm yolu göstermemek kullanıcıyı support kanalına gereksiz yere iter.

Mental Model Nedir ve UI Tasarımını Nasıl Etkiler?

Mental model kullanıcının bir sistemin nasıl çalıştığına dair zihninde oluşturduğu beklentidir. Kullanıcı daha önceki ürünlerden, fiziksel dünyadan ve kullandığı platformdan öğrenilmiş pattern'lerle yeni arayüze gelir. Tasarım bu beklentilerle çok fazla çatıştığında kullanıcı sürekli deneme yaparak sistemi öğrenmek zorunda kalır. Yeni pattern bazen gerekli olabilir fakat gerçekten kullanıcıya değer sağlamalıdır. Tanıdık navigasyon, form ve interaction pattern'lerini doğru yerde kullanmak öğrenme maliyetini azaltır ve ürünün daha hızlı benimsenmesine yardımcı olur.

Kullanıcının Sistemin Nasıl Çalıştığına Dair Beklentisi

Kullanıcı bir sepet ikonunun alışveriş ürünlerini, büyütecin aramayı ve logo tıklamasının ana sayfayı açmasını bekleyebilir. Bu beklentiler yıllar içinde farklı ürünlerden öğrenilir. Tasarım bu pattern'leri değiştirdiğinde kullanıcı ek zihinsel yük taşır. Yenilik yalnızca farklı görünmek için yapılmamalıdır. Kullanıcı expectation'ına uygun pattern seçmek ürünün kullanımını öğrenmek için gerekli zamanı azaltır.

Conceptual Model

Conceptual model ürün ekibinin sistemin nasıl çalışmasını tasarladığı yapıdır. Veri ilişkileri, navigation ve interaction kuralları bu modelin parçasıdır. Kullanıcı conceptual modelin teknik ayrıntılarını bilmek zorunda değildir. Arayüz bu yapıyı kullanıcıya anlaşılır bir temsil üzerinden sunmalıdır. Teknik backend modeli doğrudan UI'ya taşındığında kullanıcı domain kavramlarını anlamakta zorlanabilir.

Mental Model

Mental model kullanıcının deneyimlerinden oluşturduğu kişisel sistem anlayışıdır. İki kullanıcı aynı ürünü farklı şekilde yorumlayabilir. Araştırma ve usability testing bu modelleri anlamaya yardımcı olur. Kullanıcının sistemdeki bir kavramı sürekli yanlış tahmin etmesi interface terminology veya conceptual model problemine işaret edebilir. UI mümkün olduğunca kullanıcı mental modeline yakın tasarlanmalıdır.

İki Model Uyuşmadığında Ne Olur?

Conceptual model ile mental model uyuşmadığında kullanıcı beklemediği sonuçlarla karşılaşır. Örneğin Save yerine otomatik kayıt çalışan sistem kullanıcıya açık feedback vermezse kişi verisinin kaydedilip kaydedilmediğinden emin olamaz. Bu belirsizlik tekrar tıklama veya veri kaybı korkusu oluşturur. Ürün behavior açıklanabilir veya interaction mevcut expectation'a yaklaştırılabilir. Usability testi bu uyuşmazlıkların en hızlı görüldüğü yöntemlerden biridir.

Kullanıcının Bildiği Pattern'leri Kullanmak

Tanıdık UI pattern'leri kullanıcıya yeni davranış öğretme ihtiyacını azaltır. Standard checkbox, select, tab ve navigation yapıları bu nedenle güçlüdür. Custom component gerçekten yeni bir problem çözmüyorsa native veya bilinen pattern daha iyi olabilir. Tanıdık pattern accessibility açısından da genellikle daha olgun beklentilere sahiptir. Tasarım farklı görünmek adına temel interaction kurallarını bozduğunda kullanıcı deneyimi gereksiz yere zorlaşabilir.

Recognition Rather Than Recall

Recognition Rather Than Recall kullanıcının bilgiyi hafızasından hatırlamak zorunda kalmak yerine seçenekleri görerek tanımasını destekler. Arayüz kullanıcıdan gizli komut, format veya navigation yolunu hatırlamasını beklememelidir. Recent searches, visible menu ve icon plus label bu prensibi destekler. İnsan çalışma belleği sınırlı olduğu için karmaşık görevlerde seçenekleri görünür tutmak cognitive load'u azaltır. Özellikle kurumsal uygulamalarda kullanıcı ekranlar arasında çok sayıda kod ve terim hatırlamak zorunda kalıyorsa interface görev yerine hafıza testi haline gelebilir.

Kullanıcıya Hatırlatmak Yerine Seçenekleri Göstermek

Kullanıcı bir komutun tam adını veya kategori kodunu hatırlamak zorunda bırakılmamalıdır. Autocomplete, select veya recent item listesi seçenekleri görünür hale getirir. Çok fazla seçenek varsa search ve grouping kullanılabilir. Kullanıcının geçmiş seçimleri bağlama göre gösterilebilir. Bu yaklaşım hem hız hem hata oranı açısından manual recall gerektiren tasarımlardan daha güçlü olabilir.

Tanıdık UI Pattern'leri

Tanıdık pattern kullanıcıların önceki deneyimlerini yeni ürüne taşımasına izin verir. Tabs, breadcrumb, search box ve standard form controls recognition avantajı sağlar. Gereksiz custom pattern kullanıcıdan yeni davranış öğrenmesini ister. Design system tanıdık pattern'leri ürün diline uyarlayabilir. Platform convention'ları özellikle mobil navigation ve keyboard interaction tarafında dikkate alınmalıdır.

Icon + Label Kullanımı

Yalnızca ikon kullanmak ekranı sade gösterebilir fakat icon anlamı her zaman açık olmayabilir. Icon plus label action'ı daha hızlı tanınır hale getirir. Özellikle düşük frekanslı veya özel domain eylemlerinde text desteği önemlidir. Mobile alanda text sığmıyorsa accessible name ve gerekli tooltip kullanılabilir. Primary action yalnızca belirsiz ikonla gösterilmemelidir.

Menü ve Navigation Tasarımı

Navigation kullanıcının ürünün bilgi yapısını tanımasına yardımcı olur. Menu label'ları kullanıcı dilinde olmalıdır. Çok derin hierarchy kullanıcıdan önceki yolları hatırlamasını bekleyebilir. Breadcrumb veya section heading mevcut konumu görünür hale getirir. Sık kullanılan alanların daha erişilebilir yerleştirilmesi task completion süresini azaltabilir.

Cognitive Load'u Azaltmak

Cognitive load kullanıcının görevi yaparken zihninde tutması gereken bilgi miktarı arttıkça büyür. Uzun form, çok seçenekli menu ve belirsiz interaction bu yükü artırabilir. Grouping, progressive disclosure ve clear defaults yükü azaltır. Kullanıcıya aynı anda yalnızca karar vermesi için gerekli bilgi gösterilmelidir. Gereksiz dekoratif veya tekrar eden bilgi de attention maliyeti oluşturabileceği için visual hierarchy dikkatle tasarlanmalıdır.

Etkileşim Tasarımında Fitts Yasası

Fitts Yasası bir hedefe ulaşma süresinin hedefin büyüklüğü ve uzaklığıyla ilişkili olduğunu açıklar. UI tasarımında bu prensip özellikle touch target, primary action ve sık kullanılan kontroller açısından değerlidir. Küçük ikon butonları estetik olarak sade görünse de kullanıcıların doğru hedefe ulaşmasını zorlaştırabilir. Mobil cihazda parmak hassasiyeti mouse pointer'a göre daha düşüktür. Sık kullanılan ve kritik eylemlerin yeterli target alanına sahip olması interaction hızını artırır ve yanlış tıklama oranını azaltır.

Hedef Boyutu

Büyük target kullanıcı tarafından daha kolay seçilebilir. Görsel ikon küçük olsa bile hit area daha geniş tutulabilir. Button padding hem erişilebilirlik hem de Fitts açısından önemlidir. Çok büyük target da ekran alanını gereksiz tüketebilir. Tasarım frequency ve importance ile target size arasında denge kurmalıdır.

Hedefe Uzaklık

Sık kullanılan eylem kullanıcının mevcut odak noktasından çok uzakta olduğunda interaction süresi artabilir. Mobile ekranlarda primary action alt bölgeye yakın yerleştirilebilir. Desktop toolbar tasarımında context-sensitive actions ilgili içeriğe yakın olabilir. Ancak sürekli hareket eden action konumları muscle memory oluşturmayı zorlaştırır. Yerleşim kullanım sıklığı ve platform expectation ile birlikte değerlendirilmelidir.

Mobil Touch Target'lar

Mobil touch target yalnızca icon görsel boyutuyla sınırlı olmamalıdır. Parmakla güvenilir seçim için yeterli hit area ve elementler arasında boşluk gerekir. Yan yana küçük destructive ve primary icon'lar yanlış dokunma riskini artırabilir. Touch target accessibility kontrolünün parçası olarak test edilmelidir. Gerçek cihaz testi emulator'dan daha güvenilir sonuç verir.

Primary Action Yerleşimi

Primary action kullanıcı task flow içinde kolay erişilebilir ve görünür olmalıdır. Form sonunda kaydet button'u doğal okuma akışında bulunabilir. Mobile sticky action bazı uzun formlarda erişimi kolaylaştırabilir. Ancak sticky control içeriği kapatmamalıdır. Aynı task içinde primary action konumu sürekli değişmemelidir.

Küçük Icon Button Problemi

Küçük icon button özellikle table action alanlarında sık görülen usability problemidir. Icon anlamı belirsiz olabilir ve click target yetersiz kalabilir. Tooltip yalnızca hover kullanıcılarına yardımcı olur. Hit area büyütülebilir ve önemli action text label ile desteklenebilir. Çok fazla icon action varsa overflow menu veya contextual action bar daha anlaşılır çözüm olabilir.

Hick Yasası ve Seçenek Sayısı

Hick Yasası seçenek sayısı ve karar verme süresi arasındaki ilişkiyi anlamaya yardımcı olur. Kullanıcıya aynı önem düzeyinde çok fazla seçenek sunulduğunda karar verme zorlaşabilir. Arayüzün görevi seçenekleri gizlemek değil, anlamlı şekilde gruplamak ve önceliklendirmektir. Primary action daha belirgin olabilir, gelişmiş seçenekler gerektiğinde açılabilir. Özellikle onboarding ve checkout gibi task completion odaklı ekranlarda kullanıcıya her olası feature'ı aynı anda göstermek dönüşüm ve hata oranını olumsuz etkileyebilir.

Çok Fazla Seçenek Neden Karar Vermeyi Zorlaştırır?

Kullanıcı seçenekleri karşılaştırmak ve sonuçlarını tahmin etmek için zihinsel kaynak harcar. Benzer seçenek sayısı arttıkça karar süresi uzayabilir. Kullanıcı karar vermeyi erteleyebilir veya rastgele seçim yapabilir. İyi default ve grouping bu yükü azaltır. Gerçekten gerekli olmayan seçenekler arayüzden kaldırılmalıdır.

Progressive Disclosure

Progressive disclosure temel seçenekleri başlangıçta gösterip advanced seçenekleri ihtiyaç halinde açar. Bu yöntem yeni kullanıcıların daha basit akış görmesini sağlar. Deneyimli kullanıcılar gerekli durumda ayrıntıya erişebilir. Disclosure control açık label taşımalıdır. Gizlenen alan kullanıcı için sık kullanılıyorsa daha görünür seviyeye taşınmalıdır.

Menüleri Gruplamak

Uzun menüler anlamlı kategorilere ayrıldığında kullanıcı seçenekleri daha hızlı tarar. Group heading kullanıcı mental modeline uygun olmalıdır. Alfabetik sıra her zaman en iyi grouping değildir. Frequency veya domain ilişkisi daha kullanışlı olabilir. Menu analytics ve usability testing gerçek kullanım pattern'ini gösterebilir.

Primary ve Secondary Action Ayrımı

Bir ekrandaki bütün action'ların aynı görsel ağırlığa sahip olması karar vermeyi zorlaştırır. Primary action ana kullanıcı hedefini temsil eder. Secondary action daha düşük contrast veya farklı button style kullanabilir. Destructive action yanlışlıkla primary gibi görünmemelidir. Action hierarchy user flow ve business priority ile birlikte belirlenmelidir.

Görsel Hiyerarşi ile Kullanıcıyı Yönlendirmek

Görsel hiyerarşi kullanıcının ekrana baktığında hangi bilgiyi önce algılayacağını belirler. Boyut, kontrast, renk, proximity ve white space bilgi önemini ifade etmek için birlikte kullanılabilir. Bütün elementlerin güçlü görünmesi hiçbir elementin gerçekten güçlü görünmemesine yol açar. Primary CTA ve kritik bilgi diğer içerikten ayrılmalıdır. Kullanıcı göz tarama sırasını usability test veya heatmap verisiyle değerlendirmek tasarım hiyerarşisinin gerçekten beklenen şekilde çalışıp çalışmadığını gösterebilir.

Boyut

Büyük element genellikle daha fazla dikkat çeker. Heading ve primary metric bu nedenle daha büyük olabilir. Ancak her önemli içeriği büyütmek hierarchy'yi yok eder. Boyut farklılığı sınırlı ve sistematik kullanılmalıdır. Responsive tasarımda büyük elementlerin küçük ekranı aşırı kaplamaması gerekir.

Kontrast

Kontrast elementin çevresinden ayrılmasını sağlar. Primary button background ve text contrast sayesinde hızlı fark edilebilir. Çok fazla yüksek kontrast dikkat yarışına neden olur. Text contrast accessibility gereksinimlerini karşılamalıdır. Disabled state düşük kontrast kullanırken yine okunabilir kalmalıdır.

Renk

Renk önemli action veya state'i vurgulayabilir. Brand renk primary CTA için kullanılabilir. Error ve warning farklı anlamları destekleyen renk sistemine sahip olabilir. Renk tek anlam taşıyıcısı olmamalıdır. Design token kullanımı bütün ekranlarda renk davranışını tutarlı hale getirir.

Proximity

Birbirine yakın elementler kullanıcı tarafından ilişkili algılanır. Label input'a, error message problemli alana yakın yerleştirilmelidir. Farklı section'lar spacing ile ayrılabilir. Yanlış proximity kullanıcıya bilgi ilişkisi hakkında yanlış mesaj verir. Layout sistemi yalnızca estetik değil anlam taşıyan bir araç olarak kullanılmalıdır.

White Space

White space içerik gruplarını ayırır ve görsel yoğunluğu azaltır. Boş alan wasted space olarak görülmemelidir. Özellikle yoğun admin ekranlarında breathing room kullanıcı taramasını kolaylaştırır. Çok fazla boşluk küçük ekranda gereksiz scroll yaratabilir. Spacing token'ları tutarlı rhythm oluşturur.

Primary CTA

Primary CTA ekranın temel kullanıcı hedefini temsil eder. Görsel olarak secondary actionlardan ayırt edilmelidir. Aynı ekran içinde çok sayıda primary CTA kullanmak önem sırasını belirsizleştirir. Button metni eylemi açık biçimde anlatmalıdır. Mobile yerleşimde erişilebilirlik ve thumb reach dikkate alınabilir.

Secondary CTA

Secondary CTA kullanıcıya alternatif veya tamamlayıcı eylem sunar. Primary button ile yarışmaması için daha düşük görsel ağırlık kullanabilir. Cancel, Preview veya Save Draft gibi seçenekler örnek olabilir. Secondary action yine keşfedilebilir kalmalıdır. Çok sayıda secondary seçenek varsa menu veya grouping düşünülebilir.

Microinteraction Nedir?

Microinteraction tek bir küçük görev veya durum değişimi etrafında gerçekleşen kısa interaction döngüsüdür. Like button'a basma, toggle değiştirme veya copy işlemi sonrası feedback buna örnek olabilir. Değeri büyük feature eklemekten değil küçük davranışları anlaşılır ve tatmin edici hale getirmekten gelir. İyi microinteraction kullanıcıya ne olduğunu açıklar, kötü kullanım ise gereksiz animasyonla işi yavaşlatabilir. Trigger, rules, feedback ve loops and modes yapısını düşünmek component davranışını daha sistemli tasarlamaya yardımcı olur.

Microinteraction ile Animation Arasındaki Fark

Animation görsel hareket tekniğidir, microinteraction ise belirli kullanıcı veya sistem eyleminin bütün davranış döngüsüdür. Bir like button'ın rengi değişebilir, sayı artabilir ve kısa animation oynayabilir. Burada animation yalnızca feedback'in bir parçasıdır. Microinteraction animation olmadan da çalışabilir. Kullanıcı eylemine anlamlı feedback sağlamak görsel hareket kullanmaktan daha temel amaçtır.

Microinteraction'ın Dört Temel Bileşeni

Microinteraction trigger ile başlar, rules sistemin ne yapacağını belirler, feedback sonucu kullanıcıya gösterir ve loops and modes davranışın zaman içinde nasıl tekrar edeceğini açıklar. Bu çerçeve küçük componentlerin bile bütün state'lerini düşünmeyi sağlar. Toggle yalnızca on ve off görünümünden ibaret değildir, disabled, loading veya error durumu da olabilir. Kurallar tasarım ve frontend arasında açıkça paylaşılmalıdır. Böylece component implementasyonu yalnızca Figma'daki tek görünüme dayanmaz.

Trigger

Trigger interaction'ı başlatan olaydır. Kullanıcı click, swipe veya key press yapabilir, sistem de notification gibi otomatik trigger oluşturabilir. Trigger keşfedilebilir ve beklenen olmalıdır. Gizli gesture tek trigger ise alternatif control düşünülmelidir. Disabled durumda trigger'ın neden çalışmadığı gerektiğinde kullanıcıya açıklanmalıdır.

Rules

Rules trigger sonrasında sistemin hangi state'e geçeceğini tanımlar. Like button zaten seçiliyse tekrar click unlike davranışı oluşturabilir. Network isteği devam ederken tekrar action kabul edilip edilmeyeceği kurallara dahildir. Race condition ve rollback davranışı frontend state modelinde düşünülmelidir. Kurallar net olmadığında visual design doğru görünse bile interaction hatalı çalışabilir.

Feedback

Feedback kullanıcının eylemin işlendiğini anlamasını sağlar. Visual state, sound veya haptic response kullanılabilir. Feedback eylemden mümkün olduğunca kısa süre sonra gelmelidir. Sonuç network'e bağlıysa optimistic veya loading state düşünülebilir. Kritik bilgi yalnızca animation ile verilmemelidir.

Loops and Modes

Loops interaction'ın tekrarlandığında veya zaman içinde nasıl davrandığını açıklar. Toggle tekrar tekrar değiştirilebilir, upload progress ise işlem bitince sona erer. Mode farklı context'te component davranışını değiştirebilir. Kullanıcı mode değişikliğini açıkça görebilmelidir. Gizli mode sistemi tahmin edilmesi zor hale getirir.

Etkili Microinteraction Örnekleri

Etkili microinteraction kullanıcıya işlem sonucu hakkında hızlı ve anlaşılır bilgi verir. Bu davranışlar küçük görünse de ürünün güvenilir ve responsive hissedilmesinde önemli rol oynar. Like, copy, upload ve form validation gibi durumlarda kullanıcı sürekli sistem cevabı bekler. Feedback yetersiz olduğunda aynı action tekrar tetiklenebilir veya kullanıcı işlemin başarısız olduğunu düşünebilir. Microinteraction tasarımında hareketten önce state değişimi ve erişilebilir feedback düşünülmelidir.

Like Butonu

Like button tıklanınca selected state'e hemen geçebilir. Sayaç varsa değişiklik görünür olmalıdır. Network başarısız olursa optimistic update geri alınabilir ve kullanıcıya kısa hata bilgisi gösterilebilir. Button accessible pressed state sunmalıdır. Animation feedback'i destekleyebilir fakat gereksiz uzun olmamalıdır.

Toggle

Toggle iki state arasındaki değişimi hızlı biçimde gösterir. Label yalnızca current state değil kontrolün neyi değiştirdiğini anlatmalıdır. Network'e bağlı setting ise loading veya rollback davranışı gerekebilir. Keyboard ile Space kullanımı desteklenmelidir. Renk dışında thumb konumu veya text de state farkını göstermelidir.

Copy-to-Clipboard Feedback

Copy action sonrasında kullanıcı metnin gerçekten panoya alındığını bilmelidir. Button kısa süre Copied durumuna geçebilir. Toast kullanılacaksa çok uzun kalmamalıdır. Clipboard API başarısız olursa alternative instruction sunulabilir. Screen reader için durum değişimi erişilebilir biçimde duyurulmalıdır.

Password Strength Indicator

Password strength indicator kullanıcı yazarken parola gereksinimleri hakkında feedback sağlar. Sadece renkli bar kullanmak yerine kriterler text ile açıklanmalıdır. Çok agresif validation kullanıcı yazmaya başlamadan hata hissi oluşturmamalıdır. Strength hesabı gerçek security policy ile uyumlu olmalıdır. Password değerinin telemetry veya log sistemlerine taşınmaması gerekir.

File Upload Progress

File upload birkaç saniyeden uzun sürüyorsa progress kullanıcı belirsizliğini azaltır. Dosya adı, progress yüzdesi ve cancel seçeneği sunulabilir. Çoklu upload varsa her dosya ayrı state gösterebilir. Hata durumunda retry seçeneği veri seçimini kaybetmeden kullanılmalıdır. Progress screen reader kullanıcıları için de anlamlı biçimde güncellenmelidir.

Pull to Refresh

Pull to refresh touch cihazlarda tanıdık bir gesture olabilir. Ancak içerik yenilemenin tek yolu gesture olmamalıdır. Pull mesafesi ve feedback kullanıcının threshold'a ulaştığını göstermelidir. Refresh devam ederken mevcut içerik mümkünse korunmalıdır. Platform expectation ile uyumlu kullanıldığında doğal interaction hissi verir.

Form Validation

Form validation kullanıcıya doğru formatı mümkün olduğunca düzeltilebilir biçimde anlatmalıdır. Hata input yakınında gösterilmeli ve girilen veri korunmalıdır. Kullanıcı daha alanı doldurmaya başlamadan error göstermek gereksiz stres yaratabilir. Blur, submit veya gerçek zamanlı validation alan türüne göre seçilmelidir. Başarı feedback'i de bazı karmaşık alanlarda kullanıcının doğru giriş yaptığını gösterebilir.

Add-to-Cart Feedback

Sepete ekleme işlemi kullanıcıya hemen feedback vermelidir. Button state değişebilir, sepet sayacı güncellenebilir veya kısa confirmation gösterilebilir. Kullanıcı aynı ürünü tekrar eklediğinde quantity davranışı anlaşılır olmalıdır. Network başarısızlığında optimistic UI geri alınmalıdır. Checkout akışına devam etmek isteyen kullanıcı için doğal next action sunulabilir.

UI State Tasarımı

Bir component yalnızca default state'ten oluşmaz. Hover, focus, active, selected, disabled, loading, success, warning, error ve empty durumları gerçek ürün kullanımında sürekli ortaya çıkar. Design handoff yalnızca componentin normal ekran görüntüsünü içerirse frontend geliştirici geri kalan davranışı kendi varsayımıyla tamamlamak zorunda kalır. State specification design system içinde belgelenmelidir. Her state görsel, davranışsal ve accessibility açısından tanımlandığında aynı component farklı ekranlarda daha güvenilir biçimde kullanılır.

Default

Default state kullanıcı henüz interaction yapmadan componentin normal görünümüdür. Elementin türü ve temel affordance bu durumda anlaşılmalıdır. Default button tıklanabilir görünmeli, input editable olduğunu göstermelidir. Bilgi hierarchy bu state'te başlar. Diğer state'ler default görünümden anlamlı farklarla ayrılmalıdır.

Hover

Hover pointer kullanıcılarına elementin interactive olduğunu veya ek bilgi bulunduğunu gösterebilir. Hover kritik bilgiyi tek başına taşımamalıdır. Touch cihazlarda bulunmadığı için enhancement olarak düşünülmelidir. Color veya background değişimi yeterli feedback sağlayabilir. Hover animation düşük gecikmeli ve kısa olmalıdır.

Focus

Focus keyboard kullanıcısının şu anda hangi element üzerinde olduğunu gösterir. Focus indicator görünür ve yeterli contrast'a sahip olmalıdır. Outline yalnızca estetik nedenle kaldırılmamalıdır. Focus sırası DOM ve görsel akışla uyumlu olmalıdır. Modal veya menu açıldığında focus doğru yere taşınmalıdır.

Active

Active state kullanıcı elementi basılı tuttuğu veya eylemi tetiklediği kısa zamanı gösterebilir. Button'ın fiziksel tepki hissini destekler. Hover ile karıştırılmamalıdır. Touch cihazda da pressed feedback mümkün olabilir. Active state animation yerine hızlı visual değişimle kullanıcıya input'un alındığını hissettirmelidir.

Selected

Selected state seçenek grubunda hangi değerin aktif olduğunu gösterir. Tab, menu item veya card selection bu duruma örnektir. Yalnızca renk farkına güvenilmemelidir. Icon, border veya semantic state desteklenebilir. Screen reader kullanıcısı selection durumunu accessibility tree üzerinden anlayabilmelidir.

Disabled

Disabled state action'ın şu anda kullanılamadığını gösterir. Kullanıcı neden disabled olduğunu bilmiyorsa frustration oluşabilir. Bazı durumlarda disabled yerine action açık bırakılıp tıklamada eksik gereksinim açıklanabilir. Native disabled semantic davranışı kullanılmalıdır. Low contrast nedeniyle text tamamen okunamaz hale gelmemelidir.

Loading

Loading state işlem devam ederken componentin davranışını gösterir. Button içinde spinner veya text değişimi kullanılabilir. Layout genişliği değişip UI sıçramamalıdır. Tekrar submit riskine göre control geçici olarak devre dışı bırakılabilir. Kullanıcı işlemi iptal edebiliyorsa ilgili action görünür kalmalıdır.

Success

Success state işlem tamamlandığında kullanıcıya sonuç bildirir. Her durumda yeşil toast yeterli değildir. Kritik işlem sonucu kalıcı UI içinde görünmelidir. Kullanıcı sonraki adımı anlayabilmelidir. Başarı feedback'i gereksiz uzun animation ile işi yavaşlatmamalıdır.

Warning

Warning kullanıcıya işlem devam edebilirken dikkat edilmesi gereken durum olduğunu gösterir. Error ile aynı görsel ağırlıkta olmamalıdır. Mesaj neyin riskli olduğunu açıkça anlatmalıdır. Kullanıcının karar vermesi gerekiyorsa seçeneklerin sonuçları belirtilmelidir. Renk yanında icon ve text kullanılmalıdır.

Error

Error state işlemin tamamlanamadığını gösterir. Kullanıcı girdisi mümkün olduğunca korunmalıdır. Mesaj problem ve çözüm adımını açıklamalıdır. Retry veya edit seçeneği context'e göre sunulabilir. Error state focus ve screen reader announcement açısından erişilebilir olmalıdır.

Empty

Empty state veri bulunmadığı durumu kullanıcıya açıklamalıdır. İlk kullanım, filtre sonucu veya permission problemi aynı empty tasarımı kullanmamalıdır. Sebep ve sonraki action açık olmalıdır. Boş beyaz ekran kullanıcıya sistemin bozuk olduğu hissi verebilir. Kullanıcı yeni veri oluşturabiliyorsa primary action empty state içinde sunulabilir.

Kullanıcı Bir Butona Bastığında Ne Olmalı?

Buton click frontend uygulamasındaki en temel interactionlardan biri olsa da doğru davranış birden fazla state içerir. Kullanıcı input'un alındığını hemen görmeli, işlem uzuyorsa loading state almalı ve tamamlandığında success veya error feedback görmelidir. Aynı işlemin tekrar tetiklenmesi güvenli değilse double submit önlenmelidir. Hata sonrası retry ve mümkünse destructive işlem sonrası Undo kullanıcının kontrolünü artırır. Bu davranışların button component seviyesinde standartlaştırılması farklı feature ekiplerinin aynı eylem için farklı UX üretmesini azaltabilir.

Immediate Visual Feedback

Button click anında pressed veya loading state'e geçerek input'un alındığını göstermelidir. Feedback yalnızca network response geldikten sonra başlarsa kullanıcı gecikme hisseder. Çok hızlı işlemde spinner flicker yaratabilir, bu nedenle durum süresi dikkate alınmalıdır. Visual feedback action'ın gerçekten tamamlandığı anlamına gelmemelidir. Başlangıç ve sonuç state'leri birbirinden açıkça ayrılmalıdır.

İşlemin Tekrar Tetiklenmesini Engellemek

Ödeme veya kayıt oluşturma gibi action'larda ikinci click duplicate işlem oluşturabilir. Request devam ederken button kontrollü biçimde disabled veya pending state'e alınabilir. Backend tarafında idempotency gibi ek korumalar da gereklidir. Her action'da button kapatmak uygun değildir çünkü bazı işlemler paralel yapılabilir. UX ve veri güvenliği birlikte düşünülmelidir.

Loading State

Loading kullanıcının sistemin işlem yaptığını anlamasını sağlar. Button text Kaydediliyor şeklinde değişebilir. Spinner tek başına label'ın anlamını kaybettirmemelidir. Uzun işlemde kullanıcı başka bölümlerde çalışmaya devam edebiliyorsa bütün ekranı bloke etmek gereksizdir. Loading scope işlem kapsamıyla uyumlu olmalıdır.

Success State

Success sonucu kısa ve açık biçimde gösterilmelidir. Aynı ekranda veri güncellendiyse değişiklik doğrudan görünür hale gelebilir. Ayrı toast gerektiğinde ek feedback sunabilir. Kritik işlemde referans veya detay sayfası bağlantısı verilebilir. Success feedback aynı action'ın tekrar gerekli olup olmadığını kullanıcıya düşündürmemelidir.

Error State

Error state button'ın tekrar kullanılabilir olup olmadığını açıklamalıdır. Mesaj mümkünse action yakınında gösterilmelidir. Kullanıcı girdisi veya hazırladığı içerik kaybolmamalıdır. Technical error kullanıcı diline çevrilmelidir. Aynı hatanın tekrarında support için reference ID eklenebilir.

Retry

Retry geçici network veya server problemlerinde kullanıcıya hızlı recovery yolu sağlar. Kullanıcı bütün formu tekrar doldurmak zorunda kalmamalıdır. Retry aynı request'in güvenli tekrarını sağlamalıdır. Kritik ödeme gibi işlemlerde duplicate risk backend tarafında da kontrol edilmelidir. Retry button error message ile aynı context içinde yer almalıdır.

Undo

Undo geri alınabilir action'larda kullanıcıya confirmation yerine daha akıcı deneyim sağlayabilir. Silinen item kısa süre restore edilebilir durumda tutulabilir. Undo süresi ve sonucu açıkça gösterilmelidir. Kritik ve irreversible işlem için kullanılamaz. Bu pattern kullanıcıların hata yapma korkusunu azaltır.

Loading Deneyimi Nasıl Tasarlanır?

Loading deneyimi kullanıcıya sistemin ne yaptığını ve yaklaşık olarak ne beklemesi gerektiğini anlatmalıdır. Her bekleme için spinner kullanmak yerine içerik yapısına ve işlem süresine göre skeleton veya progress bar seçilebilir. Çok kısa işlemlerde loading UI göstermemek daha doğal olabilir. Uzun süren process'te cancel ve background continuation seçenekleri düşünülebilir. Algılanan performans gerçek süre kadar önemlidir, çünkü kullanıcı boş ekran görürken geçen bir saniye ile anlamlı skeleton ve shell görürken geçen bir saniyeyi farklı hissedebilir.

Spinner Ne Zaman Kullanılır?

Spinner kısa ve süresi tam bilinmeyen işlemler için uygundur. Küçük component veya button içindeki local loading durumunda etkili olabilir. Bütün sayfayı spinner ile kapatmak kullanıcıya bağlam sağlamaz. İşlem uzun sürüyorsa progress veya ek açıklama gerekir. Spinner screen reader için uygun loading announcement ile desteklenmelidir.

Skeleton Screen Ne Zaman Kullanılır?

Skeleton içerik yapısı biliniyor fakat veri henüz hazır değilken kullanılabilir. Kullanıcı gelecek layout'u önceden gördüğü için sayfa daha hızlı hissedilebilir. Skeleton gerçek içerikle benzer boyutta olmalıdır. Aşırı animasyon gereksiz paint maliyeti oluşturabilir. Çok kısa loading'de skeleton flicker rahatsız edici olabilir.

Progress Bar Ne Zaman Kullanılır?

Progress bar işlemin tamamlanma oranı ölçülebiliyorsa güçlü feedback sağlar. Upload, import veya uzun export işlemleri buna örnektir. Yüzde gerçek ilerlemeyi temsil etmelidir. Sahte hızlandırma kullanıcı güvenini bozabilir. İşlem tamamlandığında success state'e temiz geçiş yapılmalıdır.

Determinate vs Indeterminate Progress

Determinate progress toplam iş ve mevcut ilerleme bilindiğinde kullanılır. Indeterminate progress sürenin ölçülemediği durumda sistemin çalıştığını gösterir. Yanlış determinate değer kullanıcıya hatalı beklenti verir. Uzun işlem belirsizse açıklayıcı text eklenebilir. Kullanıcı iptal edebiliyorsa progress yanında cancel action bulunmalıdır.

Kullanıcının Bekleme Algısını Yönetmek

Bekleme algısı feedback ve kontrol hissinden etkilenir. Blank screen kullanıcıya sistemin donduğu izlenimi verir. Page shell, skeleton veya progress sistemin çalıştığını gösterir. İşlem uzuyorsa neden veya yaklaşık adım bilgisi kullanıcı kaygısını azaltabilir. Gereksiz animation ile süreyi yapay biçimde uzatmamak gerekir.

İşlemi İptal Etme Seçeneği

Uzun upload veya generation işleminde kullanıcı fikrini değiştirebilir. Cancel seçeneği kaynak kullanımını ve bekleme zorunluluğunu azaltır. Abort davranışı frontend ve backend tarafında desteklenmelidir. İptal edilen işin kısmi verisi varsa temizlenme kuralı belirlenmelidir. Kullanıcı cancel sonrası hangi state'e döneceğini bilmelidir.

Optimistic UI Nedir?

Optimistic UI kullanıcı eyleminin başarılı olacağı varsayımıyla sonucu server cevabını beklemeden arayüzde göstermeyi ifade eder. Like, favorite veya basit liste güncellemesi gibi düşük riskli işlemlerde uygulama çok daha hızlı hissedilebilir. Network isteği arka planda tamamlanır ve başarısız olursa UI eski durumuna döndürülür. Bu yaklaşım bütün işlemler için uygun değildir. Finansal, yüksek riskli veya başarısızlık ihtimali yüksek işlemlerde kullanıcıya gerçekleşmemiş sonucu kesinmiş gibi göstermek güven sorununa yol açabilir.

Kullanıcı Eylemini Anında Yansıtmak

Kullanıcı favorite button'a bastığında UI hemen selected state'e geçebilir. Bu davranış network latency'yi interaction hissinden ayırır. Kullanıcı aynı action'ı art arda değiştirebiliyorsa request sırası dikkatle yönetilmelidir. Temporary local state server sonucu ile senkronize edilmelidir. Optimistic state erişilebilir feedback de sağlamalıdır.

Network İsteğini Arka Planda Tamamlamak

UI güncellendikten sonra gerçek mutation server'a gönderilir. Kullanıcı diğer işlerine devam edebilir. Pending state tamamen gizlenmek zorunda değildir, kritik durumda küçük signal gösterilebilir. Race condition ve stale response ihtimali yönetilmelidir. Server sonucu authoritative state olarak sonradan doğrulanabilir.

İşlem Başarısız Olursa Rollback

Optimistic mutation başarısız olduğunda UI önceki doğru state'e dönmelidir. Kullanıcıya değişikliğin kaydedilemediği açıklanmalıdır. Rollback ani ve anlaşılmaz olmamalıdır. Retry seçeneği sunulabilir. Kullanıcı bu sırada yeni değişiklik yaptıysa eski response'un yeni state'i ezmemesi gerekir.

Optimistic UI Ne Zaman Kullanılmamalı?

Ödeme, para transferi veya kritik izin değişikliği gibi işlemlerde yanlış başarı hissi ciddi sonuç yaratabilir. İşlemin başarısızlık ihtimali yüksekse optimistic davranış sürekli rollback üretebilir. Server sonucu kullanıcıya özel doğrulama gerektiriyorsa beklemek daha güvenlidir. Data conflict riski de değerlendirilmelidir. Optimistic UI hız için doğruluk hissini riske atmamalıdır.

Form UX Nasıl Tasarlanır?

Form UX kullanıcıdan bilgi toplarken gereksiz zihinsel ve fiziksel yük oluşturmamayı amaçlar. Label, field grouping, validation, error message ve progress davranışı birlikte değerlendirilmelidir. Form ne kadar uzun olursa completion ve abandonment riski artabilir. Kullanıcıdan yalnızca gerçekten gerekli bilgi istenmelidir. Frontend tarafında input state, browser autofill, keyboard navigation ve hata sonrası veri koruma davranışı form tasarımının ayrılmaz parçalarıdır.

Label Kullanımı

Her form control mümkün olduğunca görünür label taşımalıdır. Label kullanıcı yazmaya başladıktan sonra da alanın anlamını korur. Placeholder label yerine kullanılmamalıdır. Label click edildiğinde ilgili control focus olmalıdır. Required veya optional bilgisi tutarlı biçimde gösterilmelidir.

Placeholder'ın Rolü

Placeholder örnek format veya kısa ipucu vermek için kullanılabilir. Kullanıcı yazmaya başlayınca kaybolduğu için temel label görevini üstlenmemelidir. Placeholder contrast okunabilir olmalıdır. Gerçek değer ile karıştırılmayacak stil kullanılmalıdır. Çok uzun instruction placeholder içine sığdırılmamalıdır.

Field Grouping

İlgili alanları görsel ve semantik olarak gruplamak form taramasını kolaylaştırır. Adres, ödeme ve hesap bilgileri ayrı section olabilir. Group heading kullanıcının nerede olduğunu anlamasına yardımcı olur. Çok fazla border veya card kullanmak görsel yoğunluk yaratabilir. Proximity ve white space çoğu durumda yeterli grouping sağlar.

Required Fields

Required alanlar tutarlı biçimde belirtilmelidir. Formdaki alanların çoğu required ise optional alanları işaretlemek daha sade olabilir. Kullanıcı submit sonrasında hangi alanın eksik olduğunu kolayca görmelidir. Required bilgisi yalnızca renkle verilmemelidir. Screen reader semantics doğru uygulanmalıdır.

Inline Validation

Inline validation kullanıcıya hatayı ilgili alana yakın gösterir. Validation timing alan türüne göre seçilmelidir. Kullanıcı daha yazmayı bitirmeden agresif error göstermek rahatsız edici olabilir. Doğru giriş için success indicator bazı karmaşık alanlarda yararlı olabilir. Client validation server validation'ın yerini tutmaz.

Ne Zaman Validation Yapılmalı?

Validation kullanıcının düzeltme yapabileceği uygun anda çalışmalıdır. Basit required kontrol submit sırasında yeterli olabilir. Format kesinleştiğinde blur sonrası feedback verilebilir. Password strength gibi durumlarda gerçek zamanlı feedback anlamlıdır. Her key press'te server validation yapmak network ve UX maliyeti oluşturabilir.

Blur mu Submit mi?

Blur validation kullanıcı alandan ayrıldığında hata gösterebilir. Submit validation bütün formu son aşamada kontrol eder. İki yaklaşım birlikte kullanılabilir. Kullanıcı daha önce hata yaptığı alanı düzeltirken validation anlık güncellenebilir. Timing kullanıcıya ceza hissi vermek yerine yardım etmelidir.

Error Message Tasarımı

Form error message ne olduğunu ve nasıl düzeltileceğini söylemelidir. Alan yakınında inline mesaj tercih edilebilir. Submit sonrası page top summary uzun formlarda ek destek sağlayabilir. Error focus management keyboard kullanıcıları için önemlidir. Kullanıcı girdisi hata nedeniyle temizlenmemelidir.

Password UX

Password alanı kullanıcıya gereksinimleri önceden göstermelidir. Show password kontrolü yazım hatalarını azaltabilir. Strength indicator açık kriterlerle desteklenmelidir. Paste engellenmemelidir çünkü password manager kullanımı zarar görebilir. Security policy kullanıcıya anlaşılmaz ceza kuralları gibi sunulmamalıdır.

Multi-Step Form

Multi-step form uzun işlemi anlamlı bölümlere ayırabilir. Adım sayısı ve mevcut konum görünür olmalıdır. Back kullanıldığında önceki veri korunmalıdır. Her adım tek bir mantıksal konuya odaklanmalıdır. Kullanıcı süreç ortasında ayrılıp devam edecekse draft desteği değerlendirilebilir.

Form Progress

Form progress kullanıcıya ne kadar yol kaldığını gösterir. Yüzde, adım sayısı veya section indicator kullanılabilir. Progress gerçek yapıyla uyumlu olmalıdır. Son adımda beklenmedik büyük bölüm çıkması güveni azaltır. Küçük iki adımlı formda ağır progress UI gereksiz olabilir.

Error Message Kullanıcı Deneyimi

Error message yalnızca backend'den gelen metni kırmızı renkte göstermek değildir. Kullanıcı ne olduğunu, neden olabileceğini ve ne yapması gerektiğini anlayabilmelidir. Teknik ayrıntılar gerektiğinde log veya support context'te tutulabilir. Kullanıcının girdiği veri korunmalı ve recovery mümkün olduğunca aynı ekranda yapılmalıdır. İyi error UX kullanıcıyı suçlamaz, problemi çözülebilir biçimde açıklar ve hedefe geri dönmesine yardım eder.

Ne Olduğunu Söyleyin

Mesaj başarısız olan işlemi açıkça belirtmelidir. Yükleme başarısız oldu ifadesi bir şeyler ters gitti mesajından daha açıklayıcıdır. Birden fazla işlem varsa hangi kaydın etkilendiği belirtilebilir. Kullanıcı teknik component adını bilmek zorunda değildir. Mesaj mevcut context ile uyumlu olmalıdır.

Neden Olduğunu Açıklayın

Sebep güvenli biçimde biliniyorsa kullanıcıya açıklanabilir. Dosya formatı desteklenmiyor veya bağlantı kesildi gibi nedenler düzeltme kararını kolaylaştırır. Internal server implementation detayları gösterilmemelidir. Sebep bilinmiyorsa varsayım yapılmamalıdır. Support reference eklenebilir.

Kullanıcıya Ne Yapacağını Söyleyin

Error message actionable olmalıdır. Retry, farklı dosya seç veya alanı düzelt gibi next action kullanıcıyı yönlendirir. Kullanıcı support'a yönlendiriliyorsa ne bilgi vermesi gerektiği belirtilebilir. Tek seçenek sayfayı yenilemek olmamalıdır. Recovery flow mümkün olduğunca mevcut context'i korumalıdır.

Teknik Error Code'u Kullanıcıya Bırakmayın

HTTP 500 veya database error kullanıcı için çözüm değildir. Teknik kod monitoring ve support için yararlı olabilir. Kullanıcıya insan dilinde açıklama verilmelidir. Reference code gerektiğinde ikincil bilgi olarak gösterilebilir. Debug bilgisi client UI'ya gereksiz güvenlik verisi sızdırmamalıdır.

Kullanıcının Girdiği Veriyi Korumak

Uzun form submit hatasında bütün alanların temizlenmesi ciddi UX problemidir. User input local state veya uygun form mekanizmasıyla korunmalıdır. Sensitive password alanının güvenlik gerekçesiyle yeniden istenmesi gerekiyorsa açıkça belirtilmelidir. Retry kullanıcıdan tekrar veri girişi istememelidir. Draft özelliği uzun kritik işlemlerde ayrıca değerlendirilebilir.

Empty State Tasarımı

Empty state veri olmadığını göstermenin ötesinde neden veri olmadığını ve kullanıcının ne yapabileceğini anlatmalıdır. İlk kez kullanılan ürün ile arama sonucu bulunamayan ekran aynı empty state'i kullanmamalıdır. Permission nedeniyle veri görünmüyorsa yeni kayıt oluştur çağrısı yanlış olabilir. Empty state kullanıcıya anlamlı next action sunmalıdır. İyi tasarlanan boş ekran ürünün bozuk görünmesini engeller ve kullanıcının ana göreve nasıl başlayacağını açıklar.

Gerçek Empty State

Gerçek empty state listede gerçekten kayıt olmadığında oluşur. Kullanıcı ilk kaydı oluşturabiliyorsa primary CTA sunulabilir. Kısa açıklama verinin ne işe yaradığını anlatabilir. Gereksiz büyük illustration ana action'ı gölgelememelidir. Empty state veri geldikten sonra tamamen kaybolur.

First-Use State

First-use state yeni kullanıcının feature'la ilk karşılaşma anıdır. Yalnızca veri yok mesajı yerine feature'ın değerini ve ilk adımı gösterebilir. Onboarding ile ilişkilendirilebilir. Kullanıcıya aynı anda çok fazla instruction verilmemelidir. İlk başarıya hızlı götüren action öne çıkarılmalıdır.

No Search Results

No results kullanıcı aramasının sonuç üretmediğini açıklar. Search term görünür tutulabilir. Filtreleri temizle veya farklı yazımı dene gibi next action sunulabilir. Arama alanı sıfırlanmamalıdır. Typo tolerance varsa alternatif suggestion gösterilebilir.

Permission Kaynaklı Empty State

Kullanıcı veri olmadığı için değil erişim hakkı bulunmadığı için boş ekran görüyor olabilir. Bu durumda normal empty CTA yanlış yönlendirme yapar. Erişim yok mesajı güvenli seviyede açıklanmalıdır. Gerekirse izin isteme veya yöneticiyle iletişim yolu gösterilebilir. Yetki detayı gereksiz bilgi ifşa etmemelidir.

Empty State İçinde Next Action Sunmak

Boş ekran kullanıcıyı ne yapacağını düşünmek zorunda bırakmamalıdır. Yeni kayıt oluştur, filtreleri temizle veya davet gönder gibi uygun next action sunulabilir. Tek ana action belirgin olmalıdır. Kullanıcının yetkisi olmayan action gösterilmemelidir. CTA metni sonucu açık biçimde anlatmalıdır.

Modal, Drawer, Popover veya Yeni Sayfa?

Bir içeriği modal, drawer, popover veya yeni sayfada göstermek yalnızca görsel tercih değildir. İçeriğin uzunluğu, görevin karmaşık oluşu, URL ihtiyacı ve kullanıcı context'inin korunması seçimi etkiler. Kısa confirmation modal için uygunken uzun form ayrı sayfada daha iyi olabilir. Focus management ve keyboard behavior overlay componentlerde kritik öneme sahiptir. Pattern seçimi kullanıcı görevinin ne kadar bağımsız olduğuna göre yapılmalıdır.

Modal Ne Zaman Kullanılmalı?

Modal kısa ve kullanıcı odağının geçici olarak tek göreve verilmesi gereken durumlarda uygundur. Confirmation, kısa form veya kritik bilgi örnek olabilir. Arka plan interaction geçici olarak durur. Focus modal içine taşınmalı ve kapatıldığında tetikleyen elemente dönmelidir. Uzun içerik modal içine sıkıştırılmamalıdır.

Modal Ne Zaman Kullanılmamalı?

Uzun multi-step form, detaylı karşılaştırma veya shareable URL gerektiren içerik için modal uygun olmayabilir. Mobile ekranda çok büyük modal kötü scroll deneyimi oluşturabilir. Kullanıcının arka plan içeriğiyle sürekli karşılaştırma yapması gerekiyorsa drawer veya inline expansion daha iyi olabilir. Nested modal mümkün olduğunca önlenmelidir. Back button davranışı da pattern seçiminde düşünülmelidir.

Drawer

Drawer mevcut context'i korurken yan panelde ek detay göstermeye uygundur. Liste üzerinden hızlı düzenleme veya detay inceleme için kullanılabilir. Geniş form drawer içine sığdırılırsa küçük ekranlarda problem oluşabilir. Keyboard focus drawer içinde kontrollü olmalıdır. Route state ile desteklenirse deep link ve back behavior daha güvenilir hale gelir.

Popover

Popover küçük ve bağlama yakın ek bilgi veya kontrol sunar. Filter options, date picker veya kısa menu örnek olabilir. Trigger element ile görsel ilişki korunmalıdır. Click outside ve Escape davranışı açık olmalıdır. Popover içine uzun task veya scroll-heavy içerik yerleştirmek kullanımı zorlaştırabilir.

Inline Expansion

Inline expansion kullanıcıyı mevcut context'ten ayırmadan ek bilgi gösterir. Accordion veya expandable row buna örnektir. Layout değişimi çevredeki içeriği beklenmedik biçimde zıplatmamalıdır. Expanded state açıkça görünmelidir. Keyboard ve screen reader için state bilgisi semantic attribute ile aktarılmalıdır.

Focus Management

Overlay açıldığında keyboard focus görünür içeriğe taşınmalıdır. Modal kapandığında focus genellikle trigger elemente dönmelidir. Focus arka plan elementlerine kaçmamalıdır. Screen reader kullanıcıları yeni context hakkında bilgilendirilmelidir. Bu davranış component library seviyesinde standartlaştırılırsa her feature ekibinin yeniden çözmesi gerekmez.

Notification ve Feedback Pattern'leri

Toast, snackbar, inline message, banner ve dialog farklı önem ve kullanıcı eylemi seviyelerine hizmet eder. Aynı notification pattern'ini bütün mesajlarda kullanmak bilgi önceliğini bozar. Kısa başarı feedback'i toast olabilirken kullanıcı kararını gerektiren kritik hata dialog gerektirebilir. Mesajın kalıcılığı ve screen reader davranışı önem seviyesine göre ayarlanmalıdır. Feedback pattern standardı design system içinde belgelenirse ekipler hangi durumda hangi componenti kullanacağını daha tutarlı seçer.

Toast

Toast kısa ve geçici feedback için uygundur. Kaydedildi veya kopyalandı gibi mesajlar örnektir. Kritik ve kullanıcı action gerektiren bilgi toast içinde kaybolmamalıdır. Çok fazla toast üst üste birikmemelidir. Auto-dismiss süresi mesaj uzunluğuna uygun olmalıdır.

Snackbar

Snackbar kısa mesajla birlikte Undo gibi tek action sunabilir. Özellikle reversible işlemlerde kullanışlıdır. Kullanıcıya yeterli süre verilmelidir. Mobile safe area ve keyboard görünümü dikkate alınmalıdır. Kritik confirmation için snackbar kullanılmamalıdır.

Inline Message

Inline message belirli form, field veya content alanıyla doğrudan ilişkili feedback için uygundur. Kullanıcı mesaj ile problemli alan arasındaki ilişkiyi kolayca görür. Error, info veya success tipi olabilir. Layout içinde yer tuttuğu için kritik mesaj kaybolmaz. Screen reader için semantik bağ kurulmalıdır.

Banner

Banner sayfa veya uygulama genelini etkileyen bilgi için kullanılabilir. Sistem bakımı, bağlantı problemi veya hesap durumu örnek olabilir. Çok sayıda banner ekran alanını tüketir. Kapatılabilir ise mesajın tekrar gösterim kuralı belirlenmelidir. Kritik durum renk dışında icon ve text ile anlatılmalıdır.

Dialog

Dialog kullanıcıdan aktif karar alınması gereken kritik durumda kullanılır. Confirmation veya blocking error örnek olabilir. Sık kullanılırsa kullanıcı otomatik olarak onaylamaya başlayabilir. Button label'ları sonucu açıkça göstermelidir. Focus trap ve Escape davranışı erişilebilir olmalıdır.

Hangisi Ne Zaman Kullanılmalı?

Pattern seçiminde mesajın önemi, kalıcılığı ve kullanıcı action gerektirip gerektirmediği değerlendirilmelidir. Geçici başarı toast, field hatası inline, global durum banner ve kritik karar dialog olabilir. Aynı mesaj birden fazla pattern ile gereksiz tekrar edilmemelidir. Design system karar tablosu ekipler için yararlı olabilir. Kullanıcı testleri notification overload olup olmadığını gösterebilir.

Kullanıcıya Kontrol Vermek

Kullanıcı kontrolü iyi etkileşim tasarımının temel güven unsurlarından biridir. Kullanıcı yaptığı işlemi iptal edebiliyor, geri alabiliyor veya düzenleyebiliyorsa hata korkusu azalır. Sistem bütün seçimleri otomatik ve geri dönülmez yaptığında kullanıcı product behavior'a karşı daha temkinli hale gelir. Undo, Cancel, Pause ve Restore pattern'leri işlemin doğasına göre kullanılabilir. Kritik nokta, geri dönüş imkanı olmayan eylemleri işlem öncesinde açıkça göstermektir.

Undo Pattern

Undo geri alınabilir küçük destructive actionlar için kullanıcı dostu çözüm sunar. Confirmation dialog akışını azaltabilir. Silinen item kısa süre restore edilebilir. Backend modelinin reversible behavior desteklemesi gerekir. Undo süresi ve feedback açık olmalıdır.

Cancel

Cancel uzun veya yanlışlıkla başlatılmış işlemden güvenli çıkış sağlar. User input kaybolacaksa uyarı gerekebilir. Cancel primary action ile karıştırılmamalıdır. Loading işleminde teknik abort uygulanabilir. Kullanıcı iptal sonrası stabil state'e dönmelidir.

Pause

Pause uzun transfer veya medya işlemlerinde kontrol sağlar. Her backend süreci pause desteklemez. Pause ve resume state net görünmelidir. İşlem süresi uzunsa kullanıcı uygulamayı kapatmadan farklı göreve geçebilmelidir. Background process davranışı ayrıca açıklanmalıdır.

Edit

Edit kullanıcıya mevcut bilgiyi yeniden düzenleme imkanı verir. View ve edit mode farkı açık olmalıdır. Unsaved changes korunmalı veya çıkışta uyarılmalıdır. Edit action içeriğe yakın ve keşfedilebilir olmalıdır. Permission yoksa action gizlenebilir veya uygun açıklama gösterilebilir.

Restore

Restore silinmiş veya arşivlenmiş veriyi geri getirmeyi sağlar. Kullanıcı restore sonucunda kaydın nereye döneceğini anlamalıdır. Conflict oluşursa çözüm yolu sunulmalıdır. Audit gereksinimi varsa restore event kaydedilebilir. Kullanıcıya geri dönüş imkanı veri güvenini artırır.

Destructive Action Öncesi Confirmation

Irreversible action öncesi confirmation kullanıcı hatasını azaltabilir. Dialog neyin silineceğini açık biçimde söylemelidir. Button label Sil gibi doğrudan olmalıdır. Kritik hesap silme gibi işlemlerde ek doğrulama gerekebilir. Düşük riskli reversible actionlarda sürekli confirmation göstermek gereksiz friction oluşturabilir.

Motion Design Kullanıcı Deneyimini Nasıl Etkiler?

Motion design arayüzde değişimin nasıl gerçekleştiğini açıklamak için kullanıldığında güçlü bir iletişim aracıdır. Drawer'ın nereden açıldığını, bir item'ın nereye taşındığını veya state'in nasıl değiştiğini gösterebilir. Hareketin amacı yalnızca arayüzü daha gösterişli yapmak olmamalıdır. Fazla animasyon dikkat dağıtır, kullanıcıyı bekletir ve hareket hassasiyeti olan kişiler için problem yaratabilir. Motion token ve reduced-motion desteği design system içinde standartlaştırıldığında ekipler daha tutarlı ve erişilebilir hareket davranışı üretir.

Motion'ın Fonksiyonel Rolü

Fonksiyonel motion kullanıcıya UI state değişimini açıklar. Expand edilen panelin hareketi içerik ilişkisini gösterebilir. Button feedback eylemin alındığını hissettirebilir. Animation bilgi yerine geçmemelidir. Kullanıcı hareket kapalı olduğunda da state'i anlayabilmelidir.

State Değişimini Açıklamak

Element selected olduğunda kısa geçiş kullanıcının değişimi fark etmesini sağlar. Ani büyük layout değişiklikleri confusion yaratabilir. Motion state'in kaynağı ile sonucu arasında ilişki kurabilir. Çok yavaş geçiş interaction hızını düşürür. State değişimi text veya semantic attribute ile de desteklenmelidir.

Spatial Relationship Göstermek

Drawer'ın sağdan gelmesi içeriğin sağ panel olarak konumlandığını anlatır. Card'ın detay sayfasına dönüşümü bazı ürünlerde hierarchy hissi sağlayabilir. Spatial motion kullanıcı navigation context'ini koruyabilir. Çok büyük parallax veya karmaşık camera movement gereksiz olabilir. Mobile motion cihaz performansı açısından test edilmelidir.

Kullanıcının Dikkatini Yönlendirmek

Kısa motion yeni oluşan error veya başarı alanına dikkat çekebilir. Her değişiklik hareket ederse attention signal etkisini kaybeder. Kritik bilgi için motion text ve contrast ile desteklenmelidir. Sürekli blinking veya bouncing distraction yaratır. Dikkat yönetimi task priority ile uyumlu olmalıdır.

Animasyonu Dekorasyon İçin Kullanmamak

Dekoratif motion iş akışını yavaşlatıyorsa ürün deneyimine zarar verebilir. Her card hover'da büyük hareket kullanmak görsel gürültü oluşturur. Performance ve reduced motion gereksinimleri ayrıca düşünülmelidir. Motion bir state değişimini veya ilişkiyi açıklıyorsa daha güçlü gerekçeye sahiptir. Tasarım review sırasında bu animation kullanıcının neyi anlamasına yardım ediyor sorusu faydalı bir filtre olur.

UI Animasyonlarında Timing

Animation timing kullanıcının arayüzü hızlı veya yavaş hissetmesinde doğrudan etkilidir. Çok kısa animation fark edilmeyebilir, çok uzun animation kullanıcıyı işlem bitmesini beklemeye zorlar. Duration, delay ve easing birlikte tasarlanmalıdır. Enter ve exit motion aynı component family içinde tutarlı davranmalıdır. Design system motion token'ları geliştirici ve tasarımcıların farklı süreler kullanarak ürün genelinde dağınık hareket dili oluşturmasını engeller.

Duration

Duration animation'ın ne kadar sürdüğünü belirler. Küçük state değişimleri genellikle kısa tutulmalıdır. Büyük panel hareketi biraz daha uzun olabilir. Kullanıcı sık tekrar edilen interactionda uzun duration nedeniyle beklememelidir. Gerçek cihaz performansı frame drop açısından test edilmelidir.

Delay

Delay motion başlamadan önceki bekleme süresidir. Interaction feedback'te gereksiz delay uygulamayı tepkisiz hissettirebilir. Staggered animation sınırlı sayıda içerikte kontrollü kullanılabilir. Uzun listelerde her item delay ile gelirse içerik gereksiz yavaş görünür. Delay yalnızca açık görsel amaç olduğunda kullanılmalıdır.

Easing

Easing hareket hızının zaman içinde nasıl değişeceğini belirler. Linear easing her interaction için doğal görünmeyebilir. Enter ve exit için farklı eğriler kullanılabilir. Design system birkaç ortak easing token tanımlayabilir. Kullanıcı hareketi anlamak için teknik eğri bilmez, ancak tutarlı motion dili ürün hissini güçlendirir.

Enter Animation

Enter animation yeni içeriğin nereden geldiğini veya hangi elementle ilişkili olduğunu gösterebilir. Modal ve drawer için kısa scale veya translate hareketi kullanılabilir. İçerik görünür olmadan önce uzun animation bekletilmemelidir. Focus doğru zamanda component içine taşınmalıdır. Reduced motion tercihi varsa daha sade geçiş uygulanmalıdır.

Exit Animation

Exit animation elementin kaybolduğunu ve interaction'ın tamamlandığını gösterebilir. Çok uzun exit navigation'ı geciktirmemelidir. Element DOM'dan çıkarılmadan animation tamamlanması gerekiyorsa state yönetimi dikkatle yapılmalıdır. Focus kaybolmamalıdır. Exit sonrası layout stabil kalmalıdır.

Kullanıcıyı Bekletmeyen Motion Tasarımı

Motion işlemin gerçek hızını düşürmemelidir. Kullanıcı content hazır olduğu halde animation bitmesini beklememelidir. Sık kullanılan navigation geçişleri kısa tutulmalıdır. Animation duration gerçek device frame rate ile test edilmelidir. Motion'ın görevi feedback ve ilişki açıklamak, kullanıcıyı sıraya sokmak değildir.

Motion Accessibility

Hareket bazı kullanıcılar için rahatsızlık, baş dönmesi veya konsantrasyon problemi oluşturabilir. Bu nedenle motion design erişilebilirlik kararlarından ayrı değerlendirilmemelidir. prefers-reduced-motion kullanıcı sistem tercihini web uygulamasına iletebilir. Kritik bilgi yalnızca hareketle aktarılmamalıdır. Büyük parallax, zoom ve sürekli animation özellikle dikkatle kullanılmalı ve gerektiğinde azaltılmış alternatif sunulmalıdır.

Hareket Hassasiyeti

Bazı kullanıcılar yoğun hareket ve derinlik efektlerinden fiziksel olarak etkilenebilir. Bu durum estetik tercih değil accessibility ihtiyacıdır. Büyük zoom veya parallax azaltılabilir. Kullanıcı motion kapattığında ürün işlevini kaybetmemelidir. Design system accessibility review hareket pattern'lerini de kapsamalıdır.

prefers-reduced-motion

prefers-reduced-motion CSS media query kullanıcı cihazındaki azaltılmış hareket tercihine yanıt verir. Animation tamamen kaldırılabilir veya daha kısa opacity geçişine dönüştürülebilir. JavaScript tabanlı animation kütüphaneleri de bu tercihi okuyabilir. Bu davranış merkezi utility ile standardize edilebilir. Test yalnızca CSS seviyesinde değil gerçek component interactionlarıyla yapılmalıdır.

Kritik Bilgiyi Sadece Animation ile Vermemek

Bir hata yalnızca shake animation ile anlatılırsa motion kapalı kullanıcı bilgiyi kaçırabilir. Text, icon veya semantic state gerekir. Selection yalnızca hareket üzerinden anlaşılmamalıdır. Animation destekleyici feedback olmalıdır. Accessibility tree gerekli state değişimini taşımalıdır.

Parallax ve Büyük Ölçekli Motion Riskleri

Parallax yoğun movement ve depth hissi nedeniyle bazı kullanıcılar için problem yaratabilir. Mobile GPU ve CPU maliyeti de yüksek olabilir. Decorative effect ürün görevi açısından gerekli değilse sınırlandırılmalıdır. Reduced motion modunda kaldırılabilir. User testing ve performance profiling birlikte yapılmalıdır.

Etkileşimli Arayüzlerde Erişilebilirlik

Erişilebilirlik etkileşim tasarımının sonradan eklenen kontrol listesi değil temel tasarım katmanıdır. Keyboard navigation, visible focus, semantic HTML, accessible names ve screen reader feedback component davranışının parçasıdır. Bir button mouse ile çalışıp keyboard ile kullanılamıyorsa interaction eksiktir. Accessibility çoğu zaman genel kullanıcı deneyimini de iyileştirir. Doğru label, geniş touch target ve açık error feedback herkes için daha anlaşılır ürün oluşturur.

Keyboard Navigation

Tüm temel interactionlar keyboard ile tamamlanabilmelidir. Tab sırası logical olmalıdır. Custom component native keyboard expectation'a uygun davranmalıdır. Modal, menu ve tabs için ok tuşu veya Escape patternleri uygulanabilir. Keyboard test design QA sürecinde standart hale getirilmelidir.

Visible Focus

Keyboard kullanıcı hangi element üzerinde olduğunu açıkça görmelidir. Focus outline kaldırılıp alternatif eklenmemesi ciddi accessibility problemidir. Focus state brand tasarımına uyarlanabilir. Yeterli contrast ve elementten ayrışma gerekir. Mouse focus ve keyboard focus davranışı gerektiğinde focus-visible ile ayrılabilir.

Semantic HTML

Native button, link ve form elementleri hazır interaction semantics sunar. Div üzerine click handler eklemek aynı keyboard ve accessibility davranışını otomatik sağlamaz. Semantic HTML geliştirme maliyetini de azaltır. Custom component gerekli olduğunda native pattern mümkün olduğunca taklit edilmelidir. DOM yapısı screen reader navigation için anlamlı olmalıdır.

Accessible Names

Interactive element screen reader ve voice control kullanıcıları için anlaşılır isim taşımalıdır. Görünür text varsa çoğu zaman doğal accessible name oluşur. Icon-only button aria-label veya uygun yöntemle isimlendirilmelidir. İsim action'ı açıklamalıdır. Aynı ekranda birçok Düzenle button varsa bağlam gerektiğinde erişilebilir isimde belirtilebilir.

Screen Reader Feedback

Loading, error ve success gibi dinamik state değişimleri yalnızca görsel olmamalıdır. Live region gibi yöntemlerle önemli durumlar screen reader'a duyurulabilir. Her küçük değişikliği announce etmek noise yaratabilir. Kritik ve kullanıcı eylemiyle ilişkili feedback seçilmelidir. Testing gerçek screen reader davranışıyla yapılmalıdır.

Focus Management

Modal açılması, route değişimi veya error summary gibi olaylarda focus kullanıcının yeni context'i anlamasına yardımcı olur. Focus rastgele body üzerine düşmemelidir. Modal kapanınca trigger'a geri dönmek beklenen davranıştır. Route navigation sonrası heading focus bazı uygulamalarda uygun olabilir. Focus management otomatik scroll etkisiyle birlikte test edilmelidir.

Color Contrast

Text ve interactive state yeterli contrast ile görünür olmalıdır. Disabled görünüm tamamen okunamaz hale gelmemelidir. Error yalnızca kırmızı renkle anlatılmamalıdır. Focus indicator da arka plan üzerinde seçilebilir olmalıdır. Design token sistemi contrast kontrollü palette sağlamalıdır.

Touch Target Size

Touch target parmakla güvenilir seçim yapılabilecek kadar büyük olmalıdır. Icon görseli küçük kalabilir fakat hit area genişletilebilir. Yakın destructive ve safe actionlar arasında yeterli spacing gerekir. Mobile gerçek cihaz testi önemlidir. Touch target accessibility ve Fitts prensibini aynı anda destekler.

Hover'a Bağımlı UX Neden Problemlidir?

Hover mouse ve trackpad ortamında yararlı ek feedback sağlar fakat touch cihaz, keyboard kullanıcıları ve bazı yardımcı teknolojiler aynı interaction'a erişemez. Kritik bilgi veya action yalnızca hover üzerinde görünürse kullanıcıların bir bölümü feature'ı keşfedemez. Hover enhancement olarak kullanılabilir. Temel action click, focus veya açık görsel control ile erişilebilir kalmalıdır. Responsive interaction design her input yönteminde kullanıcının aynı ana görevi tamamlayabilmesini hedeflemelidir.

Touch Cihazlar

Touch ekranlarda klasik hover state bulunmaz. Hover ile açılan menu veya action kullanıcı tarafından erişilemeyebilir. Tap behavior ayrı tasarlanmalıdır. Hidden controls yerine görünür seçenekler kullanılabilir. Mobile testing gerçek touch interaction üzerinden yapılmalıdır.

Keyboard Kullanıcıları

Keyboard kullanıcı hover yerine focus ile arayüzü gezer. Hover'da görünen tooltip veya action focus olduğunda da erişilebilir olmalıdır. Focus style yalnızca outline değil gerekli content visibility davranışını da tetikleyebilir. Custom hover menu keyboard ile açılabilmelidir. Escape ve arrow navigation kuralları gerekebilir.

Hover'ı Enhancement Olarak Kullanmak

Hover ek görsel feedback veya secondary bilgi için kullanılabilir. Card elevation veya tooltip buna örnektir. Feature'ın temel anlamı hover olmadan da anlaşılmalıdır. Touch cihazda hover olmadığı için arayüz bozulmamalıdır. Progressive enhancement yaklaşımı farklı input cihazları arasında daha dayanıklı UX oluşturur.

Kritik İşlevleri Click ve Keyboard ile Erişilebilir Tutmak

Delete, edit veya submit gibi kritik actionlar görünür control üzerinden çalışmalıdır. Mouse click ve keyboard activation aynı sonucu üretmelidir. Gesture veya hover yalnızca alternatif hızlandırıcı olabilir. Semantic button kullanımı keyboard desteğini kolaylaştırır. Kullanıcı task completion için belirli input cihazına bağımlı kalmamalıdır.

Responsive Interaction Design

Responsive interaction design yalnızca componentlerin farklı ekran genişliğine sığmasını sağlamaz. Input yöntemi, touch target, navigation, content priority ve gesture davranışı da cihaz koşuluna göre değişebilir. Desktop'ta hover menu iyi çalışırken mobile'da bottom sheet daha uygun olabilir. Tablet hem touch hem pointer kullanabilir. Tasarım breakpoint'leri yalnızca pixel genişliği değil gerçek kullanım bağlamı üzerinden değerlendirilmelidir.

Desktop

Desktop geniş ekran ve hassas pointer avantajı sunar. Side navigation, data grid ve dense toolbar kullanılabilir. Hover secondary feedback sağlayabilir. Keyboard shortcut profesyonel kullanıcılar için hız kazandırabilir. Geniş alan gereksiz bilgiyle doldurulmamalıdır.

Tablet

Tablet hem touch hem keyboard veya pointer ile kullanılabilir. Desktop layout'u yalnızca küçültmek yeterli olmayabilir. Touch target büyüklüğü korunmalıdır. Split view ve orientation değişimleri test edilmelidir. Navigation kullanım bağlamına göre desktop ve mobile pattern arasında uyarlanabilir.

Mobile

Mobile küçük ekran, touch input ve farklı network koşullarıyla gelir. Primary action görünür ve erişilebilir tutulmalıdır. Çok kolonlu içerik vertical hierarchy'ye dönüştürülebilir. Modal yerine full-screen sheet daha iyi olabilir. Performance ve bundle maliyeti düşük güçlü cihazlarda daha önemli hale gelir.

Pointer vs Touch

Pointer küçük hedeflerde hassastır, touch daha büyük target gerektirir. CSS media query veya runtime capability ile input özellikleri anlaşılabilir. Tek cihaz birden fazla input destekleyebileceği için sadece width üzerinden karar vermek doğru değildir. Hover yalnızca destekleyici davranış olmalıdır. Gesture alternatifleri görünür controls ile tamamlanmalıdır.

Navigation Pattern'leri

Desktop sidebar mobile'da bottom navigation veya menu olabilir. Navigation item sayısı ekran ve task priority ile uyumlu olmalıdır. Current location görünür kalmalıdır. Back behavior platform expectation'a uygun çalışmalıdır. Responsive navigation route semantics'i bozmamalıdır.

Responsive Olmak Sadece Ekrana Sığmak Değildir

Component teknik olarak ekrana sığsa bile touch target küçük, text yoğun veya interaction unreachable olabilir. Responsive tasarım kullanıcı görevinin cihaz koşulunda ne kadar rahat tamamlandığını değerlendirmelidir. İçerik priority değişebilir. Long form mobile'da adımlara ayrılabilir. Performance ve network davranışı da responsive UX'in parçasıdır.

Gesture-Based Interaction Tasarımı

Gesture tabanlı interaction touch cihazlarda hızlı ve doğal deneyim sağlayabilir. Swipe, drag, pinch ve long press belirli contextlerde güçlüdür. Ancak gesture'lar görünür button gibi kendini açıklamaz. Kullanıcı gesture'ı bilmiyorsa feature tamamen gizli kalabilir. Bu nedenle önemli actionlar için alternatif controls sunmak ve gesture'ı hızlandırıcı olarak kullanmak daha güvenli tasarım oluşturur.

Swipe

Swipe liste item silme veya carousel navigation için kullanılabilir. Action threshold ve direction net olmalıdır. Destructive swipe geri alınabilir feedback ile desteklenebilir. Alternative button bulunmalıdır. Accidental swipe riski gerçek cihazda test edilmelidir.

Drag

Drag reorder ve spatial placement için kullanışlıdır. Drag handle keşfedilebilirliği artırabilir. Keyboard alternative mutlaka düşünülmelidir. Drag sırasında drop target ve current position feedback verilmelidir. Mobile auto-scroll davranışı uzun listelerde test edilmelidir.

Pinch

Pinch zoom özellikle map ve image viewer gibi contentlerde tanıdık interactiondır. Zoom control alternatif olarak sunulabilir. Browser native zoom davranışı gereksiz engellenmemelidir. Gesture performance akıcı olmalıdır. Reduced motion ihtiyacıyla doğrudan aynı konu olmasa da büyük transform kullanıcı konforu açısından test edilmelidir.

Long Press

Long press secondary action açmak için kullanılabilir. Discoverability düşük olduğu için primary action olmamalıdır. Press duration çok uzun veya kısa seçilmemelidir. Visual feedback kullanıcının gesture'ın algılandığını gösterir. Context menu alternatif erişim sunabilir.

Gesture Discoverability Problemi

Gesture görünür olmadığı için kullanıcı özelliği öğrenmeden bilemez. İlk kullanım hint veya visible affordance yardımcı olabilir. Ancak sürekli tutorial göstermek tasarım problemini maskeleyebilir. Kritik action görünür control üzerinden de erişilebilir olmalıdır. User testing gesture'ın gerçekten keşfedilip keşfedilmediğini gösterir.

Alternatif Kontroller Sunmak

Swipe ile silme varsa menu içindeki Sil action da bulunabilir. Drag reorder için keyboard move controls sağlanabilir. Pinch zoom için plus ve minus button eklenebilir. Alternatif control accessibility ve discoverability'yi artırır. Aynı action farklı input yöntemlerinde tutarlı sonucu vermelidir.

Search UX Nasıl Tasarlanır?

Search UX kullanıcının bilgiye ulaşma hızını doğrudan etkiler. Autocomplete, suggestion, recent search ve typo tolerance yalnızca teknik arama özellikleri değil interaction tasarımı kararlarıdır. Kullanıcı query yazarken sistem çok yavaş tepki verirse input lag oluşur. No results state de search deneyiminin önemli parçasıdır. Keyboard navigation ve screen reader feedback search suggestion componentinin erişilebilir kullanılmasını sağlar.

Autocomplete

Autocomplete kullanıcı yazarken olası sonuçları gösterir. Request her keystroke'ta gereksiz gönderilmemelidir. Debounce ve cancellation kullanılabilir. Suggestion listesi keyboard ile gezilebilir olmalıdır. Query text ile matched bölümler gerektiğinde vurgulanabilir.

Suggestions

Suggestions yalnızca exact result değil category veya popular query de gösterebilir. Liste çok uzun olmamalıdır. Kullanıcı input'u suggestion seçilince anlaşılır biçimde güncellenmelidir. Sponsored veya farklı tür suggestion açıkça ayrılmalıdır. Empty suggestion durumda normal search devam edebilmelidir.

Recent Searches

Recent searches kullanıcıya önceki sorguları hatırlatır. Recognition prensibini destekler. Sensitive query'ler için privacy düşünülmelidir. Clear history seçeneği sunulabilir. Kullanıcı kendi cihazında bu özelliği kontrol edebilmelidir.

No Results

No results query'nin sonucunu açıkça belirtmelidir. Search term korunmalıdır. Typo veya alternative category suggestion gösterilebilir. Filter varsa reset action sunulabilir. Kullanıcı aramaya devam etmek için başa dönmek zorunda kalmamalıdır.

Typo Tolerance

Typo tolerance küçük yazım hatalarında sonuç bulmayı kolaylaştırır. Sistem düzeltilen terimi kullanıcıya gösterebilir. Yanlış düzeltme kullanıcı niyetini bozabilir. Original query ile tekrar search seçeneği sunulabilir. Domain-specific isimlerde tolerance kuralları dikkatle ayarlanmalıdır.

Keyboard Interaction

Search suggestion listesi arrow keys ile gezilebilir olmalıdır. Enter selection yapabilir, Escape listeyi kapatabilir. Focus input ile list arasında kaybolmamalıdır. Active descendant gibi accessibility patternleri doğru uygulanmalıdır. Keyboard davranışı native expectation'a yakın tutulmalıdır.

Frontend Performansı Kullanıcı Deneyimini Nasıl Etkiler?

Frontend performansı kullanıcı deneyiminden ayrı teknik konu değildir. Butona tıklayıp yüzlerce milisaniye feedback alamayan kullanıcı arayüzü bozuk hissedebilir. INP, input lag, main thread blocking ve layout shift interaction kalitesini doğrudan etkiler. Algılanan performans doğru loading ve optimistic UI ile iyileştirilebilir fakat gerçek performans problemi gizlenmemelidir. Component architecture, JavaScript miktarı ve animation maliyeti UX kararlarının parçası olarak değerlendirilmelidir.

Gerçek Performans vs Algılanan Performans

Gerçek performans ölçülebilir süre ve kaynak kullanımını ifade eder. Algılanan performans kullanıcının sistemin ne kadar hızlı hissettirdiğiyle ilgilidir. Skeleton veya immediate feedback beklemeyi daha anlaşılır hale getirebilir. Ancak iki saniyelik synchronous blocking animation ile gizlenemez. En iyi ürün hem gerçek işi azaltır hem kalan beklemeyi doğru feedback ile yönetir.

Interaction to Next Paint (INP)

INP kullanıcı interaction'ı ile bir sonraki görsel response arasındaki gecikmeyi değerlendiren Core Web Vital metriğidir. Event handler, render ve paint süresi etkili olabilir. Büyük JavaScript işi input response'u geciktirebilir. Production RUM hangi interactionların yavaş olduğunu gösterebilir. UX ekipleri INP'yi yalnızca frontend metric değil interaction kalitesi sinyali olarak değerlendirebilir.

Input Lag

Input lag kullanıcı yazarken veya kontrolü hareket ettirirken UI'nın geriden gelmesidir. Büyük list filtering veya chart update yaygın nedenlerdir. Debounce, deferred rendering veya server computation kullanılabilir. Input text mümkün olduğunca hemen güncellenmelidir. Low-end mobile cihazlarda test yapılmalıdır.

Main Thread Blocking

Uzun JavaScript task browser'ın input ve paint işlerini bekletir. Heavy loop, third-party script veya büyük render bu probleme neden olabilir. Chrome Performance Panel long task kaynaklarını gösterebilir. İş worker'a veya server'a taşınabilir. Critical interaction sırasında non-critical işler ertelenmelidir.

Animation Performance

Animation frame drop olduğunda kullanıcı UI'yı ağır hisseder. Layout tetikleyen property'ler pahalı olabilir. Transform ve opacity çoğu durumda daha verimli seçeneklerdir. Çok sayıda element aynı anda animate edilmemelidir. Reduced motion ve low-end device testleri yapılmalıdır.

Layout Shift

Layout shift kullanıcı tıklamak istediği elementin yer değiştirmesine yol açabilir. Image ve async content için boyut ayrılmalıdır. Skeleton gerçek content ölçüsüne yakın olmalıdır. Sonradan gelen banner mevcut içeriği aniden itmemelidir. CLS yalnızca SEO değil interaction güvenilirliği açısından da önemlidir.

Kullanıcı Eylemine Hızlı Cevap Vermek

Kullanıcı click anında görsel feedback görmelidir. Network response uzun sürse bile pressed veya loading state erken başlayabilir. Heavy computation interaction öncesinde main thread'i bloke etmemelidir. Optimistic UI uygun düşük riskli işlemlerde kullanılabilir. Hızlı cevap kullanıcıya sistemin kontrol altında olduğu hissini verir.

JavaScript ile UX'i Bozan Yaygın Hatalar

JavaScript güçlü interactionlar üretirken yanlış kullanım kullanıcı deneyimini kolayca bozabilir. Double submit, focus kaybı, scroll blocking ve layout jumps genellikle yalnızca teknik bug gibi görülür fakat kullanıcı görevini doğrudan etkiler. SPA routing browser expectation'ını bozmamalıdır. Gereksiz loading state ve ağır event handler responsive hissi azaltır. Frontend QA yalnızca doğru veri geldi mi kontrolünden öte interaction davranışını da test etmelidir.

Double Submit

Kullanıcı aynı formu iki kez gönderebiliyorsa duplicate kayıt oluşabilir. Pending state button'ı güvenli biçimde kontrol edebilir. Backend idempotency ek koruma sağlar. Kullanıcı request'in başladığını hemen görmelidir. Error sonrası button tekrar kullanılabilir hale gelmelidir.

Unresponsive Buttons

Button click sonrasında feedback vermiyorsa kullanıcı action'ın alınmadığını düşünebilir. Heavy synchronous iş click handler'ı bloke edebilir. Pressed veya loading state immediate olmalıdır. Disabled button nedeni gerekirse açıklanmalıdır. Performance trace kullanıcı interaction gecikmesini gösterebilir.

Scroll Blocking

Heavy scroll handler sayfa kaydırmasını takılabilir hale getirebilir. Event throttling veya passive listener kullanılabilir. Scroll sırasında büyük React state update yapılmamalıdır. IntersectionObserver bazı kullanım senaryolarında daha uygun olabilir. Mobile cihaz scroll testi önemlidir.

Focus Kaybı

Rerender sırasında input veya modal focus'unun kaybolması keyboard kullanıcılarını ciddi biçimde etkiler. Key değişimi component remount oluşturabilir. DOM replacement kontrollü yapılmalıdır. Modal close sonrası focus trigger'a dönmelidir. Focus bug'ları automated test ve manual keyboard testle yakalanabilir.

Layout Jumps

Async content yüklendiğinde alan boyutu değişirse kullanıcı context kaybedebilir. Image dimension ve skeleton size önceden ayrılmalıdır. Error veya validation message için layout strategy düşünülmelidir. Sticky elementler contenti örtmemelidir. CLS metric ve visual testing yardımcı olabilir.

Gereksiz Loading State

Çok kısa işlemlerde spinner göstermek flicker yaratır. Local component yüklenirken bütün sayfayı bloke etmek gereksizdir. Cached data varsa stale content gösterilip background refresh yapılabilir. Loading scope işlemin etkisiyle uyumlu olmalıdır. User flow içinde sürekli spinner zinciri waterfall sinyali olabilir.

Back Button'ı Bozmak

Custom SPA navigation browser history davranışını yok etmemelidir. Filter ve modal state route ile ilişkiliyse back behavior planlanabilir. Kullanıcı browser back'e bastığında beklenmedik sayfaya gitmemelidir. History replace ve push kullanımı anlamlı seçilmelidir. Native platform expectation'ını korumak öğrenme maliyetini azaltır.

Debounce ve Throttle'ın UX Üzerindeki Etkisi

Debounce ve throttle event frekansını kontrol ederek performansı iyileştirebilir fakat yanlış süre kullanıcıya yapay gecikme hissettirebilir. Search input, resize ve scroll gibi yüksek frekanslı olaylarda farklı ihtiyaçlar vardır. Debounce kullanıcı durduktan sonra işlem başlatırken throttle belirli aralıklarla çalışmaya izin verir. Input feedback her zaman geciktirilmemelidir. Teknik optimizasyonun kullanıcı eylemine verdiği hissi test etmek önemlidir.

Search Input

Search request her key press'te gönderilirse gereksiz network yükü oluşabilir. Debounce request başlangıcını kısa süre erteleyebilir. Input text ise anında görünmelidir. Delay çok uzun olursa search ağır hissedilir. Previous request cancellation stale result problemini azaltır.

Scroll Events

Scroll event saniyede çok sayıda kez çalışabilir. Heavy handler throttle edilebilir. IntersectionObserver visibility tespiti için daha verimli olabilir. Scroll position UI güncellemesi frame performansıyla uyumlu olmalıdır. Passive event listener uygun durumda scrolling'i rahatlatabilir.

Resize

Window resize chart ve layout computation tetikleyebilir. Her pixel değişiminde pahalı hesaplama gereksizdir. Debounce veya ResizeObserver kullanılabilir. Final layout kullanıcının resize sırasında sürekli takılmasına neden olmamalıdır. Responsive CSS mümkünse JavaScript layout hesaplamasının yerini almalıdır.

Kullanıcıya Gecikme Hissettirmemek

Debounce teknik olarak performansı iyileştirirken visible feedback gecikirse kullanıcı sistemin tepkisiz olduğunu düşünebilir. Input local state hemen güncellenmelidir. Server result için pending indicator gerektiğinde kullanılabilir. Delay kullanım senaryosu ve network latency ile birlikte test edilmelidir. Sabit değer yerine gerçek kullanıcı davranışından öğrenmek daha sağlıklıdır.

Design System İçinde Etkileşim Standartları

Design system yalnızca renk, spacing ve button görünümünü tanımlamamalıdır. Component states, feedback, motion, focus ve error davranışı da ortak standardın parçası olmalıdır. Böylece farklı ekiplerin aynı modal veya form için farklı interaction kuralı üretmesi azalır. Tasarımcı ve frontend geliştirici aynı dokümantasyonu kullanabilir. Shared UX patternleri ürün genelinde consistency ve accessibility kalitesini yükseltir.

Component States

Her component default, hover, focus, active, disabled ve gerekli business state'leriyle belgelenmelidir. Loading ve error davranışı interactive componentlerde ayrıca tanımlanabilir. State isimleri design ve code arasında aynı olabilir. Story veya visual test bütün durumları gösterebilir. Eksik state geliştirme sırasında rastgele kararları azaltır.

Feedback Patterns

Toast, inline error, banner ve dialog kullanım kuralları design system içinde açıklanmalıdır. Hangi önem seviyesinde hangi pattern kullanılacağı net olmalıdır. Böylece her ekip Save sonrası farklı feedback üretmez. Accessibility announcement davranışı da belgelenmelidir. Pattern örnekleri gerçek kullanım senaryolarıyla gösterilmelidir.

Motion Tokens

Motion token ortak duration ve easing değerleri tanımlar. Componentler rastgele 180, 220 veya 350 milisaniye kullanmaz. Küçük ve büyük hareketler için sınırlı token seti yeterlidir. Reduced motion karşılıkları belirlenebilir. Token frontend library ve Figma değişkenleri arasında eşleştirilebilir.

Duration

Duration token kısa, orta ve uzun interaction sınıfları sağlayabilir. Hover kısa, modal enter biraz daha uzun olabilir. Sık kullanılan interaction en hızlı hissi vermelidir. Çok fazla süre seçeneği consistency'yi azaltır. Gerçek cihaz frame performansı test edilmelidir.

Easing

Easing token hareket karakterini ortaklaştırır. Enter ve exit için uygun eğriler tanımlanabilir. Her component kendi cubic-bezier değerini üretmemelidir. Motion design review daha kolay hale gelir. Reduced motion modunda easing yerine minimal transition kullanılabilir.

Interaction Tokens

Interaction token touch target, focus ring veya feedback timing gibi davranış değerlerini standardize edebilir. Bu kavram yalnızca renk token'larıyla sınırlı değildir. Minimum interactive area bütün button ve icon componentlerinde ortak olabilir. Disabled opacity veya pressed scale kontrollü değerlerle yönetilebilir. Token approach product-wide tutarlılığı güçlendirir.

Focus Standards

Focus ring görünümü bütün interactive componentlerde ortak standarda sahip olmalıdır. Renk, offset ve thickness token ile tanımlanabilir. Focus indicator overflow nedeniyle kesilmemelidir. Custom componentler native focus order'a uyumlu olmalıdır. Keyboard QA design system kabul testlerinden biri olabilir.

Error Standards

Error rengi, icon, message structure ve announcement davranışı ortaklaştırılmalıdır. Form field error ile page-level error farklı pattern olabilir. Mesaj kullanıcıya problem ve çözüm anlatmalıdır. Technical detail görünür main copy içine konmamalıdır. Error summary uzun formlarda ayrıca standardize edilebilir.

Shared UX Patterns

Delete confirmation, autosave, file upload veya optimistic update gibi recurring behaviorlar shared UX pattern olarak belgelenebilir. Component tek başına bütün business akışı çözmez. Pattern dokümanı ne zaman kullanılacağını ve edge case'leri anlatır. Code example ve design example birlikte sunulabilir. Bu yaklaşım ekipler arasında interaction kalitesinin daha hızlı yayılmasını sağlar.

Tasarımcı ve Frontend Geliştirici Arasında Interaction Handoff

Interaction handoff yalnızca final Figma ekranının frontend geliştiriciye verilmesi değildir. State, transition, keyboard behavior, responsive behavior, error scenario ve accessibility gereksinimleri de paylaşılmalıdır. Aksi halde geliştirici eksik durumları kendi tahminiyle tamamlar ve ürün tutarlılığı azalır. Tasarımcı ile geliştiricinin component behavior üzerinde erken birlikte çalışması daha iyi sonuç verir. Prototype ve component story bu iletişimi statik ekran açıklamasından daha güçlü hale getirebilir.

Sadece Figma Ekranı Teslim Etmek Neden Yetmez?

Statik ekran yalnızca belirli bir anda UI'nın nasıl göründüğünü gösterir. Kullanıcı click ettiğinde, request beklerken veya hata olduğunda ne olacağını açıklamaz. Keyboard ve screen reader davranışı da screenshot içinde görünmez. Developer boşlukları tahmin etmek zorunda kalır. Handoff bütün interaction state'lerini içermelidir.

State Specification

Componentin default, hover, focus, loading, success ve error durumları açıkça listelenmelidir. Hangi state'ler business rule ile oluşuyor belirtilmelidir. State geçişleri mümkünse diagram veya prototype ile gösterilebilir. Frontend component API bu modelle uyumlu tasarlanabilir. Eksik state QA sırasında sürpriz oluşturmaz.

Transition Specification

Animation duration, easing ve element movement Figma prototipinde veya token üzerinden belirtilmelidir. Developer hareketi göz kararıyla tahmin etmemelidir. Reduced motion davranışı ayrıca tanımlanmalıdır. Motion kullanıcıyı bekletmemelidir. Performance kısıtı varsa uygun property seçimi birlikte yapılabilir.

Keyboard Behavior

Custom menu, tabs veya dialog hangi tuşlarla kontrol edileceğini açıklamalıdır. Tab, arrow, Enter ve Escape davranışı component türüne göre belirlenir. Focus başlangıç ve dönüş noktası açıklanmalıdır. Bu bilgi yalnızca accessibility specialist'in görevi değildir. Interaction handoff'un doğal parçası olmalıdır.

Error Scenarios

Network failure, validation, permission ve empty state design içinde gösterilmelidir. Yalnızca başarılı ekran bırakılırsa developer generic error üretir. Kullanıcının input'u korunacak mı sorusu açıklanmalıdır. Retry ve support action varsa tanımlanmalıdır. Error severity notification pattern seçiminde rol oynar.

Responsive Behavior

Component sadece desktop ve mobile screenshot ile açıklanmamalıdır. Breakpoint arasında nasıl davrandığı ve interaction pattern'in değişip değişmediği belirtilmelidir. Hover action mobile'da görünür hale gelebilir. Drawer full-screen sheet'e dönüşebilir. Content priority farklı ekranlarda korunmalıdır.

Accessibility Requirements

Accessible name, keyboard control, focus behavior ve screen reader announcement tasarım gereksinimi olarak yazılmalıdır. Contrast ve touch target ölçüleri component acceptance kriterine dahil edilebilir. Reduced motion davranışı belirtilmelidir. Tasarım ve development aynı accessibility hedefini paylaşmalıdır. Son test gerçek assistive technology ile yapılabilir.

Prototype ile Interaction Test Etmek

Prototype tam ürün geliştirilmeden interaction fikrini kullanıcıyla test etmeyi sağlar. Fidelity seviyesi test sorusuna göre seçilmelidir. Basit user flow için kağıt veya low-fidelity yeterli olabilirken motion veya keyboard behavior için gerçek kod prototipi gerekebilir. Prototype production code olmak zorunda değildir. Amaç en düşük maliyetle en riskli kullanıcı varsayımını doğrulamaktır.

Low-Fidelity Prototype

Low-fidelity prototype layout ve user flow sorularını hızlı test eder. Görsel detay az olduğu için kullanıcı interaction mantığına odaklanır. Kağıt veya basit wireframe kullanılabilir. Büyük tasarım yatırımı yapılmadan sorun bulunabilir. Animation veya gerçek input behavior test etmek için uygun değildir.

High-Fidelity Prototype

High-fidelity prototype final ürüne yakın görsel ve interaction sunar. Kullanıcıdan daha gerçekçi feedback alınabilir. Hazırlama süresi daha yüksektir. Görsel kalite kullanıcının temel flow problemine odaklanmasını bazen zorlaştırabilir. Kritik interaction riskleri için uygun aşamada kullanılmalıdır.

Figma Prototype

Figma prototype ekran geçişi ve temel animationları hızlı test etmeyi sağlar. Tasarım ekibi kod yazmadan interaction flow gösterebilir. Gerçek browser behavior ve performance aynı değildir. Keyboard veya form validation gibi ayrıntılar sınırlı temsil edilebilir. Handoff communication için güçlü görsel kaynak olabilir.

Gerçek Kod Prototipi

Gerçek kod prototipi browser API, performance veya accessibility davranışını test etmek için gereklidir. Complex gesture veya animation gerçek runtime'da değerlendirilir. Production architecture ile aynı olmak zorunda değildir. Prototype kodu doğrudan ürüne taşınacaksa kalite gereksinimleri yeniden değerlendirilmelidir. Technical feasibility riskini erken azaltır.

Hangi Fidelity Seviyesi Ne Zaman Kullanılmalı?

Soru navigasyon anlaşılır mı ise low-fidelity yeterli olabilir. Soru motion doğal mı veya input response hızlı mı ise high-fidelity ya da kod prototype gerekir. Gereğinden erken yüksek fidelity maliyetli olabilir. Gereğinden düşük fidelity ise kritik davranışı temsil edemez. Test sorusu prototype seviyesini belirlemelidir.

Usability Testing Nasıl Yapılır?

Usability testing gerçek veya hedefe yakın kullanıcıların belirli görevleri ürün üzerinde tamamlamasını gözlemlemeyi sağlar. Test sırasında kullanıcıya doğru cevabı söylemek yerine davranışı izlemek önemlidir. Think-aloud yöntemi kullanıcının ne düşündüğünü anlamaya yardımcı olabilir. Sonuçlar severity ve frequency açısından sınıflandırılabilir. Tek test turu final karar değil, yeni iteration için veri üretir.

Test Görevlerini Belirlemek

Görevler gerçek kullanıcı hedeflerine dayanmalıdır. Button'a tıkla gibi UI yönlendirmesi verilmemelidir. Geçen ayın faturasını bulun gibi doğal senaryo daha değerlidir. Kritik user flow'lar önceliklendirilmelidir. Görev sayısı kullanıcıyı yormayacak seviyede tutulmalıdır.

Kullanıcıya Yönlendirme Yapmamak

Moderator kullanıcı zorlandığında hemen yardım etmemelidir. Aksi halde discoverability problemi görünmez hale gelir. Sessizlik bazen değerlidir. Kullanıcı tamamen takılırsa nötr soru sorulabilir. Test amacı kullanıcıyı başarıya taşımak değil ürünün nerede başarısız olduğunu anlamaktır.

Think-Aloud Method

Think-aloud kullanıcıdan görev sırasında düşündüklerini sesli ifade etmesini ister. Neyi aradığını ve neden belirli action seçtiğini anlamayı sağlar. Bazı kullanıcılar doğal konuşmakta zorlanabilir. Moderator yargılayıcı tepki vermemelidir. Davranış ile söylenen ifade birlikte değerlendirilmelidir.

Gözlem

Click path, duraksama, geri dönüş ve yanlış seçimler gözlemlenmelidir. Kullanıcının yüz ifadesi veya frustration sinyalleri yardımcı olabilir. Screen recording izin ve privacy koşullarıyla yapılabilir. Yalnızca görev tamamlandı mı sonucu yeterli değildir. Hangi noktada gereksiz effort oluştuğu daha değerlidir.

Test Sonuçlarını Sınıflandırmak

Bulgular severity, frequency ve task impact üzerinden sınıflandırılabilir. Bir kullanıcının kişisel tercihine dayanan bulgu ile bütün kullanıcıların görevi tamamlayamadığı problem aynı öncelikte değildir. Pattern'ler gruplanabilir. Analytics ile desteklenen sorunlar daha güçlü kanıt oluşturur. Her bulgu otomatik olarak tasarım değişikliği gerektirmez.

İterasyon

Test sonrası en yüksek etkili sorunlar düzeltilir ve tekrar test edilir. İlk çözümün yeni problem oluşturmadığı doğrulanmalıdır. Küçük iterationlar büyük final redesign'dan daha hızlı öğrenme sağlar. Design ve development ekipleri bulguları birlikte değerlendirebilir. Kullanılabilirlik sürekli ürün geliştirme döngüsünün parçası olmalıdır.

Etkileşim Tasarımının Başarısı Nasıl Ölçülür?

Interaction design başarısını yalnızca kullanıcı beğenisiyle ölçmek yeterli değildir. Task Completion Rate, Time on Task, Error Rate, Abandonment ve Conversion gibi davranış metrikleri kullanıcı hedefinin ne kadar rahat tamamlandığını gösterir. User Satisfaction ve SUS algılanan kalite hakkında ek bilgi sağlar. Rage click ve dead click ise arayüzün kullanıcı expectation'ını karşılamadığı noktaları gösterebilir. Metrikler kullanıcı araştırmasıyla birlikte değerlendirildiğinde yalnızca ne olduğunu değil neden olduğunu da anlamak mümkün olur.

Task Completion Rate

Task Completion Rate kullanıcıların belirli görevi başarıyla tamamlayıp tamamlamadığını ölçer. Signup, ödeme veya dosya yükleme gibi kritik flow'lar için kullanılabilir. Başarı kriteri önceden açık tanımlanmalıdır. Yüksek completion görevin kolay olduğu anlamına gelmeyebilir. Time on task ve hata oranıyla birlikte değerlendirilmelidir.

Time on Task

Time on Task kullanıcının görevi tamamlamak için harcadığı süreyi gösterir. Daha kısa süre her zaman daha iyi değildir. Örneğin kritik confirmation hızlı geçilmesi yanlış karar riskini artırabilir. Tekrarlanan görevlerde süre düşüşü öğrenilebilirliği gösterebilir. User segment bazında karşılaştırma yapılabilir.

Error Rate

Error Rate kullanıcının görev sırasında yaptığı veya sistemin ürettiği hataları ölçebilir. Validation error ve yanlış navigation örnek olabilir. Yüksek error belirli interaction'ın anlaşılmadığını gösterebilir. Error taxonomy anlamlı sınıflar oluşturmalıdır. Kullanıcı hatası denilen olayın aslında tasarım kaynaklı olup olmadığı ayrıca incelenmelidir.

Abandonment Rate

Abandonment kullanıcıların görevi tamamlamadan ayrılma oranını gösterir. Multi-step form ve checkout için güçlü sinyaldir. Drop-off noktası ayrı analiz edilmelidir. Kullanıcı gerçekten vazgeçmiş veya görevi farklı kanalda tamamlamış olabilir. Session replay ve araştırma nedeni anlamaya yardımcı olur.

Conversion Rate

Conversion Rate belirli business hedefini tamamlayan kullanıcı oranını gösterir. Interaction değişikliği conversion üzerinde etkili olabilir. Ancak yalnızca conversion artırmak etik veya usability açısından doğru tasarım anlamına gelmez. Dark pattern kısa dönem metric'i artırabilir. Kullanıcı memnuniyeti ve retention ile birlikte değerlendirilmelidir.

User Satisfaction

User Satisfaction kullanıcının ürün deneyimini nasıl algıladığını ölçer. Kısa post-task survey kullanılabilir. Tek genel mutluluk sorusu spesifik interaction problemi göstermeyebilir. Task bazlı satisfaction daha ayrıntılı bilgi sağlar. Survey fatigue önlenmelidir.

SUS

System Usability Scale kullanılabilirlik algısını standart sorular üzerinden ölçmek için yaygın yöntemdir. Farklı versiyon veya dönemleri karşılaştırmada faydalıdır. Tek başına root cause göstermez. Usability testing bulgularıyla birlikte kullanılmalıdır. Örneklem ve yorumlama yöntemi tutarlı tutulmalıdır.

Rage Click

Rage click kullanıcı aynı bölgede kısa sürede tekrar tekrar tıkladığında oluşan frustration sinyali olabilir. Tıklanamaz görünen element veya yavaş button buna neden olabilir. Her rapid click mutlaka sorun değildir. Session context incelenmelidir. High frequency rage click alanları usability review için önceliklendirilebilir.

Dead Click

Dead click kullanıcı tıklanabilir sandığı fakat hiçbir action üretmeyen elemente tıklamasıdır. Affordance veya signifier problemi gösterebilir. Analytics element bölgelerini belirleyebilir. Decorative card veya text yanlışlıkla link gibi görünüyor olabilir. User testing nedenini doğrulamaya yardımcı olur.

Product Analytics ile UX Sorunlarını Bulmak

Product analytics kullanıcıların büyük ölçekte nerede ilerlediğini ve nerede ayrıldığını gösterir. Funnel, event tracking, session replay ve heatmap farklı davranış sinyalleri sunar. Ancak analytics tek başına kullanıcının neden belirli davranışı yaptığını açıklamaz. Kullanıcı araştırması ve usability testing ile birleştirildiğinde daha güçlü sonuç verir. Event planı her click'i toplamak yerine product question'lara cevap verecek şekilde tasarlanmalıdır.

Funnel Analysis

Funnel kullanıcıların belirli akış adımlarında ne oranda devam ettiğini gösterir. Signup veya checkout için kullanılabilir. Büyük drop-off olan adım incelenebilir. Funnel adımları gerçek user flow ile uyumlu olmalıdır. Segment farkları cihaz veya kullanıcı tipi kaynaklı problemi gösterebilir.

Event Tracking

Event tracking önemli kullanıcı eylemlerini ölçer. Event name stable ve anlamlı olmalıdır. Her hover veya scroll eventini toplamak noise ve maliyet yaratabilir. Business ve UX sorularına cevap veren olaylar seçilmelidir. Privacy ve consent gereksinimleri dikkate alınmalıdır.

Drop-Off Analizi

Drop-off kullanıcının flow içinde hangi aşamada ayrıldığını gösterir. Yüksek drop-off tasarım, performance veya business nedenli olabilir. Form error ve loading süreleriyle correlation incelenebilir. Session replay örnekleri context sağlayabilir. Kullanıcı görüşmesi nedeni doğrulamaya yardımcı olur.

Session Replay

Session replay kullanıcı interaction akışını görsel biçimde incelemeye yardımcı olur. Rage click, scroll ve form struggle görülebilir. Hassas form alanları maskelenmelidir. Tüm oturumları izlemek yerine problem segmentlerinden örnek seçilebilir. Replay davranışı açıklasa da kullanıcı düşüncesini doğrudan göstermez.

Heatmap

Heatmap click ve scroll yoğunluğunu görselleştirir. Kullanıcıların beklenmedik elementlere tıkladığını gösterebilir. Absolute yorum yapılmamalıdır. Responsive layout ve device farkı ayrı analiz edilmelidir. Heatmap usability test için hipotez üretmekte yararlıdır.

Analytics Verisini Kullanıcı Araştırmasıyla Birleştirmek

Analytics ne olduğunu, research neden olduğunu anlamaya yardımcı olur. Funnel drop-off yüksekse kullanıcılarla ilgili task test edilebilir. Interview sonucu büyük analytics segmentiyle doğrulanabilir. Tek veri kaynağına bağımlı kalmamak yanlış karar riskini azaltır. Product team bulguları ortak problem statement içine taşımalıdır.

A/B Test ile Interaction Design Kararlarını Doğrulamak

A/B test iki veya daha fazla tasarım varyantının belirli metrik üzerindeki etkisini kontrollü biçimde karşılaştırır. Test başlamadan hipotez ve başarı metriği tanımlanmalıdır. Yalnızca daha yüksek conversion alan varyantı otomatik olarak daha iyi UX anlamına gelmez. Error rate, satisfaction veya uzun dönem davranış ayrıca incelenebilir. İstatistiksel sonuç usability nedenini açıklamadığı için nitel araştırmayla desteklenmelidir.

Hipotez Oluşturma

Hipotez değişikliğin hangi kullanıcı problemine ve metriğe etki edeceğini açıklar. Primary CTA'yı daha görünür yaparsak task completion artar gibi test edilebilir ifade kullanılabilir. Yalnızca renk değiştirirsek daha güzel olur hipotezi ölçülebilir değildir. Hipotez research veya analytics bulgusuna dayanmalıdır. Test sonucu öğrenme sağlamalıdır.

Başarı Metriğini Belirleme

Primary metric test başlamadan seçilmelidir. Conversion yanında error veya abandonment guardrail metric olabilir. Çok sayıda metric içinde yalnızca olumlu olanı seçmek yanıltıcıdır. Sample size ve test süresi planlanmalıdır. Business ve UX etkisi birlikte değerlendirilmelidir.

Variant Tasarlama

Variant hipotezi test edecek kadar farklı olmalıdır. Aynı anda çok fazla değişiklik yapılırsa hangi farkın sonucu oluşturduğu anlaşılamaz. Accessibility iki varyantta da korunmalıdır. Dark pattern performans kazanmak için kullanılmamalıdır. Teknik implementation test grupları arasında performans farkı yaratmamalıdır.

Sonuçları Yorumlama

İstatistiksel significance tek başına business relevance anlamına gelmez. Küçük fark büyük trafik için önemli olabilir. Segment davranışları ayrıca incelenebilir. Test sonucu beklenmeyen negative metric oluşturabilir. Sonuç ürün context'i ve research bulgularıyla birlikte yorumlanmalıdır.

İstatistiksel Sonucu Kullanılabilirlikle Karıştırmamak

Bir varyant daha fazla conversion üretirken kullanıcıyı yanlış yönlendirebilir. Bu kısa dönem business metric'i artırabilir fakat güveni azaltabilir. Usability ve ethical review ayrı yapılmalıdır. Kullanıcı memnuniyeti ve support talebi uzun dönem sinyaller sunabilir. A/B test yalnızca hangi davranışın daha sık olduğunu gösterir, neden daha iyi deneyim olduğunu tek başına kanıtlamaz.

Etik Etkileşim Tasarımı

Etik interaction design kullanıcının karar verme özgürlüğünü ve kontrolünü korur. Dark pattern kısa vadede conversion veya engagement artırabilir fakat kullanıcı güvenini azaltır. Confirmshaming, hidden costs ve manipülatif urgency kullanıcıyı bilinçli olarak istenmeyen karara yöneltebilir. Arayüz business hedefini desteklerken kullanıcının gerçek seçimini görünür tutmalıdır. Cancel, unsubscribe ve delete gibi kullanıcı kontrolü sağlayan işlemler gereksiz yere zorlaştırılmamalıdır.

Dark Pattern Nedir?

Dark pattern kullanıcıyı kendi tercihinden farklı bir eyleme yönlendirmek için tasarlanan yanıltıcı interaction modelidir. Görsel hierarchy veya metin manipülasyonu kullanılabilir. Kısa vadede metric artışı kullanıcı lehine sonuç anlamına gelmez. Legal ve reputational risk oluşturabilir. Tasarım review süreçlerinde ethical checklist kullanılabilir.

Confirmshaming

Confirmshaming kullanıcının reddetme seçeneğini utandırıcı veya küçümseyici metinle sunar. Hayır, tasarruf etmek istemiyorum gibi ifadeler örnektir. Kullanıcının hayır deme hakkı nötr biçimde sunulmalıdır. Business hedefi manipülatif microcopy ile zorlanmamalıdır. Trust uzun dönem ürün değeri açısından daha önemlidir.

Roach Motel

Roach Motel bir hizmete girmeyi kolay, çıkmayı ise gereksiz zor hale getirir. Subscription cancel veya account delete akışında görülebilir. Kullanıcı önemli işlemi yapabilmek için saklı menu ve çok sayıda adım geçmek zorunda kalmamalıdır. Retention amacıyla exit zorlaştırmak etik değildir. Cancellation nedeni ayrı ve isteğe bağlı toplanabilir.

Hidden Costs

Hidden costs fiyat veya ek ücret bilgisini sürecin çok geç aşamasında göstermektir. Kullanıcı kararını eksik bilgiyle verir. Toplam maliyet mümkün olduğunca erken ve açık gösterilmelidir. Checkout sonunda sürpriz ücret abandonment ve güven kaybı oluşturabilir. Price breakdown anlaşılır olmalıdır.

Manipülatif Urgency

Gerçek olmayan sayaç veya yapay kıtlık kullanıcıyı acele karara zorlayabilir. Gerçek süre veya stok bilgisi varsa doğru gösterilmelidir. Fake urgency uzun dönem güveni zedeler. Animation ve kırmızı renk baskı amacıyla abartılmamalıdır. Kullanıcının karar vermek için yeterli zamanı olmalıdır.

Kullanıcı Kontrolünü Korumak

Kullanıcı kolayca geri dönebilmeli, tercih değiştirebilmeli ve gereksiz manipülasyondan uzak karar verebilmelidir. Default seçenekler kullanıcı aleyhine gizli davranmamalıdır. Permission ve consent açıkça açıklanmalıdır. Destructive business action yalnızca şirket yararı için gizlenmemelidir. Ethical UX ürün güveninin temel parçalarından biridir.

AI Destekli Arayüzlerde Kullanıcı Deneyimi

AI destekli arayüzlerde sistem davranışı klasik deterministic formlardan daha belirsiz olabilir. Kullanıcı ne zaman model cevabı beklediğini, yanıtın tamamlanıp tamamlanmadığını ve işlemi durdurup durduramayacağını anlamalıdır. Streaming response, thinking state, stop, regenerate ve edit kontrolleri bu deneyimi yönetmeye yardımcı olur. Sistem ne yaptığını kullanıcıdan gizlememelidir. Kullanıcının çıktı üzerinde kontrolü ve hatalı sonucu düzeltebilmesi güven oluşturur.

AI Ne Yaptığını Kullanıcıya Bildirmeli

Sistem içerik üretiyor, dosya analiz ediyor veya dış kaynak arıyorsa durum açıkça gösterilmelidir. Belirsiz spinner kullanıcıya yeterli context vermeyebilir. İşlem aşamaları gerçekten biliniyorsa kısa status mesajı kullanılabilir. Sistem yapmadığı eylemi yapıyor gibi göstermemelidir. Kullanıcının permission gerektiren işlem öncesinde bilgi alması önemlidir.

Streaming Response

Streaming uzun AI yanıtının parça parça görünmesini sağlayarak algılanan performansı artırır. Kullanıcı ilk içeriği daha erken okumaya başlayabilir. Scroll behavior yeni token geldikçe kullanıcıyı zorla aşağı çekmemelidir. Stop control erişilebilir olmalıdır. Partial response ile final response state'i anlaşılır biçimde ayrılabilir.

Loading ve Thinking State

AI işlemi belirli süre görünür çıktı üretmeden çalışabilir. Thinking state sistemin hâlâ aktif olduğunu gösterir. Gerçekte bilinmeyen iç süreçler hakkında yanıltıcı ayrıntı verilmemelidir. Kullanıcı uzun beklemede cancel edebilmelidir. State motion hassasiyeti ve screen reader feedback açısından erişilebilir olmalıdır.

Stop / Cancel

Kullanıcı uzun generation veya tool işlemini durdurabilmelidir. Stop action hemen feedback vermelidir. Partial output korunabilir. Backend computation gerçekten iptal edilebiliyorsa kaynak kullanımı azalır. İptal sonrasında regenerate veya edit gibi next action sunulabilir.

Regenerate

Regenerate kullanıcının aynı prompt için yeni çıktı istemesini sağlar. Önceki output tamamen kaybolmamalıdır. Version veya compare behavior bazı uygulamalarda yararlı olabilir. Kullanıcı regenerate'in tekrar maliyet veya süre oluşturacağını bilmelidir. Feedback yeni response'un üretildiğini açıkça göstermelidir.

Edit

Kullanıcı AI çıktısını düzenleyebiliyorsa sistemin kontrolü tamamen modele bırakılmaz. Edit mode açık biçimde ayrılmalıdır. AI tarafından oluşturulan ve kullanıcı tarafından değiştirilen içerik gerektiğinde farklı history davranışı taşıyabilir. Autosave veya undo desteklenebilir. Kullanıcı kendi içeriğini kaybetmemelidir.

Undo

AI önerisi kullanıcı verisini değiştirecekse undo güçlü güven mekanizmasıdır. Toplu edit veya format değişikliği geri alınabilir olmalıdır. History state açık tutulmalıdır. Irreversible action AI tarafından otomatik yapılmamalıdır. Kullanıcı sonucu görüp gerektiğinde eski duruma dönebilmelidir.

Kullanıcı Kontrolü ve Güven

AI arayüzünde kullanıcı hangi eylemi modelin yaptığını ve hangisini kendisinin onaylaması gerektiğini bilmelidir. High-impact action confirmation isteyebilir. System uncertainty gerektiğinde açıkça ifade edilmelidir. Kullanıcı output'u düzenleyebilmelidir. Güven yalnızca doğru cevapla değil şeffaf ve geri alınabilir interaction davranışıyla oluşur.

Agentic Arayüzlerde Interaction Design

Agentic arayüzlerde sistem yalnızca cevap üretmek yerine kullanıcı adına birden fazla işlem yapabilir. Bu nedenle feedback ve permission klasik chat arayüzünden daha önemli hale gelir. Kullanıcı sistemin planladığını, hangi action'ı yaptığını ve hangi noktada onay beklediğini görebilmelidir. Reversible actions riski azaltır. Background işlemleri kullanıcıdan tamamen gizlemek kontrol kaybı hissi oluşturabileceği için anlamlı status görünürlüğü sağlanmalıdır.

Sistem Kullanıcı Adına İşlem Yaparken Feedback

Agent dosya taşıyor, rezervasyon arıyor veya kayıt güncelliyorsa kullanıcı progress hakkında bilgi almalıdır. Her düşük seviyeli teknik adım gösterilmek zorunda değildir. Kullanıcı açısından anlamlı milestone'lar yeterlidir. Hata olursa hangi adımın tamamlandığı açıklanmalıdır. Kullanıcı gerektiğinde işlemi durdurabilmelidir.

Planning State

Planning state agent'ın kullanıcı isteğini nasıl ele alacağını özetleyebilir. Çok ayrıntılı internal reasoning göstermek gerekli değildir. Kullanıcı yüksek etkili planı kontrol edebilmelidir. Eksik permission veya bilgi varsa işlem başlamadan belirtilmelidir. Plan gerektiğinde değiştirilebilir olmalıdır.

Action State

Action state agent'ın şu anda hangi kullanıcı anlamlı işlemi yaptığını gösterir. Belge aranıyor veya seçenekler karşılaştırılıyor gibi kısa feedback kullanılabilir. Teknik tool çağrıları kullanıcıya gereksiz yük oluşturmamalıdır. Progress state aynı zamanda cancel kontrolü sunabilir. Tamamlanan actionlar history içinde görünür olabilir.

Permission

Agent kullanıcı adına dış sistemde işlem yapacaksa gerekli permission açık olmalıdır. Permission scope mümkün olduğunca dar tutulmalıdır. Kullanıcı hangi veriye veya işleve izin verdiğini anlamalıdır. Süresiz permission varsayılan olmamalıdır. Permission değişikliği ve revoke yolu görünür olmalıdır.

Confirmation

Yüksek etkili veya irreversible action agent tarafından doğrudan uygulanmamalıdır. Kullanıcı final sonucu ve etkisini görüp onaylayabilmelidir. Her küçük action için confirmation interaction'ı yavaşlatır. Risk seviyesine göre threshold belirlenmelidir. Confirmation metni yapılacak işlemi açıkça anlatmalıdır.

Reversible Actions

Mümkün olan agentic işlemler geri alınabilir tasarlanmalıdır. Email taslağı oluşturmak gönderimden önce edit edilebilir. Dosya silmek yerine trash'e taşımak restore sağlar. Reversible design kullanıcı güvenini artırır. History ve undo mechanism teknik mimaride baştan düşünülmelidir.

Background İşlemlerinin Görünürlüğü

Uzun işlem kullanıcı başka ekranlara geçse bile devam edebilir. Background job status notification veya task center içinde görünür olabilir. Kullanıcı iş tamamlandı mı sorusunu tahmin etmemelidir. Fail durumunda retry ve detay gösterilebilir. Sürekli spinner yerine task status modeli daha uygun olabilir.

Open Source ve İşbirliği ile Daha İyi UX Geliştirmek

İyi kullanıcı deneyimi tek bir tasarımcının veya frontend geliştiricinin işi değildir. Ortak design system, açık component library, interaction pattern dokümantasyonu ve accessibility katkıları ekipler arasında kaliteyi yayar. GitHub issue veya benzeri takip mekanizmaları UX problemlerini teknik bug kadar görünür hale getirebilir. Tasarımcı ve yazılımcı code review birlikte yaptığında görsel ve davranış problemleri daha erken bulunur. Açık işbirliği tekrar eden UX problemlerinin her projede sıfırdan çözülmesini azaltır.

Ortak Design System

Ortak design system component, token ve UX pattern standardı sağlar. Farklı ekipler aynı button ve modal behavior kullanabilir. Accessibility merkezi olarak iyileştirilebilir. Design ve code sürümleri birlikte yönetilmelidir. System yaşayan ürün olduğu için feedback ve contribution süreci açık olmalıdır.

Açık Component Library

Component library tekrar kullanılabilir UI behavior sunar. State, keyboard ve accessibility logic tek yerde uygulanabilir. Sadece görsel component topluluğu olmamalıdır. API dokümantasyonu gerçek kullanım örnekleri içermelidir. Contribution review UX standardını korumalıdır.

Interaction Pattern Dokümantasyonu

Delete, upload, form validation ve autosave gibi davranışlar pattern olarak belgelenebilir. Ne zaman kullanılacağı açıklanmalıdır. State diagram ve code example birlikte sunulabilir. Yeni ekip üyeleri ürün davranışını daha hızlı öğrenir. Documentation design system ile aynı lifecycle içinde güncellenmelidir.

GitHub Issue ile UX Problemi Takibi

UX problemi yalnızca tasarım dosyasındaki yorum olarak kalmamalıdır. Issue içinde reproduction, user impact ve evidence yazılabilir. Accessibility veya usability label kullanılabilir. Screenshot ve analytics verisi yardımcı olur. Problem product backlog içinde görünür hale gelir.

Tasarımcı ve Yazılımcı Code Review

Frontend pull request design review alabilir. Designer spacing kadar state ve interaction davranışını da inceleyebilir. Developer technical constraint'i erken paylaşabilir. Accessibility behavior ortak kontrol edilebilir. Bu işbirliği handoff sonrası iki ayrı ekip modelini azaltır.

Accessibility Katkıları

Keyboard, screen reader veya contrast iyileştirmeleri ortak library'ye katkı olarak yapılabilir. Bir component düzeldiğinde bütün ürünler faydalanır. Accessibility issue template standardize edilebilir. Gerçek kullanıcı testleri contribution priority'sini belirleyebilir. Accessibility bilgisi ekip içinde paylaşılmalıdır.

Kullanıcı Deneyimi Odaklı Frontend Workflow

Kullanıcı deneyimi odaklı frontend workflow problem tanımından measurement aşamasına kadar kesintisiz bir döngüdür. Önce kullanıcı problemi anlaşılır, sonra flow ve interaction state'leri tasarlanır, prototype ile test edilir ve gerçek frontend implementasyonu yapılır. Accessibility ve performance geliştirme sonunda eklenen ayrı işler olmamalıdır. Ürün production'a çıktıktan sonra analytics ve araştırma yeni öğrenmeler sağlar. Bu döngü feature teslimini tek seferlik sonuç değil sürekli iyileştirilen kullanıcı deneyimi olarak ele alır.

1. Kullanıcı Problemini Tanımla

Çözüm yazmadan önce hangi kullanıcının hangi problemi yaşadığı açıkça tanımlanmalıdır. Problem statement feature içermemelidir. Analytics ve research kanıtı eklenebilir. Başarı metriği belirlenebilir. Ekip aynı problemi çözdüğünden emin olmalıdır.

2. User Flow Oluştur

Başlangıç, karar, success ve error yolları çıkarılmalıdır. Back ve cancel behavior düşünülmelidir. Happy path dışı critical scenario eklenmelidir. Route ve state ihtiyacı görünür hale gelir. Flow design ve development için ortak referans olur.

3. Wireframe Hazırla

Wireframe bilgi hierarchy ve layout'u düşük maliyetle test eder. Görsel polish yerine task flow odaklıdır. Primary action konumu değerlendirilir. Gereksiz içerik erken kaldırılabilir. User feedback final tasarım öncesinde alınabilir.

4. Interaction State'lerini Belirle

Default, hover, focus, loading, success ve error state'leri tanımlanmalıdır. Disabled ve empty durum gerekliyse eklenmelidir. Transition kuralları belirtilmelidir. Keyboard behavior yazılmalıdır. Developer implementation sırasında state tahmini yapmak zorunda kalmaz.

5. Prototype Oluştur

En riskli interaction mümkün olan en düşük fidelity ile test edilmelidir. Figma veya gerçek kod kullanılabilir. Prototype final production code olmak zorunda değildir. User flow ve feedback davranışı gözlemlenir. Teknik feasibility gerekiyorsa developer erken dahil olur.

6. Kullanıcıyla Test Et

Kullanıcıya gerçekçi görev verilir. Moderator yönlendirme yapmaz. Duraksama, hata ve yanlış seçim gözlemlenir. Bulgular severity ile sınıflandırılır. Tasarım test sonucuna göre güncellenir.

7. Frontend Implementasyonu Yap

Componentler semantic HTML ve design system patternleriyle geliştirilmelidir. Interaction state'leri kodda açık modellenmelidir. Loading ve error gerçek backend davranışıyla test edilmelidir. Browser history korunmalıdır. Performance riskli componentler profil edilmelidir.

8. Accessibility Testi Yap

Keyboard ile ana görev tamamlanmalıdır. Focus görünür ve logical olmalıdır. Screen reader ile dynamic feedback kontrol edilmelidir. Contrast ve touch target test edilmelidir. Reduced motion behavior doğrulanmalıdır.

9. Performance Testi Yap

INP, loading ve animation performance incelenmelidir. Slow network ve mobile CPU test edilebilir. Main thread long task aranabilir. Layout shift kontrol edilmelidir. Performance problemi user task bağlamında değerlendirilmelidir.

10. Analytics ile Ölç ve İyileştir

Task completion, error ve drop-off metricleri izlenebilir. Rage click veya dead click problem sinyali olabilir. RUM performance verisi interaction kalitesini gösterir. Research ile analytics birleştirilir. Yeni öğrenme sonraki iteration döngüsünü başlatır.

Etkileşimli Arayüz Tasarımında Yaygın Hatalar

Etkileşim tasarımındaki hatalar çoğu zaman final ekran güzel göründüğü için geç fark edilir. Loading, error, empty, accessibility ve keyboard behavior üretim ortamında kullanıcılar karşılaşınca görünür hale gelir. Her şeyi animasyonlu yapmak veya native pattern'leri gereksiz değiştirmek ürünün öğrenilebilirliğini azaltabilir. Kullanıcı testi yapılmadan tamamlandı kabul edilen tasarım gerçek davranışla sınanmamıştır. Frontend ve tasarım ekiplerinin shared checklist kullanması bu tekrar eden hataları önemli ölçüde azaltabilir.

Görsel Tasarımı UX Sanmak

Güzel renk ve typography iyi experience garantisi değildir. Kullanıcı görevini tamamlayamıyorsa görsel kalite problemi çözmez. Flow, feedback ve error recovery ayrıca tasarlanmalıdır. Performance ve accessibility deneyime dahildir. UX outcome davranış metricleri ve testing ile ölçülmelidir.

Her Şeyi Animasyonlu Yapmak

Fazla motion dikkat yarışına ve yavaşlık hissine neden olabilir. Her hover veya scroll olayında animation gerekmez. Motion fonksiyonel amaç taşımalıdır. Reduced motion desteği eklenmelidir. Low-end device performansı test edilmelidir.

Hover'a Bağımlı Tasarım

Hover touch ve keyboard kullanıcıları için güvenilir değildir. Kritik action görünür olmalıdır. Focus aynı bilgiyi sağlayabilir. Gesture veya hover enhancement olarak kullanılmalıdır. Responsive interaction input türlerini dikkate almalıdır.

Loading State Tasarlamamak

Async işlem feedback vermediğinde kullanıcı sistemin donduğunu düşünebilir. Loading scope doğru belirlenmelidir. Short işlemde flicker önlenmelidir. Long işlem progress ve cancel gerektirebilir. Screen reader loading state'i anlayabilmelidir.

Error State'i Unutmak

Network ve validation error gerçek ürün kullanımında kaçınılmazdır. Final design yalnızca success path içeriyorsa frontend generic mesaj üretir. User input korunmalıdır. Retry ve recovery tasarlanmalıdır. Error severity uygun feedback patternini belirlemelidir.

Empty State'i Unutmak

Liste boş olduğunda yalnızca beyaz ekran görünmemelidir. First-use ve no-results farklı tasarlanmalıdır. Kullanıcı neden veri olmadığını bilmelidir. Next action sunulabilir. Permission kaynaklı empty state doğru mesaj taşımalıdır.

Kullanıcıya Feedback Vermemek

Click sonrası sessizlik kullanıcıyı tekrar action yapmaya iter. Immediate visual feedback gerekir. İşlem sonucu success veya error olarak gösterilmelidir. Feedback action önemine göre seçilmelidir. Kritik sonuç yalnızca geçici toast içinde kaybolmamalıdır.

Native UI Pattern'lerini Gereksiz Yere Yeniden İcat Etmek

Native button veya select behavior yıllardır kullanıcı tarafından bilinir. Custom replacement accessibility ve keyboard maliyeti getirir. Gerçek ürün ihtiyacı yoksa bilinen pattern kullanılmalıdır. Custom component native semantics'i mümkün olduğunca korumalıdır. Yenilik yalnızca farklı görünmek için yapılmamalıdır.

Accessibility'yi Sonradan Eklemek

Accessibility son aşamaya bırakılırsa component architecture değişikliği gerekebilir. Keyboard ve focus behavior tasarım sırasında düşünülmelidir. Color token ve semantic HTML baştan seçilmelidir. User testing assistive technology kullanıcılarını da kapsayabilir. Erişilebilirlik ürün kalitesinin temel parçasıdır.

Kullanıcı Testi Yapmadan Tasarımı Tamamlanmış Saymak

Ekibin tasarımı anlaması kullanıcının anlayacağı anlamına gelmez. Usability testing discoverability ve mental model problemlerini gösterir. Küçük kullanıcı sayısı bile tekrar eden ciddi sorunları ortaya çıkarabilir. Analytics production davranışını doğrular. Tasarım sürekli iteration süreci olarak görülmelidir.

Etkileşimli Arayüz Tasarımı Checklist

Etkileşimli Arayüz Tasarımı checklist'i kullanıcı hedefinden performans ölçümüne kadar farklı kalite alanlarını tek review akışında toplamaya yardımcı olur. Checklist her component için bütün maddelerin zorunlu olduğu anlamına gelmez. Ama kritik flow'larda kullanıcı, interaction, loading, accessibility, responsive behavior ve measurement başlıkları sistematik biçimde değerlendirilmelidir. Design review ve frontend pull request süreçlerinde aynı checklist kullanılabilir. Böylece ürünün görünen ekranı kadar arka plandaki state ve interaction davranışı da teslimat kriterinin parçası olur.

Kullanıcı

İlk kontrol kullanıcı hedefinin gerçekten anlaşılmış olup olmadığıdır. Feature listesi kullanıcı görevini otomatik açıklamaz. Ana görev, başlangıç context'i ve success condition yazılmalıdır. User flow test edilebilir olmalıdır. Kullanıcı araştırması tasarım kararlarının dayanağını güçlendirir.

Kullanıcı hedefi belli mi?

Kullanıcının bu ekrana neden geldiği tek cümleyle ifade edilebilmelidir. Hedef business hedefinden farklı olabilir. Primary action bu kullanıcı hedefiyle uyumlu olmalıdır. Gereksiz secondary content hedefi gölgelememelidir. Ölçüm ilgili task outcome'a bağlanmalıdır.

Ana görev tanımlandı mı?

Screen içinde ana görev açıkça bilinmelidir. Birden fazla eşit primary action confusion yaratabilir. Task analysis gereksiz adımları gösterebilir. Completion state tanımlanmalıdır. Analytics ana görevin başarı oranını ölçebilir.

User flow test edildi mi?

Flow yalnızca diagram olarak kalmamalıdır. Prototype veya gerçek ürünle kullanıcı testi yapılabilir. Error ve back davranışı da test kapsamına alınmalıdır. Mobile ve keyboard yolları gerektiğinde incelenmelidir. Bulgular iteration'a dönüşmelidir.

Interaction

Interaction kontrolü elementlerin state ve feedback davranışını değerlendirir. Kullanıcı eylem yaptıktan sonra sistem tepki vermelidir. Destructive action mümkünse geri alınabilir olmalıdır. Hidden gesture critical action olmamalıdır. Component behavior design system ile tutarlı kalmalıdır.

Tüm elementlerin state'leri var mı?

Interactive component default dışında focus, active ve disabled state'e ihtiyaç duyabilir. Async action loading ve error state oluşturabilir. Selection gerekiyorsa selected state görünür olmalıdır. State'ler design handoff içinde gösterilmelidir. Frontend implementation bu modeli takip etmelidir.

Her eylem feedback veriyor mu?

Click, submit veya drag sonrasında kullanıcı sonucu anlayabilmelidir. Immediate feedback gecikme hissini azaltır. Long action progress gösterebilir. Error eylemle ilişkili yerde görünmelidir. Screen reader kullanıcıları da feedback almalıdır.

Destructive actions geri alınabilir mi?

Silme veya kaldırma teknik olarak reversible ise Undo değerlendirilebilir. Irreversible action confirmation gerektirebilir. Kullanıcı neyin etkileneceğini görmelidir. Restore gerekiyorsa recovery yolu açık olmalıdır. Destructive button yanlış primary hierarchy almamalıdır.

Loading ve Error

Loading ve error yalnızca edge case değildir, gerçek kullanımın normal parçalarıdır. Network ve async işlem her zaman başarılı ve hızlı olmayabilir. UI kullanıcıya progress ve recovery sunmalıdır. Empty state de data lifecycle'ın bir parçasıdır. Tasarımın production koşullarına dayanıklı olması bu state'lerin hazırlanmasına bağlıdır.

Loading state var mı?

Async component uygun loading feedback göstermelidir. Spinner, skeleton veya progress işlem türüne göre seçilmelidir. Bütün ekran gereksiz bloke edilmemelidir. Layout shift önlenmelidir. Very short işlemlerde loading flicker engellenebilir.

Error state var mı?

Network, validation ve permission error ayrı message gerektirebilir. Kullanıcı ne olduğunu anlamalıdır. Technical detail main message olmamalıdır. User input korunmalıdır. Error accessibility announcement test edilmelidir.

Retry seçeneği var mı?

Transient error için retry hızlı recovery sağlar. Duplicate işlem riski kontrol edilmelidir. Retry mevcut state'i korumalıdır. Kullanıcı bütün süreci baştan yapmamalıdır. Persistent error support veya alternative action gösterebilir.

Empty state tasarlandı mı?

First-use, no-results ve permission empty state ayrılmalıdır. Sebep kullanıcıya açıklanmalıdır. Next action varsa görünür olmalıdır. Boş ekran sistem arızası gibi görünmemelidir. Empty state analytics ile kullanıcının ne yaptığını gösterebilir.

Accessibility

Accessibility kontrolü componentin farklı input ve yardımcı teknolojiyle kullanılabilir olup olmadığını inceler. Keyboard, visible focus ve screen reader feedback temel alanlardır. Motion preference ve touch target da interaction accessibility kapsamındadır. Semantic HTML implementation'ı kolaylaştırır. Accessibility QA yalnızca otomatik tarama ile sınırlı kalmamalıdır.

Keyboard kullanılabiliyor mu?

Ana görev mouse olmadan tamamlanmalıdır. Custom component tab ve arrow behavior'a uygun çalışmalıdır. Escape ve Enter beklenen yerde desteklenmelidir. Tab order logical olmalıdır. Keyboard trap oluşmamalıdır.

Focus görünür mü?

Focus indicator bütün interactive elementlerde seçilebilir olmalıdır. Outline dekoratif nedenle kaldırılmamalıdır. Focus component sınırının dışında kesilmemelidir. Modal focus behavior test edilmelidir. Mouse ve keyboard state ayrımı gerektiğinde focus-visible kullanılabilir.

Screen reader feedback doğru mu?

Dynamic loading ve error değişimleri gerekli durumda announce edilmelidir. Accessible names anlamlı olmalıdır. Heading structure navigation sağlar. Form error alanla ilişkilendirilmelidir. Gerçek screen reader testi yapılmalıdır.

Reduced motion destekleniyor mu?

prefers-reduced-motion sistem tercihi okunmalıdır. Büyük hareket alternatif minimal feedback ile değiştirilebilir. Critical information motion'a bağlı kalmamalıdır. Animation library davranışı da preference ile uyumlu olmalıdır. Product functionality hareket kapalıyken korunmalıdır.

Responsive

Responsive kontrol yalnızca pixel uyumuna bakmamalıdır. Touch target, hover bağımlılığı ve navigation behavior farklı cihazlarda test edilmelidir. Pointer ve touch aynı cihazda bulunabilir. Content priority küçük ekranda yeniden düzenlenebilir. Gerçek device interaction emulator testini tamamlar.

Touch cihazlarda çalışıyor mu?

Action'lar hover gerektirmeden kullanılabilmelidir. Touch target yeterli olmalıdır. Gesture için alternative control bulunmalıdır. Mobile keyboard form layout'u bozmamalıdır. Scroll ve sticky behavior gerçek cihazda test edilmelidir.

Hover zorunluluğu var mı?

Kritik bilgi hover ile gizlenmemelidir. Focus veya click alternatif erişim sağlamalıdır. Tooltip yardımcı bilgi olabilir. Mobile'da action görünür hale getirilebilir. Hover enhancement olarak kalmalıdır.

Touch target'lar yeterli mi?

Icon button hit area görsel boyuttan büyük olabilir. Yan yana control'lar arasında spacing gerekir. Destructive action accidental touch riskine göre yerleştirilmelidir. Fitts prensibi target büyüklüğünü destekler. Accessibility testleri target size kontrolü içermelidir.

Performance

Performance interaction kalitesinin doğrudan parçasıdır. Kullanıcı click sonrası hızlı feedback almalıdır. Animation frame drop veya main thread blocking oluşmamalıdır. Ağ gecikmesi skeleton, optimistic UI veya progress ile doğru yönetilebilir. RUM gerçek kullanıcı cihazlarında sonucu doğrular.

Kullanıcı etkileşimine hızlı cevap veriliyor mu?

Click handler uzun synchronous iş yapmamalıdır. Immediate visual feedback gösterilmelidir. INP production'da ölçülebilir. Heavy render profiler ile bulunabilir. Kullanıcı action sonrası sistemin donduğunu düşünmemelidir.

Animation 60 FPS'e yakın mı?

Animation frame drop görsel takılma yaratır. Transform ve opacity performans açısından daha güvenli olabilir. Çok sayıda simultaneous animation azaltılmalıdır. Mobile GPU test edilmelidir. Reduced motion ayrıca desteklenmelidir.

Ağ gecikmeleri doğru yönetiliyor mu?

Async request user feedback olmadan bekletilmemelidir. Parallel request ve cache performansı iyileştirebilir. Loading state kapsamı doğru seçilmelidir. Retry ve cancel gerekebilir. Slow network lab ve real device koşullarında test edilmelidir.

Measurement

Interaction design başarı metriği olmadan yalnızca subjektif değerlendirmeye açık kalır. Task completion, error ve performance verileri kullanılabilir. Kullanıcı hataları ve rage click gibi sinyaller problem alanlarını gösterir. Analytics araştırmayla birleştirilmelidir. Release sonrası iyileştirme gerçek kullanıcı davranışında doğrulanmalıdır.

Başarı metriği tanımlandı mı?

Her kritik flow için outcome metriği belirlenebilir. Conversion tek ölçüt olmak zorunda değildir. Task time ve error rate birlikte değerlendirilebilir. Metric kullanıcı hedefiyle ilişkili olmalıdır. Design change sonrası karşılaştırma yapılabilir.

Kullanıcı hataları takip ediliyor mu?

Validation ve failed interaction eventleri taxonomy ile ölçülebilir. Sensitive data event içine taşınmamalıdır. Hangi alanın sürekli hata ürettiği görülebilir. Error rate tasarım problemine işaret edebilir. User research nedeni anlamayı sağlar.

Task completion ölçülüyor mu?

Kullanıcı ana görevi gerçekten tamamlıyor mu ölçülmelidir. Funnel eventleri success state'i temsil etmelidir. Partial completion ayrı değerlendirilebilir. Abandonment ve error ile birlikte incelenmelidir. User segment farkları UX problemine işaret edebilir.

Sık Sorulan Sorular

Etkileşimli arayüzler hakkında en sık sorulan sorular genellikle UI, UX, frontend performansı ve accessibility sınırlarında toplanır. Bu kavramlar ayrı disiplinler olsa da gerçek ürün geliştirmede sürekli birbirini etkiler. İyi bir frontend geliştirici sadece component kodunu değil kullanıcı eyleminin tamamını düşünür. Tasarımcı da yalnızca default görünümü değil loading, error ve keyboard behavior gibi durumları hesaba katar. Aşağıdaki cevaplar Etkileşimli Arayüz Tasarımı yaklaşımını pratik kararlarla ilişkilendirerek temel sorulara kısa fakat uygulamaya dönük açıklamalar sunar.

Etkileşimli Arayüz Tasarımı Nedir?

Etkileşimli arayüz tasarımı kullanıcı eylemleri ile sistem tepkileri arasındaki davranışın tasarlanmasıdır. Click, touch, keyboard ve farklı input yöntemleri bu ilişkinin başlangıcı olabilir. Loading, success, error ve undo gibi state'ler kullanıcıya sistem davranışını açıklar. Amaç yalnızca hareketli ekran oluşturmak değildir. Kullanıcının hedefini öngörülebilir ve kontrollü biçimde tamamlamasını sağlamaktır.

UI ile UX Arasındaki Fark Nedir?

UI ürünün görünen ve etkileşime girilen arayüz katmanıdır. UX kullanıcının ürünle yaşadığı toplam deneyimi ifade eder. Renk, button ve typography UI kapsamına girerken task completion, loading ve navigation deneyimi UX'i etkiler. İyi UI kötü flow'u tek başına düzeltemez. İki alan birlikte çalıştığında daha güçlü ürün deneyimi ortaya çıkar.

Interaction Design ile UX Aynı Şey mi?

Interaction Design UX'in önemli bir parçasıdır fakat tamamı değildir. Interaction Design eylem ve feedback davranışına odaklanır. UX araştırma, information architecture, performance ve geniş kullanıcı yolculuğunu da kapsar. Bir product flow iyi interactionlara sahip olabilir fakat yanlış kullanıcı problemini çözebilir. Bu nedenle IxD kararları daha geniş UX hedefi içinde değerlendirilmelidir.

İyi Bir Kullanıcı Arayüzünün Özellikleri Nelerdir?

İyi arayüz anlaşılır hierarchy, visible actions, tutarlı behavior ve erişilebilir controls sunar. Kullanıcı yaptığı eylemin sonucunu görür. Error ve loading state hazırdır. Keyboard ve touch kullanımı desteklenir. Performance kullanıcı interaction'ını geciktirmez.

Microinteraction Nedir?

Microinteraction tek bir küçük kullanıcı görevi veya state değişimi etrafındaki interaction döngüsüdür. Toggle, like veya copy feedback örnek olabilir. Trigger, rules, feedback ve loop bileşenleriyle düşünülebilir. Animation zorunlu değildir. Amaç küçük eylemi anlaşılır ve güvenilir hale getirmektir.

Affordance Nedir?

Affordance bir elementin nasıl kullanılabileceğine dair ipucudur. Button görünümü tıklama ihtimalini düşündürür. Signifier bu davranışı daha görünür hale getirir. Tıklanabilir ve statik elementler birbirinden ayırt edilmelidir. İyi affordance kullanıcı deneme yanılmasını azaltır.

Kullanıcıya Feedback Vermek Neden Önemlidir?

Feedback eylemin sistem tarafından alındığını gösterir. Kullanıcı cevap görmezse action'ı tekrar deneyebilir. Loading ve success state belirsizliği azaltır. Error feedback recovery yolu sunar. Hızlı feedback ürünün responsive ve güvenilir hissedilmesini sağlar.

Loading State Nasıl Tasarlanmalıdır?

Loading işlem süresine ve content yapısına göre spinner, skeleton veya progress kullanabilir. Bütün ekran gereksiz yere bloke edilmemelidir. Çok kısa işlemde loading flicker önlenmelidir. Long process cancel seçeneği sunabilir. Layout loading sırasında stabil tutulmalıdır.

Skeleton mı Spinner mı Kullanılmalı?

Skeleton içerik yapısı biliniyor ve sayfa bölümü yüklenecekse uygundur. Spinner kısa ve bağlamı küçük işlemlerde kullanılabilir. Progress ölçülebiliyorsa bar daha bilgi vericidir. Tek pattern bütün loading durumlarında kullanılmamalıdır. Kullanıcıya gerekli context ve süre hissi verilmelidir.

Kullanıcı Deneyimi Frontend Performansından Etkilenir mi?

Evet, performans interaction kalitesini doğrudan etkiler. Button click geç tepki verirse kullanıcı sistemi bozuk hissedebilir. INP, input lag ve layout shift UX açısından anlamlı metriklerdir. Loading design algılanan performansı iyileştirebilir. Gerçek main thread ve network problemi yine teknik olarak çözülmelidir.

Etkileşimli Arayüzler Nasıl Test Edilir?

Prototype, usability test, keyboard test ve production analytics birlikte kullanılabilir. Kullanıcıya gerçek görev verilmelidir. Loading, error ve edge case'ler test edilmelidir. Accessibility assistive technology ile doğrulanabilir. RUM performance interaction hızını gerçek cihazlarda gösterir.

UX İçin Hangi Programlama Dili Kullanılmalıdır?

UX belirli bir programlama diline bağlı değildir. Web frontend için JavaScript veya TypeScript yaygın olsa da iyi deneyim architecture ve interaction kararlarından gelir. Semantic HTML ve CSS temel öneme sahiptir. Framework kullanıcı problemini otomatik çözmez. Ekip kullanılan teknolojide accessibility ve performance kurallarını doğru uygulamalıdır.

Frontend Geliştiricinin UX Bilmesi Gerekir mi?

Frontend geliştirici kullanıcı interaction'ını doğrudan implement ettiği için temel UX prensiplerini bilmelidir. Loading, focus, error ve state davranışı kod kararlarıyla şekillenir. Tasarım dosyasında bulunmayan edge case'ler developer tarafından fark edilebilir. UX bilgisi tasarımcı rolünü üstlenmek anlamına gelmez. Ortak dil ekipler arasındaki interaction handoff'u güçlendirir.

Accessibility Interaction Design'ın Bir Parçası mıdır?

Evet, accessibility doğrudan interaction design kapsamındadır. Keyboard, focus, touch target ve screen reader feedback kullanıcı etkileşiminin parçalarıdır. Yalnızca contrast kontrolü yapmak yeterli değildir. Custom component behavior erişilebilir olmalıdır. Accessibility baştan tasarlandığında sonradan yapılan büyük düzeltme ihtiyacı azalır.

AI Arayüzlerinde İyi UX Nasıl Sağlanır?

AI arayüzü kullanıcının sistemin ne yaptığını anlamasını sağlamalıdır. Streaming, loading ve stop behavior açık olmalıdır. High-impact action kullanıcı confirmation istemelidir. Edit, regenerate ve undo kontrol sağlar. Sistem belirsizliğini gizlemek yerine kullanıcıya anlaşılır sınırlar sunmalıdır.

Sonuç: Kullanıcının Her Eylemine Anlamlı Bir Yanıt Veren Arayüzler Geliştirmek

Etkileşimli Arayüz Tasarımı başarılı olduğunda kullanıcı bir butonun tıklanabilir olduğunu tahmin etmek, işlemin çalışıp çalışmadığını beklemek veya hata sonrasında ne yapacağını araştırmak zorunda kalmaz. İyi frontend yalnızca veri göstermez, kullanıcı eylemlerine hızlı, erişilebilir ve öngörülebilir cevap verir. User flow, component states, feedback patternleri, motion, accessibility, performance ve analytics aynı deneyimin birbirini tamamlayan parçalarıdır. Benim uygulamada en değerli bulduğum yaklaşım, her kritik ekranda kullanıcının şu anda ne yapmak istediğini ve sistemin bu eyleme nasıl cevap vereceğini açıkça yazabilmektir. Kullanıcı deneyimi, frontend geliştirme ve yazılım toplulukları üzerine daha fazla çalışma ve içerik için https://www.diyarbakiryazilim.com.tr adresi üzerinden Diyarbakır Yazılım Topluluğu çalışmalarını inceleyebilirsiniz.

share
share:

İletişim

Birlikte inşa edelim

İşbirliklerine, ilginç sorunlara ve kod, tasarım ile diğer konular hakkında sohbetlere açığız.

bize ulaş→

Bizi başka yerlerde bulun

GitHub
@diyarbakir-yazilim
Twitter
@diyaryazilim
LinkedIn
diyarbakir-yazilim-toplulugu
Instagram
@diyarbakiryazilim
YouTube
@diyarbakiryazilim
Slack
diyarbakiryazilim
WhatsApp
Topluluğa Katıl
Email
info@diyarbakiryazilim.org
Sevgiyle ve kodla inşa ediliyor

© 2026 Diyarbakır Yazılım Topluluğu — Tüm hakları saklıdır.