Erişilebilir CSS Spinner Oluşturucu
Dönen bir halka, ekran okuyucu kullanan biri için bir anlam taşımaz; sürekli hareket ise hareketten etkilenen kişileri rahatsız edebilir. Spinner’ı burada oluşturun, ardından aşağıdaki işaretlemeyi ve azaltılmış hareket kuralını ekleyin.
Spinner’ı erişilebilir yapma
-
1
Halkayı oluşturun
Araçta Boyut, Kalınlık, Renk ve Hız değerlerini ayarlayın, ardından CSS kodunu kopyalayın.
-
2
Renk kontrastını kontrol edin
Açık gri iz ile sayfa arka planından net biçimde ayrışan bir yay rengi seçin.
-
3
Durum işaretlemesini ekleyin
Bu sayfada gösterildiği gibi spinner öğesine bir rol ve etiket verin.
-
4
Azaltılmış hareket kuralını ekleyin
Aşağıdaki medya sorgusunu oluşturulan CSS’in altına yapıştırın.
Oluşturulan CSS neyi kapsar, neyi kapsamaz
Araç görsel kısmı verir: çerçeveli bir daire ve bir dönüş. Yalnızca görsel olan bir yükleme göstergesi, öğe boş olduğu için yardımcı teknolojiler için bir anlam taşımaz. Erişilebilirliği, işaretleme ve bunun etrafına eklediğiniz tek bir ek CSS kuralı sağlar.
Durumu duyuran işaretleme
<div class="loader" role="status" aria-label="Sonuçlar yükleniyor"></div>
role="status" öğeyi bir canlı bölge olarak işaretler; bu sayede birçok ekran okuyucu, öğe belirdiğinde etiketini okur. aria-label genel bir kelime yerine neyin yüklendiğini söylemelidir, örneğin “Sonuçlar yükleniyor” veya “Kaydediliyor”. İş bittiğinde öğeyi kaldırın ve yeni içeriği gösterin.
Halkanın yanına görünür bir metin de koyabilirsiniz. Görünür metin, hareketi iyi göremeyen kişiler de dahil herkese yardımcı olur.
Azaltılmış harekete saygı gösterin
Bazı ziyaretçiler, sitelerden animasyonları sınırlamasını isteyen bir sistem ayarını açar. Bunu, oluşturulan CSS’in arkasına koyduğunuz bir medya sorgusuyla karşılayın:
@media (prefers-reduced-motion: reduce) {
.loader {
animation-duration: 3s;
}
}
Bu kural dönüşü kaldırmak yerine yavaşlatır; böylece gösterge hızlı hareket etmeden canlı görünmeye devam eder. Statik bir sinyal tercih ederseniz animation: none; kullanın ve halkanın yanında “Yükleniyor” metnini gösterin.
Kontrast ve boyut kontrol listesi
| Kontrol | Hedeflenen değer |
|---|---|
| Yayın sayfaya karşı görünürlüğü | Net görünür; ideal olarak 3:1 veya daha yüksek oran |
| Yayın gri iz karşısındaki ayrımı | Belirgin; yayın takip edilebilmesi için |
| Boyut | Ziyaretçinin fark etmesi gereken öğeler için en az 24 px |
| Hız | Tur başına 0,8 ile 1,5 saniye arası |
Sınırlar
- Oluşturucu iz rengini (
#eee) sizin için seçer. Sayfa arka planınız buna yakınsa bunu kopyaladığınız CSS’te düzenleyin. - Çok hızlı bir hız değeri halkanın titremesine neden olur. Yaklaşık 0,5 saniyenin altındaki değerlerden kaçının.
- Uzun beklemelerde yalnızca spinner’a güvenmeyin. Neler olduğunu metinle bildirin.
Hızlıca test edin
İşletim sisteminizde azaltılmış hareket seçeneğini açın ve sayfayı yenileyin: halka daha yavaş dönmelidir. Ardından klavyeyle sayfada gezinerek spinner’ın ziyaretçinin kullandığı kontrolden odağı hiçbir zaman almadığını doğrulayın. Son olarak bir ekran okuyucu açın ve yükleme durumunu bir kez tetikleyin; etiketin öğe belirdiğinde okunup okunmadığını ve yeni içeriğe daha sonra erişilip erişilemediğini duyun.
Sık Sorulan Sorular
Yalnızca işaretleme eklediğinizde. Boş bir öğe sessizdir; bu yüzden ona role=“status” ve açıklayıcı bir aria-label verin.
Bir ziyaretçi cihazından animasyonları azaltmasını istediğinde eşleşen bir CSS medya sorgusudur. Spinner’ı yavaşlatmak veya durdurmak için kullanabilirsiniz.
İkisi de kabul edilebilir. Yavaşlatmak bir etkinlik hissi bırakır; “Yükleniyor” gibi bir metin mesajı da gösteriyorsanız durdurmak en güvenli seçimdir.
Eylemi sade sözcüklerle tanımlayın, örneğin “Sonuçlar yükleniyor” veya “Değişiklikler kaydediliyor”. “spinner” gibi belirsiz etiketlerden kaçının.
Daha büyük boyut ve güçlü kontrast onu daha kolay görünür kılar, ancak yardımcı teknolojilerin okuduğu metin etiketinin yerini tutmaz.
İlgili Araçlar
FPS Sayacı
requestAnimationFrame ile tarayıcı FPS değerini ölçün: yumuşatma, en düşük ve en yüksek kare hızı, uyarı eşiği ve isteğe bağlı grafik. Yerel çalışır, yükleme ve API yoktur.
Webpack Yapılandırma Oluşturucu
Saf JavaScript, React veya Vue için webpack 5 uyumlu bir webpack.config.js oluşturun: TypeScript, Babel, CSS veya Sass, görseller, HtmlWebpackPlugin, geliştirme sunucusu ve npm install satırı.
Tamamlayıcı Renk Bulucusu
Her girdi için tamamlayıcı renk belirleyin. HSL açısından tersi renk, bölünmüş tamamlayıcı çifti ve erişilebilir kombinasyonlar için öneriler geri verir.
Kurgusal telefon numarası oluşturucu
Beş ülkede resmen ayrılmış aralıklardan 50 adede kadar kurgusal numara üretin.
Telefon numarası doğrulayıcı
Telefon numarasının ülkeye göre yapısını denetleyin; bölge, tür, E.164, uluslararası, ulusal ve RFC 3966 biçimlerini görün.
Dosya Boyutu Dönüştürücü
Bayt, KB, MB, GB, TB ve ikili IEC birimleri (KiB, MiB, GiB, TiB) arasında, ondalık ve ikiliyi dilediğiniz gibi birleştirerek dönüşüm yapın.
Araç diğer dillerde mevcuttur
- เครื่องมือสร้างสปินเนอร์ CSS ที่เข้าถึงได้ [TH]
- Generator dostępnego spinera CSS [PL]
- Trình tạo CSS spinner có khả năng truy cập [VI]
- Generator CSS Spinner yang Aksesibel [ID]
- مولّد دوّامة CSS يمكن الوصول إليها [AR]
- Barrierefreier CSS-Spinner Generator [DE]
- アクセシブルなCSSスピナー ジェネレーター [JA]
- Gerador de spinner CSS acessível [PT]
- Generador de spinner CSS accesible [ES]
- 접근성 있는 CSS 스피너 생성기 [KO]
- Generator för tillgänglig CSS-spinner [SV]
- Générateur de spinner CSS accessible [FR]
- Toegankelijke CSS-spinner generator [NL]
- Accessible CSS Spinner Generator [EN]
- Generatore di spinner CSS accessibile [IT]
- Генератор доступного CSS-спиннера [RU]
- 无障碍 CSS 加载动画生成器 [ZH]