2016-04-14 16 views
0

Sorun: Yayılma düğmesinin odaklandığı bir yayılma etiketinin içine yerleştirilmiş bir divum var. > p etiketi, span, bu div okumuyor, sadece üzerinde atlar farklı ekran okuyucular ve farklı tarayıcılar, aynı sorunu çalıştıEkran okuyucusu tarafından okunacak bir div ayarlamasıyla ilgili sorun yaşıyorsanız

<span role="button" tabindex = 0> 
    <div id= "nestedDiv" aria-hidden ="false" tabindex = 0> 
      <p tabindex =0> Read this text </p> 
    </div> 
</span> 

odağı aldığında - okuyucu içe içe geçmiş metni 'okundu' bir sonraki okunabilir öğeye.

+1

Düğmeyi bir düğme olarak kullanmanın amacı nedir? Kullanıcı bir harekete geçmek mi istiyor? Öyleyse, bir bağlantı, düğme veya giriş, kullanıcının bu eylemi gerçekleştirmesine izin verecek daha iyi bir semantik seçim olabilir. –

+0

"Bir span etiketinin içine yerleştirilmiş bir div'um var" - Tamam, HTML’niz yok. Bu bir sorun. – Quentin

cevap

3

Bunu NVDA + firefox'ta denedim ve yayına geçtiğimde "bu metni oku." Okur. Hangi tarayıcıda sorun yaşıyorsun?
<p id="foo"> gibi paragrafa bir kimlik ekleyebilir ve <span>'a aria-labelledby="foo" ekleyin.
Ancak:
Karl Brown yorumu% 100 doğrudur - semantik işaretlemeyi kullanmak en iyisidir. Açıklık bir şey mi yapıyor? Eğer öyleyse, bir düğme olmalı. Seni farklı bir sayfaya mi getiriyor? Eğer öyleyse, bir çapa olmalı.
Ayrıca, neden bu kadar çok tabindex? Bu öğenin dışına çıkmak için üç sekme gerekir; bu iyi değildir. Uygun semantik kullanırsanız, tabindex'e ihtiyacınız olmaz ve herhangi bir aria özniteliğine ihtiyaç duymazsınız.

+0

Teşekkür ederim, koşuya 508 uyumluluk öğreniyorum, bu yüzden konuya acemi içgörüyü affet. Kod tabanı zaten tanımlanmış olduğundan, hareket halindeyken Erişilebilirlik standartlarını nasıl enjekte edeceğimi öğreniyorum. –

+0

Bazen berbat kodlarla sıkışmışsınızdır ve daha erişilebilir hale getirmek için harikadır! ' "elemanında tabindex = 0' olmasını öneriyorum. NVDA/Firefox ile test ettiğimde bunu bir düğme olarak tanımladı ve paragraftaki metni okudu. Diğer ekran okuyucularda çalışmadığını fark ederseniz, aria-labelledby yaklaşımı ideal olabilir, ancak şu anda erişilemediği için ekstra tabindex özelliklerini kaldırmak en iyisidir. Gerekirse, tabindex veya aria özniteliklerini kullanmamak genellikle en iyisidir. – Skerrvy

+0

Teşekkürler! Bu benim gerçekliğim, ancak Erişilebilirlik'e aşina olan kişilerden içgörü almak her zaman takdir görmektedir, çünkü özellikle çok az sayıdaki grubun, zamanının kodlama çerçevelerinin 'eğlenceli' taraflarına yatırım yapmasıyla karşılaştırıldığında, çok az bir grup olduğu için. –

İlgili konular