Engelliler dahil tüm kullanıcılar için kullanılabilirlik sağlayan, üzerine gelme ve odaklanma durumlarını kullanarak erişilebilir araç ipuçları uygulamak için kapsamlı bir rehber.
Araç İpucu Uygulaması: Üzerine Gelme ve Odaklanma ile Erişilebilir Bilgi
Araç ipuçları, bir kullanıcının fare imlecini bir öğenin üzerine getirdiğinde veya bir öğeye odaklandığında görünen küçük, bağlamsal yardım mesajlarıdır. Ek bilgi sağlayabilir, bir öğenin amacını netleştirebilir veya bir özelliğin nasıl kullanılacağına dair ipuçları sunabilirler. Ancak, araç ipuçları doğru şekilde uygulanmazsa kolayca erişilebilirlik kabuslarına dönüşebilir. Bu kılavuz, engelli kullanıcılar da dahil olmak üzere herkes tarafından kullanılabilir araç ipuçları oluşturmak için en iyi uygulamaları özetlemektedir.
Araç İpuçları İçin Erişilebilirlik Neden Önemlidir?
Erişilebilirlik sadece uyumlulukla ilgili değildir; herkes için daha iyi bir kullanıcı deneyimi yaratmakla ilgilidir. Araç ipuçları erişilebilir olmadığında, ekran okuyucular, klavye ile gezinme veya sesli komut gibi yardımcı teknolojilere dayanan kullanıcıları dışlayabilir. Şu senaryoları göz önünde bulundurun:
- Ekran okuyucu kullanıcıları: Bir araç ipucu düzgün bir şekilde işaretlenmemişse, ekran okuyucu varlığını veya içeriğini bildirmeyebilir.
- Klavye kullanıcıları: Bir araç ipucu yalnızca fareyle üzerine gelindiğinde görünüyorsa, klavye kullanıcıları ona erişemez.
- Motor bozukluğu olan kullanıcılar: Fareyle üzerine gelme etkileşimleri için gereken hassas fare hareketleri zorlayıcı veya imkansız olabilir.
- Bilişsel engelli kullanıcılar: Kötü zamanlanmış veya kafa karıştırıcı bir araç ipucu hayal kırıklığı yaratabilir ve anlamayı engelleyebilir.
Erişilebilirlik en iyi uygulamalarını takip ederek, araç ipuçlarının herkes için kullanıcı deneyimini engellemek yerine geliştirmesini sağlayabiliriz.
Erişilebilir Araç İpuçları İçin Temel İlkeler
Aşağıdaki ilkeler, erişilebilir araç ipuçları oluşturmak için çok önemlidir:
- Alternatif erişim sağlayın: Araç ipuçlarının hem fareyle üzerine gelme hem de klavye odağı aracılığıyla erişilebilir olduğundan emin olun.
- ARIA niteliklerini kullanın: Araç ipuçlarını yardımcı teknolojilere doğru bir şekilde tanıtmak ve açıklamak için ARIA (Erişilebilir Zengin İnternet Uygulamaları) niteliklerini kullanın.
- Odağı yönetin: Bir araç ipucu görüntülendiğinde ve gizlendiğinde odağın nereye gideceğini kontrol edin.
- Yeterli kontrast sağlayın: Araç ipucu metni ile arka plan arasında yeterli renk kontrastı sağlayın.
- Yeterli süre tanıyın: Kullanıcılara araç ipucu içeriğini okumaları için yeterli zaman verin.
- Kapatılabilir yapın: Araç ipucunu kapatmak için net bir yol sağlayın.
- Aşırı kullanımdan kaçının: Araç ipuçlarını idareli ve yalnızca gerektiğinde kullanın.
Uygulama Teknikleri
1. Üzerine Gelme ve Odaklanma Kullanımı
Erişilebilir araç ipuçlarının en kritik yönü, hem fare hem de klavye kullanıcıları için erişilebilir olmalarını sağlamaktır. Bu, araç ipucunun hem üzerine gelindiğinde hem de öğe odak aldığında görünmesi gerektiği anlamına gelir.
HTML:
<a href="#" aria-describedby="tooltip-example">Örnek Bağlantı</a>
<div id="tooltip-example" role="tooltip" style="display: none;">Bu bir örnek araç ipucudur.</div>
CSS:
a:hover + div[role="tooltip"],
a:focus + div[role="tooltip"] {
display: block;
position: absolute;
background-color: #f0f0f0;
border: 1px solid #ccc;
padding: 5px;
z-index: 1000; /* Araç ipucunun en üstte olmasını sağlar */
}
Açıklama:
aria-describedby
: Bu nitelik, bağlantıyı kimliğini (ID) kullanarak araç ipucu öğesine bağlar. Bu, yardımcı teknolojilere araç ipucunun bağlantı hakkında ek bilgi sağladığını söyler.role="tooltip"
: Bu ARIA rolü, öğeyi bir araç ipucu olarak tanımlar.- CSS, bağlantının üzerine gelindiğinde veya odaklanıldığında araç ipucunu göstermek için bitişik kardeş seçiciyi (
+
) kullanır.
JavaScript (Gelişmiş Kontrol - İsteğe Bağlı):
CSS basit gösterme/gizleme işlemlerini halledebilirken, JavaScript özellikle araç ipuçları dinamik olarak oluşturulduğunda veya daha karmaşık davranışlara ihtiyaç duyulduğunda daha sağlam bir kontrol sağlar.
const link = document.querySelector('a[aria-describedby="tooltip-example"]');
const tooltip = document.getElementById('tooltip-example');
link.addEventListener('focus', () => {
tooltip.style.display = 'block';
});
link.addEventListener('blur', () => {
tooltip.style.display = 'none';
});
link.addEventListener('mouseover', () => {
tooltip.style.display = 'block';
});
link.addEventListener('mouseout', () => {
tooltip.style.display = 'none';
});
2. ARIA Niteliklerini Kullanma
ARIA nitelikleri, yardımcı teknolojilere anlamsal bilgi sağlamak için gereklidir. İşte anahtar niteliklerin bir dökümü:
aria-describedby
: Daha önce de belirtildiği gibi, bu nitelik tetikleyici öğe ile araç ipucu öğesi arasındaki ilişkiyi kurar.role="tooltip"
: Bu nitelik, öğeyi açıkça bir araç ipucu olarak tanımlar.aria-hidden="true"
/aria-hidden="false"
: Araç ipucunun o anda yardımcı teknolojiler tarafından görülüp görülmediğini belirtmek için bunları kullanın. Araç ipucu gizlendiğinde,aria-hidden="true"
olarak ayarlayın. Görünür olduğunda,aria-hidden="false"
olarak ayarlayın. Bu, özellikle araç ipucunun görünürlüğünü kontrol etmek için JavaScript kullanırken önemlidir.
Örnek:
<button aria-describedby="help-tooltip">Gönder</button>
<div id="help-tooltip" role="tooltip" aria-hidden="true">Formu göndermek için buraya tıklayın.</div>
JavaScript (aria-hidden için):
const button = document.querySelector('button[aria-describedby="help-tooltip"]');
const tooltip = document.getElementById('help-tooltip');
button.addEventListener('focus', () => {
tooltip.setAttribute('aria-hidden', 'false');
tooltip.style.display = 'block';
});
button.addEventListener('blur', () => {
tooltip.setAttribute('aria-hidden', 'true');
tooltip.style.display = 'none';
});
button.addEventListener('mouseover', () => {
tooltip.setAttribute('aria-hidden', 'false');
tooltip.style.display = 'block';
});
button.addEventListener('mouseout', () => {
tooltip.setAttribute('aria-hidden', 'true');
tooltip.style.display = 'none';
});
3. Odağı Yönetme
Bir araç ipucu göründüğünde, genellikle tetikleyici öğeden odağı *çalmamalıdır*. Odak, araç ipucunu tetikleyen öğede kalmalıdır. Bu, klavye kullanıcılarının beklenmedik kesintiler olmadan sayfada gezinmeye devam edebilmesini sağlar.
Ancak, özellikle araç ipucu etkileşimli öğeler (örneğin, bağlantılar, düğmeler) içeriyorsa, odağı araç ipucuna taşımak *isteyebileceğiniz* durumlar olabilir. Bu durumda, şunlardan emin olun:
- Araç ipucu, odaklandığını belirtmek için görsel olarak belirgindir.
- Odağı orijinal tetikleyici öğeye geri döndürmek için net bir yol vardır (örneğin, araç ipucu içinde bir kapatma düğmesi).
Çoğu durumda, basitlik ve kullanılabilirlik için araç ipucunun kendisi içinde odak yönetiminden kaçınmak tercih edilir.
4. Yeterli Kontrast Sağlama
Renk kontrastı okunabilirlik için çok önemlidir. Araç ipuçlarınızdaki metin renginin arka plan rengine karşı yeterli kontrasta sahip olduğundan emin olun. Web İçeriği Erişilebilirlik Yönergeleri (WCAG), normal metin için en az 4.5:1 ve büyük metin (18pt veya 14pt kalın) için 3:1 kontrast oranı önermektedir.
Renk seçimlerinizin erişilebilirlik standartlarını karşıladığını doğrulamak için çevrimiçi kontrast denetleyicileri kullanın. Kontrast denetleyici örnekleri şunlardır:
- WebAIM Kontrast Denetleyicisi: https://webaim.org/resources/contrastchecker/
- Coolors: https://coolors.co/contrast-checker
Örnek (İyi Kontrast):
.tooltip {
background-color: #000;
color: #fff;
}
Örnek (Kötü Kontrast):
.tooltip {
background-color: #fff;
color: #eee;
}
5. Yeterli Süre Tanıma
Kullanıcıların araç ipucu içeriğini okumak için yeterli zamana ihtiyacı vardır. Çok çabuk kaybolan araç ipuçlarından kaçının. Sihirli bir sayı olmasa da, birkaç saniyelik minimum bir görüntüleme süresini hedefleyin. Ayrıca, kullanıcı tetikleyici öğenin üzerinde durduğu veya odaklandığı sürece araç ipucu görünür kalmalıdır. Diğer olaylar nedeniyle araç ipucunu kapatmanız gerekiyorsa, araç ipucunun kapanacağına dair bir gösterge sağlayın.
Araç ipucu içeriği uzunsa, kullanıcının araç ipucunu manuel olarak kapatabilmesi için bir yol sağlamayı düşünün (örneğin, bir kapatma düğmesi veya Escape tuşuna basmak).
6. Kapatılabilir Yapma
Araç ipuçları genellikle kullanıcı faresini uzaklaştırdığında veya odağı kaldırdığında otomatik olarak kaybolsa da, özellikle uzun araç ipuçları veya etkileşimli öğeler içeren araç ipuçları için bunları manuel olarak kapatmak için net bir yol sağlamak iyi bir uygulamadır.
Araç İpuçlarını Kapatma Yöntemleri:
- Kapatma düğmesi: Araç ipucu içine görsel olarak belirgin bir kapatma düğmesi ekleyin.
- Escape tuşu: Kullanıcıların Escape tuşuna basarak araç ipucunu kapatmasına izin verin.
- Dışarıya tıklama: Kullanıcı araç ipucunun ve tetikleyici öğenin dışındaki herhangi bir yere tıkladığında araç ipucunu kapatın. (Yıkıcı olabileceğinden dikkatli kullanın).
Örnek (Kapatma Düğmesi):
<div id="my-tooltip" role="tooltip" aria-hidden="true">
Bu benim araç ipucu içeriğim.
<button onclick="hideTooltip()">Kapat</button>
</div>
Örnek (Escape Tuşu):
document.addEventListener('keydown', function(event) {
if (event.key === 'Escape') {
hideTooltip(); // Gerçek araç ipucu gizleme fonksiyonunuzla değiştirin
}
});
7. Aşırı Kullanımdan Kaçınma
Araç ipuçları idareli ve yalnızca gerçekten yararlı bilgiler sağladıklarında kullanılmalıdır. Araç ipuçlarının aşırı kullanımı arayüzü karmaşıklaştırabilir, kullanıcıların dikkatini dağıtabilir ve sinir bozucu bir deneyim yaratabilir.
Araç İpuçlarına Alternatifler:
- Açık etiketler: Form alanları, düğmeler ve bağlantılar için açık ve açıklayıcı etiketler kullanın.
- Bağlamsal yardım: Yardım metnini doğrudan arayüz içinde, ilgili öğelerin yakınında sağlayın.
- Yardım dokümantasyonu: Daha karmaşık özellikler için kapsamlı yardım dokümantasyonuna bağlantı verin.
Gelişmiş Hususlar
Dinamik İçerik
Araç ipucu içeriğiniz dinamik olarak oluşturuluyorsa (örneğin, bir API'den yükleniyorsa veya kullanıcı girdisine göre güncelleniyorsa), aria-describedby
niteliğinin ve araç ipucu görünürlüğünün buna göre güncellendiğinden emin olun. Bu güncellemeleri yönetmek için JavaScript kullanın.
Konumlandırma
Araç ipuçlarınızın konumlandırılmasını dikkatlice düşünün. Önemli içeriği gizleyecek veya düzen kaymalarına neden olacak şekilde yerleştirmekten kaçının. Farklı ekran boyutlarına ve çözünürlüklerine dikkat edin ve araç ipuçlarının her zaman görüntü alanı içinde görünür olmasını sağlamak için CSS kullanın.
Mobil Cihazlar
Araç ipuçları geleneksel olarak, dokunmatik tabanlı cihazlarda bulunmayan üzerine gelme etkileşimlerine dayanır. Mobil cihazlar için, aşağıdakiler gibi alternatif etkileşim yöntemleri kullanmayı düşünün:
- Dokunma: Kullanıcı öğeye dokunduğunda araç ipucunu görüntüleyin.
- Uzun basma: Kullanıcı öğeye uzun bastığında araç ipucunu görüntüleyin.
- Odaklandığında göster: Öğe odak aldığında görüntüleyin. Bu, JavaScript ile dokunma desteğini kontrol ederek (örneğin, `('ontouchstart' in window)`) ve görüntüleme davranışını buna göre değiştirerek başarılabilir.
Araç İpuçlarınızı Test Etme
Tüm kullanıcılar için erişilebilir olduklarından emin olmak için araç ipuçlarınızı kapsamlı bir şekilde test edin. Manuel test ve otomatik erişilebilirlik test araçlarının bir kombinasyonunu kullanın.
Test Yöntemleri:
- Klavye ile gezinme: Araç ipuçlarının klavye kullanılarak erişilebilir olduğunu doğrulayın.
- Ekran okuyucu testi: Araç ipuçlarının düzgün bir şekilde duyurulduğundan emin olmak için bir ekran okuyucu kullanın.
- Renk kontrastı analizi: Yeterli kontrastı doğrulamak için bir renk kontrastı denetleyicisi kullanın.
- Mobil test: Araç ipuçlarını farklı mobil cihazlarda ve ekran boyutlarında test edin.
- Otomatik erişilebilirlik testi: Potansiyel erişilebilirlik sorunlarını belirlemek için axe DevTools, WAVE veya Lighthouse gibi araçları kullanın.
Uluslararasılaştırma (i18n) ve Yerelleştirme (l10n)
Küresel bir kitle için araç ipuçları geliştirirken, uluslararasılaştırma ve yerelleştirmeyi aklınızda bulundurun:
- Metin yönü: Hem soldan sağa (LTR) hem de sağdan sola (RTL) metin yönlerini destekleyin. Düzen için fiziksel özellikler (ör. `margin-left`, `margin-right`) yerine CSS mantıksal özelliklerini (ör. `margin-inline-start`, `margin-inline-end`) kullanın.
- Dile özgü çeviriler: Farklı diller için araç ipucu içeriğinin çevirilerini sağlayın.
- Tarih ve saat formatları: Tarih ve saat formatlarını kullanıcının yerel ayarına göre uyarlayın.
- Sayı formatları: Farklı bölgeler için uygun sayı formatlarını kullanın (örneğin, ondalık ayırıcılar, binlik ayırıcılar).
Sonuç
Erişilebilir araç ipuçları uygulamak, dikkatli bir planlama ve detaylara özen göstermeyi gerektirir. Bu kılavuzda özetlenen ilke ve teknikleri takip ederek, yetenekleri ne olursa olsun herkes tarafından kullanılabilir araç ipuçları oluşturabilirsiniz. Erişilebilirliğin devam eden bir süreç olduğunu unutmayın, bu nedenle tüm kullanıcılarınızın ihtiyaçlarını karşıladıklarından emin olmak için araç ipuçlarınızı test etmeye ve iyileştirmeye devam edin.