Bir bağlantı bağlantısı için alt etiketi kullanmak doğru mu?


124

Bir çapa bağlantısı için alt etiket kullanmak doğru mu?

<a href="#" class="test" alt="Something" src="sfasfs" ></a>

Yanıtlar:


130

Bu tür şeyler en iyi resmi şartnameye bakarak cevaplanır:

  1. spesifikasyona gidin: https://www.w3.org/TR/html5/

  2. " aelement" için arama yapın : https://www.w3.org/TR/html5/text-level-semantics.html#the-a-element

  3. aöğe için izin verilen tüm öznitelikleri listeleyen "İçerik öznitelikleri" ni kontrol edin :

    • Global özellikler
    • href
    • target
    • download
    • rel
    • hreflang
    • type
  4. bağlantılı "Global öznitelikleri" kontrol edin: https://www.w3.org/TR/html5/dom.html#global-attributes

Göreceğiniz gibi, öğede altözniteliğe izin verilmiyor a.
Ayrıca srcözniteliğe de izin verilmediğini fark edeceksiniz .

By HTML doğrulayarak , Bunlar gibi hatalar size raporlanır.


Yukarıdakilerin için olduğunu unutmayın W3C'nin 2014 HTML standardı olan HTML5. 2016 yılında HTML 5.1 oldu sonraki HTML standardı . İzin verilen öznitelikleri bulmak da aynı şekilde çalışır. Bunu göreceksinizaeleman HTML 5.1 'de başka bir özellik olabilir:rev.

Tüm HTML spesifikasyonlarını (en son standart dahil) W3C'nin HTML Mevcut Durumunda bulabilirsiniz .


2
Global özniteliklerde titleözniteliği görmüyorum, abu titleözniteliği içinde kullanmak aveya kullanmamak doğru mu?
Yousef Altaf

1
@YousefAltaf: Hangi sayfaya bakıyorsun? Bağlantılı olan, Global nitelikler , listeler title.
unor

Anladım, böylece Global öznitelikler altında listeleniyor, ancak kullanıp kullanmamam sayfa kalitesini etkiliyor mu?
Yousef Altaf

@YousefAltaf: Bu farklı bir soru, burada tartışılmaması gerekir. Tanımına bakın . Bununla ilgili hala sorularınız varsa, ayrı bir soru oluşturmaktan çekinmeyin (ancak daha önce sorulmadıysa daha önce daha iyi arayın).
unor

4
"HTML özelliklerine nasıl bakılır" olarak işaretlenmiş yanıt. Teşekkürler.
Codebling

59

Çapalar için bunun yerine başlık kullanmalısınız. alt bir değeri geçerli değil. Bkz. Http://w3schools.com/tags/tag_a.asp


@FabioPoloni Teşekkürler, herkesin aşağıdaki bağlantıyı sayfada
bulmasını bekliyordum

Birisi bu konu hakkında fazla bir şey bilmiyorsa onu bulamayacağını düşündüm ;-)
Fabio Poloni

8
Bu bilgi w3schools'ta doğrudur, ancak w3schools
Jukka K. Korpela

thx Guys ... bunun dışında, ihtiyacım tamamen erişilebilirlik standartlarına dayanıyordu ve ayrıca performans ek yükünü ortadan kaldırıyordu. Spirte görüntü kullandım, aynı zamanda arka plan görüntülerini kullanamayan alt özelliği vermek istedim. Bunun yerine yardımcı olan bir çözümüm var ..
çözümüm var

1
"title" artık w3schools'ta değil. Ancak, küresel bir özellik olduğu için başlığı kullanabilirsiniz: w3.org/TR/html5/dom.html#global-attributes
rosell.dk

28

"başlık" tarayıcılarda yaygın olarak uygulanmaktadır. Deneyin:

<a href="#" title="hello">asf</a>

3
Yukarıdaki 10 dakikalık cevap yerine bir cevap böyle görünmelidir. Fakat bu cevap da bağlantı olmalıdır w3schools.com/tags/att_global_title.asp
mikael1000

Yukarıdakilerin soruyu yanıtlamadığını kabul ediyorum, ancak buna titlegöre HTML5 spesifikasyonuna göre yanlış (çoğu tarayıcı bunu uygulayacak olsa da).
felwithe

6

Hayır, bir altözniteliğe (bir öznitelik olabilir, bir etiket değil) izin verilmez.a herhangi bir HTML belirtimindeki veya taslağındaki öğe . Ve herhangi bir tarayıcı tarafından herhangi bir önemi olduğu anlaşılmıyor.

O halde, insanların onu neden kullanmaya çalıştıkları biraz gizemlidir, ancak olası açıklama, fareyle üzerine gelindiğinde bir "araç ipucu" görmeyi umarak, bunu öğeler altiçin özniteliğe benzer şekilde yapıyor olmalarıdır img. Bunda yanlış olan iki şey var. İlk olarak, her elemanın, her elemanın özelliklerinde tanımlanan kendine ait öznitelikleri vardır. İkinci olarak, altbazı eski tarayıcılarda özniteliklerin "araç ipucu" sunumu, beklenen bir şeyden ziyade bir tuhaflık veya hatta bir hataydı; altnitelik ve görüntü kendisinin takdim edilmemesi durumunda ise herhangi bir nedenle kullanıcıya sunulacak gerekiyordu.

Bir "araç ipucu" oluşturmak için, titlebunun yerine özniteliği veya daha iyisi "CSS araç ipuçları" için Google'ı kullanın ve tercihinize göre CSS tabanlı araç ipuçlarını kullanın (bunlar, fareyle üzerine gelindiğinde görünür hale gelen gizli "katmanlar" olarak tanımlanabilir).


CSS tabanlı araç ipuçları kullanılarak programlı olarak oluşturulan bağlantıları nasıl kullanırım?
Salvador Valencia

6

Açıklayıcı bilgileri, bir alt özniteliğine benzer şekilde uygulamak istiyorsanız, bağlantı etiketleri için başlık özniteliğini kullanmalısınız. Başlık niteliği, bağlantı etiketlerinde geçerlidir ve bağlantılı sayfa hakkında bilgi sağlamaktan başka bir amaca hizmet etmez.

W3C, başlık özniteliğinin değerinin bağlantılı belgenin başlığının değeriyle eşleşmesini önerir, ancak bu zorunlu değildir.

http://www.w3.org/MarkUp/1995-archive/Elements/A.html


Alternatif olarak ve daha faydalı olması muhtemel, ARIA erişilebilirlik özelliğini kullanabilirsiniz. aria-label (karıştırılmamalıdır aria-labeledby). aria-labelalt özniteliğinin görüntüler için yaptığı, ancak görüntü olmayan öğeler için aynı işlevi görür ve ekran okuyucular için optimizasyonunuzdan bu yana bir miktar optimizasyon ölçüsü içerir.

http://www.w3.org/WAI/GL/wiki/Using_aria-label_to_provide_labels_for_objects


Yine de bir bağlantı etiketini açıklamak istiyorsanız, genellikle rel veya rev etiketini kullanmak uygun olur ancak belirli değerlerle sınırlandırılırsanız, insan tarafından okunabilir açıklamalar için kullanılmamalıdır.

Rel, bağlantılı sayfanın mevcut sayfayla ilişkisini açıklamaya yarar. (örneğin, bağlantılı sayfa mantıksal dizide sonraki ise rel = next olacaktır)

Rev özelliği, esas olarak rel özelliğinin ters ilişkisidir. Rev, mevcut sayfanın bağlantılı sayfayla ilişkisini açıklar.

Geçerli değerlerin bir listesini burada bulabilirsiniz: http://microformats.org/wiki/existing-rel-values


5

Başlık kullandım ve işe yaradı!

Title özelliği, bağlantının başlığını verir. Bir istisna dışında, tamamen tavsiye niteliğindedir. Değer metindir. Bunun istisnası, başlık özniteliğinin alternatif stil sayfası kümelerini tanımladığı stil sayfası bağlantıları içindir.

<a class="navbar-brand" href="http://www.alberghierocastelnuovocilento.gov.it/sito/index.php" title="sito dell'Istituto Ancel Keys">A.K.</a>

1

Etikette altözellik kullanımının geçerli olmadığını belirten tüm yanıtları görünce şaşırdım . Bu kesinlikle yanlış.a

Html, herhangi bir öznitelik kullanmanızı engellemez:

<a your-custom-attribute="value">Any attribute can be used</a>

altÖzniteliği kullanmanın anlamsal olarak doğru olup olmadığını sorarsanıza söyleyeceğim:

HAYIR. Görüntü açıklamasını ayarlamak için kullanılır<img alt="image description" /> .

Özniteliklerle ne yapacağınızla ilgili bir mesele. İşte bir örnek:

a::after {
  content: attr(color); /* attr can be used as content */
  display: block;
  color: white;
  background-color: blue;
  background-color: attr(color); /* This won't work */
  display: none;
}
a:hover::after {
  display: block;
}
[hidden] {
  display: none;
}
<a href="#" color="red">Hover me!</a>
<a href="#" color="red" hidden>In some cases, it can be used to hide it!</a>

Yine, özel özniteliği kullanmanın anlamsal olarak doğru olup olmadığını sorarsanız şunu söyleyeceğim:

Hayır data-*. Anlamsal kullanımı için öznitelikleri kullanın.


Hay aksi, soru 2013'te soruldu.

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.