2.5.2 İşaretçi İptali
İşaretçiye dayalı etkileşimler, eylem tamamlanmadan önce kullanıcıların işlemi iptal edebilmesine veya geri alabilmesine imkân tanımalıdır. Bu, yanlışlıkla yapılan etkileşimleri azaltır.
SC Kodu: 2.5.2
Seviye: A
URL: https://www.w3.org/TR/WCAG22/#pointer-cancellation
Genel Tanım
WCAG SC 2.5.2, tek bir işaretçi kullanılarak gerçekleştirilen işlevlerin (aynı anda yalnızca bir eylemin gerçekleştirilebildiği kullanıcı arayüzü etkileşimi), zorunlu olmadığı sürece, eylemleri yürütmek için yalnızca aşağı basma olayına (örneğin, fare düğmesine basma veya ekrana dokunma) bağlı olmamasını gerektirir. Bu kriter, yanlışlıkla etkinleştirmeyi önlemeye yardımcı olur ve kullanıcıların web içeriğiyle etkileşimleri üzerinde kontrol sahibi olmalarını sağlar.
Temel olarak aşağı doğru yönlendirilen olaylara örnek olarak piyano uygulamaları, atış poligonu oyunları ve çizim uygulamaları verilebilir.
Faydalar
- Yanlışlıkla Etkinleştirmeyi Azaltır: Yanlışlıkla dokunma veya tıklama sonucu tetiklenen istenmeyen eylemleri önler.
- Tüm Kullanıcılar İçin Kullanılabilirliği Artırır: Kullanıcıların gerekirse işlemleri iptal etmelerine olanak tanıyan, daha esnek bir etkileşim modeli sunar.
Ana Amaç
Özellikle dokunmatik ekranlarda web sitesinde gezinen birçok kullanıcı, istemeden sayfadaki kontrolleri etkinleştirebilir. Bu etkinleştirmeler, sayfada istenmeyen değişikliklere yol açarak kafa karışıklığına ve yönelim bozukluğuna neden olabilir. Bu sorunu önlemek için, yazar, 'aşağı' olaylarında (parmak veya fare düğmesine basıldığında) eylemleri tetiklemek yerine, 'yukarı' olaylarında (parmak ekrandan çekildiğinde veya fare düğmesi bırakıldığında) eylemleri tetiklemeyi amaçlamaktadır. Bu yaklaşım, parmağı ekrandan kaldırırken veya fare düğmesini bırakırken gereksiz eylemleri ortadan kaldırmaya veya önlemeye yardımcı olur. 'Aşağı' olayları arasında 'mousedown' veya 'touchstart' yer alabilir.
'Mouseup', 'touchend' veya 'click' gibi olayların kullanılması, eylemlerin yalnızca parmak ekrandan veya fare düğmesinden çekildiğinde tetiklenmesini sağlar ve kullanıcıların gerekirse eylemleri iptal etmesine olanak tanır. Ek olarak, düğmeler için <button> veya bağlantılar için <a> gibi anlamsal HTML öğelerinin kullanılması, eylemlerin 'yukarı' olaylarında tetiklenmesini sağlar. 'Yukarı' olaylarının kullanılması mümkün değilse, bu başarı kriterini karşılamak için eylemleri iptal etme mekanizmaları uygulamak gerekir. Bu tür mekanizmalar, bir eyleme devam etmeden önce onay gerektiren uyarı iletişim kutularını içerebilir.
En İyi Uygulamalar
- Yalnızca "aşağı basma" olaylarını kullanarak eylemler gerçekleştirmekten kaçının: Bir web sayfasında eylemleri gerçekleştirmek için yalnızca "mousedown" veya "touchstart" gibi aşağı basma olaylarını kullanmaktan kaçının.
- Yukarı yönlü olaylarda eylemleri tamamlayın: Eylemlerin yukarı yönlü olayda tamamlanmasını sağlayacak bir işlevsellik uygulayın. 'Mouseup', 'touchend' veya 'click' gibi olaylar harika seçenekler olacaktır.
- Kontroller için anlamsal HTML kullanın: Düğmeler için 'button' ve bağlantılar için 'a' gibi anlamsal HTML kullanın. Bu kontrollerin yerleşik yukarı yönlü olayları vardır.
- Eylemleri iptal etme mekanizması sağlayın: Eğer yukarı yönlü olaylar kullanılıyorsa, eylemi iptal etme mekanizması sağlayın. Bu, eylemi onaylamayı isteyen bir iletişim kutusu bildirimi kullanılarak yapılabilir.
Örnekler ve Açıklamalar
Örnek: Sürükle ve Bırak İşlevi
Nelerden Kaçınılmalı?
Bir web sayfası, kullanıcının fare imleciyle üzerine bastığı anda öğelerin hareket ettirildiği sürükle-bırak arayüzü kullanır. Kullanıcı bir öğeyi sürüklemek için fare düğmesini basılı tuttuğunda, öğe hemen hareket eder ve fare düğmesini bıraktığı anda yeni bir konuma yerleştirilir; kullanıcı işlem sırasında fikrini değiştirse bile bu durum geçerlidir.
Açıklama: Bu uygulama, kullanıcının sürüklemeyi yarıda kesmesi veya işaretçinin istem dışı hareket etmesi durumunda yanlış yerleştirmelere neden olabilir. Bu durum, özellikle motor veya bilişsel engeli olan kullanıcılar için sinir bozucu ve kafa karıştırıcı olabilir.
Ne Yapılmalı?
Sürükle bırak işlevi yalnızca yukarı olayında etkinleşecek şekilde tasarlanmıştır. Kullanıcı fare düğmesini basılı tutarak öğeyi sürükleyebilir, ancak fare düğmesi bırakılana kadar öğe yeni konuma taşınmaz. Ayrıca, işlem tamamlanmadan önce onaylamak için bir mekanizma (örneğin bir onay iletişim kutusu) mevcuttur.
Açıklama: Eylemlerin yalnızca yukarı yönlü olayda yürütülmesini sağlayarak ve eylemi onaylamak için bir mekanizma sunarak, kullanıcılar daha iyi kontrol sahibi olur ve yanlışlıkla etkinleştirmelerden kaçınabilirler. Bu yaklaşım, istenmeyen eylemleri önleyerek ve gerektiğinde eylemleri iptal etme veya onaylama yolu sağlayarak kullanılabilirliği ve erişilebilirliği artırır.