Üzerine gelince ya da odaklanınca beliren içerik kapatılabilir, üzerine gelinebilir, kalıcı olmalı. Ölçütü karşılayan yardım simgeleri ve önizleme kartları nasıl kurulur?
İşaretçinin üzerine gelmesi ya da klavye odağı ek içeriğin belirmesine ve sonra kaybolmasına yol açtığında üç şey doğru olmalıdır. İçerik, işaretçi ya da odak hareket etmeden kapatılabilir, işaretçinin kaybolmadan üzerine taşınabileceği şekilde üzerine gelinebilir ve tetikleyici kaldırılana, kullanıcı kapatana ya da bilgisi geçerliliğini yitirene kadar görünür kalan kalıcı olmalıdır.
Bilinmesi gereken iki istisna var. title gibi bir öznitelikten tarayıcının çizdiği içerik, yeniden biçimlendirmediğiniz sürece sizin değil tarayıcının işidir. Kapatılabilirlik kuralı da içerik bir girdi hatasını bildiriyorsa ya da başka içeriği örtmüyor ve yerine geçmiyorsa uygulanmaz.
Ekran büyüteci kullanan birini düşünün. Yüzde 400'de bir ipucu kısmen ekran dışında kalabilir; okumak için işaretçiyi üzerine taşıması gerekir. İşaretçi simgeden ayrılır ayrılmaz kayboluyorsa asla okunamaz.
Kamu sitelerinde üzerine gelince açılan içerik genellikle ücret alanlarının yanındaki yardım simgeleri, kütüphane kataloğu önizleme kartları, harita iğnesi ayrıntıları ve gezinme açılır menüleridir. Her biri, klavyeyle erişilemediğinde, bir sonraki alanın etiketini örttüğünde ya da büyüteç kullanan kişi okuyamadan kaybolduğunda engele dönüşen küçük bir kolaylıktır.
Çözüm nadiren karmaşıktır. Hataların çoğu, açılır pencereyi yalnızca CSS :hover ile kurup odağı, Escape'i ya da tetikleyici ile içerik arasındaki boşluğu hiç düşünmemekten gelir.
data- özniteliğinden üretilen bir sözde öğe ipucu yalnızca üzerine gelince görünür, klavyeyle erişilemez ve kapatma yolu yoktur.
<span class="ipucu" data-ipucu="Harç dosyalama sırasında ödenir">?</span>
.ipucu:hover::after { content: attr(data-ipucu); position: absolute; }<button type="button" class="ipucu" aria-describedby="harc-ipucu">?
<span class="visually-hidden">Dosyalama harcı yardımı</span></button>
<div id="harc-ipucu" role="tooltip" hidden>Harç dosyalama sırasında ödenir.</div>
<script>
const dugme = document.querySelector(".ipucu");
const ipucu = document.getElementById("harc-ipucu");
let zamanlayici;
const goster = () => { clearTimeout(zamanlayici); ipucu.hidden = false; };
const gizle = () => ipucu.hidden = true;
const kisaSonraGizle = () => { zamanlayici = setTimeout(gizle, 200); };
dugme.addEventListener("focus", goster);
dugme.addEventListener("blur", gizle);
dugme.addEventListener("mouseenter", goster);
dugme.addEventListener("mouseleave", kisaSonraGizle);
ipucu.addEventListener("mouseenter", goster);
ipucu.addEventListener("mouseleave", kisaSonraGizle);
document.addEventListener("keydown", e => { if (e.key === "Escape") gizle(); });
</script>İşaretçi başlıktan ayrıldığı anda gizlenen bir katalog önizleme kartına ulaşılamaz. Kısa bir bekleme süresi işaretçinin içeri girmesine izin verir ve karta girmek gizlemeyi iptal eder.
baslik.addEventListener("mouseleave", () => kart.hidden = true);let zamanlayici;
const ac = () => { clearTimeout(zamanlayici); kart.hidden = false; };
const kapat = () => { zamanlayici = setTimeout(() => kart.hidden = true, 200); };
baslik.addEventListener("mouseenter", ac);
baslik.addEventListener("focus", ac);
baslik.addEventListener("blur", kapat);
baslik.addEventListener("mouseleave", kapat);
kart.addEventListener("mouseenter", ac);
kart.addEventListener("mouseleave", kapat);
document.addEventListener("keydown", e => { if (e.key === "Escape") kart.hidden = true; });Odaklanınca beliren ve bir sonraki etiketin üstünde duran bir ipucu, kullanıcının okuması gerekeni gizler ve onu kapatmanın tek yolu alandan ayrılmaktır. İpucunu akışın içinde tutun ki hiçbir şey örtülmesin.
.parsel-ipucu {
position: absolute;
top: 100%;
background: #fff;
box-shadow: 0 2px 8px rgba(0,0,0,.3);
}
input:focus + .parsel-ipucu { display: block; }.parsel-ipucu { display: none; margin-top: 0.25rem; }
input:focus + .parsel-ipucu { display: block; }
/* akışın içinde: sonraki alan örtülmez, aşağı kayar */Dokunmatik öncelikli ekranlarda hover yoktur; bu yüzden ölçüt çoğunlukla devreye girmez. Bir uygulamanın fareyle ya da izleme dörtgeniyle kullanıldığı yerlerde, örneğin işaretçili bir tablette, özel bir kaplama yerine platformun kendi ipucu ve yardım bileşenlerini tercih edin ve oluşturduğunuz her kaplamayı kapatılabilir, üzerine gelinebilir ve kalıcı tutun.
:hover ile ve odak işlemeden ipucu kurmak.mouseleave olayında gizlemek.title ipucunu betikle yeniden biçimlendirip istisnayı kaybetmek.Yayına almadan önce:
Klavye erişimi ayrı bir ölçüttür ve hover kuralları onun üzerine biner. Tedarikçilerin kurduğu kaplamalar için tedarikçiler ve üçüncü taraf içerik sayfasına bakın.
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.