İ etiketi için alt veya başlık niteliği


83

Harika yazı tipi kullanıyorum ve yazı tiplerini şu şekilde gösteriyorum:

<i class="icon-lock"></i>

Bu hoş bir küçük kilit sembolü gösterecektir. Kullanıcının bunun tam olarak ne anlama geldiğini bilmesi için, başlık ve alt gibi özellikler eklemeyi denedim, ancak boşuna.

<i>Resimler için alt ve bağlantılar için başlık ile aynı görevi yürüten etiket için kullanabileceğim herhangi bir nitelik var mı ?


1
Birçok FontAwesome sitesi de Bootstrap kullanır. Eğer yaparsanız, .sr-onlyayrı olarak kullanın <span>.
rybo111

Görsel olarak gizli iç metinle güzel bir örnek: fontawesome.com/how-to-use/on-the-web/other-topics/…
Hrvoje Golcic

Yanıtlar:


154

Sen kullanabilirsiniz titlebir de özelliği iherhangi bir öğe, örneğin gibi, eleman

<i class="icon-lock" title="This symbolizes your being locked inside"></i>

Yardımcı olup olmadığı daha zor bir konudur. Tarayıcılar genellikle titleöznitelik değerini fareyle üzerine gelindiğinde bir "araç ipucu" olarak gösterir, ancak kullanıcı neden simgenin üzerine gelsin? Ve bu tür araç ipuçları zayıf kullanılabilirliğe sahiptir; sözde CSS araç ipuçları genellikle daha iyi çalışır.

Ekran okuyucular, kullanıcıya titleözniteliklere isteğe bağlı erişim verebilir , ancak içeriği boş olan öğelerle ne yaptıklarından emin değilim.


1
titleöğenin kendisi seçilebilir olduğu sürece genellikle içerik olmasa bile okunur
Mike

O notu yapmak <i>etiketler genellikle seçmek-mümkün değildir, onlara bir tabIndex eklemedikçe.
dandavis

fa simgeme <i class = "fa fa-info-circle" aria-hidden = "true" title = "heeeeeelp"> </i> başlık ekledim ama çalışmıyor
GomuGomuNoRocket

4
Jukka'nın temelde çılgın bir spekülasyon olduğu zaman, bunun kabul edilmiş ve yüksek oylar almış olması bizi rahatsız etmelidir. Jukka'nın bunu yayınlamasının yanlış olduğunu veya bu cevabın varlığının zarar verdiğini söylemiyorum, ancak "Eh, belki bir titleöznitelik işe yarayacak, belki işe yaramayacak, kim bilir? " 120 kişi tarafından olumlu oy verecek kadar iyi görülmesi, ekran okuyucu desteğinin çoğu web geliştiricisinden aldığı formalite icabı çabayı gösteriyor (ben dahil, kabul ediyorum). Meslek olarak, bu sorunları bundan daha titizlikle nasıl çözeceğimizi bulmamız gerekiyor.
Mark Amery

3
Erişilebilirlik açısından iyi bir uygulama değil . Barındırma öğesi yerel olarak odaklanılamıyorsa (örneğin, düğme, çapa) tüm ekran okuyucuları başlık özniteliğini okumaz. titleGörsel olarak gizli bir metne ek olarak (örneğin .sr-onlyBootstrap'ta sınıf) eklemeniz önerilir . Burada iyi örneklere bakın: fontawesome.com/how-to-use/on-the-web/other-topics/…
Hrvoje Golcic

13

WAI-ARIA'nın ilerlemesiyle, yazı tipi simgelerini kullanırken, erişilebilirliği iyileştirmek için muhtemelen aşağıdakilerin bir kombinasyonunu kullanmalısınız:

  • Öğenin örtük yerel rol semantiğini kaldırmaya yönelik rol sunumu . Bu, özellikle simgeler sağlamak için yerel semantikli bir öğe kullanıyorsanız (ab) önemlidir, çünkü örneğinizde i öğesini kullanan durum budur (teknik özelliklere göre "alternatif bir seste bir metin aralığını temsil eder. veya ruh hali [...] " ).
  • Bir arya etiketli elemanını etiketleyen bir dize değeri sağlamak üzere -veya- bir yerli HTML başlık size süpürdü zaman bir araç ipucu görüntüleyen tarayıcı ile Tamam, özelliğe.
  • Bir arya-gizli gizlemek için özellik oluşturulan içeriğe yardımcı teknolojilerden (bir simge yazı tipi ailesini kullanan gibi bir oluşturulan karakter vardır: öncesi: sonra). Spesifikasyonlara göre:

Yazarlar, ancak bu içeriği gizleme eylemi, gereksiz veya gereksiz içeriği kaldırarak yardımcı teknolojilerin kullanıcılarının deneyimini iyileştirmeyi amaçladıysa , dikkatli bir şekilde, yardımcı teknolojilerden görünür şekilde oluşturulan içeriği gizlemek için aria-hidden özelliğini kullanabilir . Görünür içeriği ekran okuyuculardan gizlemek için aria-hidden özelliğini kullanan yazarlar, aynı veya eşdeğer anlam ve işlevselliğin yardımcı teknolojilere maruz kalmasını sağlamalıdır.


Kullanım durumunuzu tam olarak bilmiyorum, bu yüzden bir telefon numarası sağlamanın daha basit halini kullanma özgürlüğüne sahibim. Tercih azalan yılında ben kullanırım:

<span aria-label="Our phone number">
  <span class="icon-phone" aria-hidden="true"></span>
  +33 7 1234576
</span>

(or any variation implying:
  - an `i` element with a `role` presentation attribute
    instead of the inner `span` element
  - a `title` attribute instead of an `aria-label` attribute)
<span class="icon-phone" 
  aria-label="Our phone number">+33 7 1234576</span>

(or any variation using `title` instead of `aria-label`)
<i class="icon-phone" role="presentation" 
  aria-label="Our phone number">+33 7 1234576</i>

(or any variation using `title` instead of `aria-label`)

Lütfen aria etiketi ve başlık özelliklerinin öğenin içeriğini tanımlaması gerektiğini unutmayın . Sonraki kardeş öğe değil. Yani ben şu çözümü gibi hissediyorum değil özellikleri (telefon numarası aslında içinde sanki en erişilebilirlik araçları aslında aynı gözlemlenebilir davranışı olurdu bile uyarınca spanelemanı):

<span class="icon-phone" 
  title="Our phone number"></span>+33 7 1234576

7

Bunun <span>yerine bu satırlar boyunca veya başka bir şey kullanmalısınız. Aradığınız title=""buysa, üzerine gelindiğinde biraz metin vermek için özniteliği kullanabilirsiniz . Ekran okuyucularına erişilebilirlik veya SEO değeri sağlama konusunda aşağıdaki CSS'yi ekleyebilirsiniz:

.icon-lock{
    text-indent:-99999px;
}

Ve sonra işaretlemenizi şöyle yazın:

<span class="icon-lock">What I want the screen reader to say</span>

<i>HTML 4.01'de kullanımdan kaldırılmadı.
Jim

2
Doğru ... verilen o vardır <u>ve <s>vardı, ben her zaman kendimi düşünerek bulmak <b>ve <i>sahip oldukları, özellikle de yanı vardı <em>ve <strong>fakat kesinlikle haklısın.
Chris Sobolewski

3

<i>etiketleri metni işaretlemek içindir. Bu etiketin anlamsal anlamını italik kullanarak hiçbir ilgisi olmayan bir şeye değiştiriyorsunuz (hatta italik etiket bile kötü bir fikirdir). Bunun SPANyerine a kullanmalısınız.

İtalik öğeler altöznitelikleri desteklemez , IMGöğeler destekler . Bir ALTöznitelik istiyorsanız , bir resim kullanın.


font-awesome yönergeleri size kullanmanızı söyler <i>, bu nedenle bu şekilde yaparsanız muhtemelen neyin yanlış gideceğini söylemelisiniz. Bir şeyi (bu durumda <i>) başlangıçta amaçlanmayan bir şekilde kullanmak risklidir, ancak bu durumda bu risk, yüz milyonlarca kullanıcısı olan binlerce saygın sitenin zaten font-awesome kullanması gerçeğiyle hafifletilmiştir.
cesoid

2

Resim gibi davranan yazı tiplerinin rolünün role = "img" olarak ayrılması gerektiğini düşünüyorum. Bu daha sonra aria-label = "alt-text" ile kullanılabilir. ARIA Erişilebilir Ad algoritması nedeniyle çalışır. Bakınız: Img Rolünü Kullanan Aria Teknikleri .

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.