Sürüklemeyle yapılan her işin, sürüklemeden tek bir tıklama ya da dokunmayla da yapılabilmesini ister.
Sürükleme, basmayı, basılı tutmayı, hareket ettirmeyi ve bırakmayı aynı anda ve hassas biçimde yapmayı gerektirir. Titremesi olanlar, iz topu, baş işaretçisi ya da göz izleme kullananlar ve hareket ederken düğmeyi basılı tutamayan herkes için zordur.
WCAG 2.2 ile gelen bu kriter, sürükleme hareketi kullanan tüm işlevlerin, sürükleme zorunlu olmadıkça ya da işlev kullanıcı aracısı tarafından belirlenip yazar tarafından değiştirilmedikçe, sürüklemeden tek bir işaretçiyle de yapılabilmesini ister.
Basmayı, hareket ettirmeyi ve basılı tutmayı aynı anda yapamayan, titremesi ya da sınırlı el becerisi olan kişiler. Sürüklemenin yavaş, yorucu ya da hata yapmaya açık olduğu iz topu, baş işaretçisi, ağız çubuğu ya da göz izleme kullananlar. İşaretçiyi sesli komutlarla ya da anahtarlarla kontrol edenler.
Avrupa Erişilebilirlik Yasası (Direktif (AB) 2019/882) 28 Haziran 2025'ten sonra piyasaya sunulan kapsamdaki ürün ve hizmetler için geçerlidir. Yasanın 47. gerekçesi web siteleri ve mobil uygulamalar için dört ilkeyi sayar: algılanabilirlik, işletilebilirlik, anlaşılabilirlik ve sağlamlık. Sürüklemesiz işaretçi kullanımı, "işletilebilirlik" ilkesinin parçasıdır.
Teknik karşılığı EN 301 549 standardında bulunur. Standart, WCAG 2.5.7'i atıfla alır ve ortama göre ayrı maddelere dönüştürür.
| Madde | Ortam | Ne ister? |
|---|---|---|
| 9.2.5.7 | Web sayfaları | Web içeriğinin WCAG 2.5.7 kriterini karşılamasını ister. |
Kriter yeni olduğu için dokümanlar ve yazılım için geçerli satırları V4.1.1'in 10. ve 11. maddelerinde kontrol edin. Madde numaraları EN 301 549'un "9. + WCAG numarası" düzenine göredir. V3.2.1'de yazılım maddesi, açık ve kapalı işlevsellik için ayrı alt maddelere bölünmüştür. Kaynak gösterirken tam numaraları standarttan kontrol edin.
Standart sürümü: 2.5.7 kriteri WCAG 2.2'ye yenidir; bu yüzden WCAG 2.1'i esas alan EN 301 549 V3.2.1'in parçası değildir. EAA için hazırlanan ilk sürüm olan EN 301 549 V4.1.1'de (Eylül 2026) yer alır. V4.1.1 henüz AB Resmî Gazetesi'nde atıf almamıştır; bu nedenle EAA gereksinimlerini karşılamanın gönüllü teknik yolu olarak görülmelidir. Atıf yapıldığında uygunluk karinesi sağlayacaktır. AA düzeyinde bir kriterdir.
EAA bağlamında dikkat: Yasanın Madde 2/4 hükmü bazı içerikleri gereksinimlerin dışında bırakır; örneğin 28 Haziran 2025'ten önce yayımlanmış ofis dosya biçimleri ve bu tarihten sonra güncellenmeyen arşivler. Bu tarihten sonra yayımladığınız ya da değiştirdiğiniz içerik bu istisnaların kapsamında değildir.
Directive (EU) 2019/882, EUR-Lex, İngilizce, yeni sekmede açılır
Yerel aralık girdileri kullanıcıların çubuk boyunca tıklamasına da izin verir. Yanında bir sayı alanı en net alternatiftir.
<div class="slider"><div class="thumb"></div></div> <!-- yalnızca sürükleme --><label for="vol">Ses</label>
<input id="vol" type="range" min="0" max="100">
<input type="number" min="0" max="100" aria-label="Ses değeri">Bir öğeyi yukarı ya da aşağı taşıyan düğmeler ekleyin.
<li draggable="true">Görev A</li> <!-- yalnızca sürükleme --><li>
Görev A
<button aria-label="Görev A'yı yukarı taşı">↑</button>
<button aria-label="Görev A'yı aşağı taşı">↓</button>
</li>Kullanıcıların bir menüden hedef sütunu seçmesine izin verin.
<div class="card" draggable="true">Hatayı düzelt</div><div class="card">
Hatayı düzelt
<label>Şuraya taşı
<select>
<option>Yapılacak</option><option>Sürüyor</option><option>Bitti</option>
</select>
</label>
</div>Yukarı, aşağı, sol ve sağ kontrolleri sağlayın.
<div id="map">…</div> <!-- yalnızca sürükleyerek kaydırma --><div id="map">…</div>
<div role="group" aria-label="Harita kontrolleri">
<button aria-label="Yukarı kaydır">↑</button>
<button aria-label="Sola kaydır">←</button>
<button aria-label="Sağa kaydır">→</button>
<button aria-label="Aşağı kaydır">↓</button>
</div>Bırakma alanının dosya seçmek için normal bir düğmeye ihtiyacı vardır.
<div class="dropzone">Dosyaları buraya bırakın</div><div class="dropzone">Dosyaları buraya bırakın ya da
<label for="f">dosya seçin</label>
<input id="f" type="file" multiple>
</div>Bir sürükleme tutamacının, hazır boyutlar için düğmeler gibi bir tıklama ya da dokunma alternatifine ihtiyacı vardır.
<div class="resize-handle"></div><div class="resize-handle"></div>
<button type="button">Paneli genişlet</button>
<button type="button">Paneli daralt</button>Yerel uygulamalar yeniden sıralama tutamaçları, kaydırıcılar ve kırpma çerçeveleri kullanır. Dokunmaya dayalı bir alternatif ekleyin ve bunu ekran okuyucu kullanıcılarına da açın.
import SwiftUI
struct TaskList: View {
@State private var tasks = ["Rapor yaz", "Kodu incele", "Gezi planla"]
var body: some View {
List {
ForEach(tasks.indices, id: \.self) { i in
HStack {
Text(tasks[i])
Spacer()
// Sürükleyerek yeniden sıralamaya dokunma alternatifleri
Button { move(i, by: -1) } label: { Image(systemName: "arrow.up") }
.accessibilityLabel("\(tasks[i]) görevini yukarı taşı")
Button { move(i, by: 1) } label: { Image(systemName: "arrow.down") }
.accessibilityLabel("\(tasks[i]) görevini aşağı taşı")
}
}
.onMove { tasks.move(fromOffsets: $0, toOffset: $1) } // sürükleme kalır
}
}
private func move(_ i: Int, by d: Int) {
let j = i + d
guard tasks.indices.contains(j) else { return }
tasks.swapAt(i, j)
}
}import androidx.compose.foundation.layout.Row
import androidx.compose.material.icons.Icons
import androidx.compose.material.icons.filled.ArrowDownward
import androidx.compose.material.icons.filled.ArrowUpward
import androidx.compose.material3.*
import androidx.compose.runtime.Composable
@Composable
fun TaskRow(title: String, onUp: () -> Unit, onDown: () -> Unit) {
Row {
Text(title)
// Sürükleyerek yeniden sıralamaya dokunma alternatifleri
IconButton(onClick = onUp) {
Icon(Icons.Filled.ArrowUpward, contentDescription = "$title görevini yukarı taşı")
}
IconButton(onClick = onDown) {
Icon(Icons.Filled.ArrowDownward, contentDescription = "$title görevini aşağı taşı")
}
}
}Corpowid, dijital erişilebilirlik alanındaki yenilikçi yaklaşımı ve performansı nedeniyle dünyanın önde gelen araştırma ve danışmanlık şirketlerinden biri olan Gartner tarafından takdir edilmiştir. Bu rozetler, yapay zeka destekli ve kapsayıcı web deneyimleri oluşturma konusundaki kararlılığımızı yansıtmaktadır.